1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: 355: 356: 357: 358: 359: 360: 361: 362: 363: 364: 365: 366: 367: 368: 369: 370: 371: 372: 373: 374: 375: 376: 377: 378: 379: 380: 381: 382: 383: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411: 412: 413: 414: 415: 416: 417: 418: 419: 420: 421: 422: 423: 424: 425: 426: 427: 428: 429: 430: 431: 432: 433: 434: 435: 436: 437: 438: 439: 440: 441: 442: 443: 444: 445: 446: 447: 448: 449: 450: 451: 452: 453: 454: 455: 456: 457: 458: 459: 460: 461: 462: 463: 464: 465: 466: 467: 468: 469: 470: 471: 472: 473: 474: 475: 476: 477: 478: 479: 480: 481: 482: 483: 484: 485: 486: 487: 488: 489: 490: 491: 492: 493: 494: 495: 496: 497: 498: 499: 500: 501: 502: 503: 504: 505: 506: 507: 508: 509: 510: 511: 512: 513: 514: 515: 516: 517: 518: 519: 520: 521: 522: 523: 524: 525: 526: 527: 528: 529: 530: 531: 532: 533: 534: 535: 536: 537: 538: 539: 540: 541: 542: 543: 544: 545: 546: 547: 548: 549: 550: 551: 552: 553: 554: 555: 556: 557: 558: 559: 560: 561: 562: 563: 564: 565: 566: 567: 568: 569: 570: 571: 572: 573: 574: 575: 576: 577: 578: 579: 580: 581: 582: 583: 584: 585: 586: 587: 588: 589: 590: 591: 592: 593: 594: 595: 596: 597: 598: 599: 600: 601: 602: 603: 604: 605: 606: 607: 608: 609: 610: 611: 612: 613: 614: 615: 616: 617: 618: 619: 620: 621: 622: 623: 624: 625: 626: 627: 628: 629: 630: 631: 632: 633: 634: 635: 636: 637: 638: 639: 640: 641: 642: 643: 644: 645: 646: 647: 648: 649: 650: 651: 652: 653: 654: 655: 656: 657: 658: 659: 660: 661: 662: 663: 664: 665: 666: 667: 668: 669: 670: 671: 672: 673: 674: 675: 676: 677: 678: 679: 680: 681: 682: 683: 684: 685: 686: 687: 688: 689: 690: 691: 692: 693: 694: 695: 696: 697: 698: 699: 700: 701: 702: 703: 704: 705: 706: 707: 708: 709: 710: 711: 712: 713: 714: 715: 716: 717: 718: 719: 720: 721: 722: 723: 724: 725: 726: 727: 728: 729: 730: 731: 732: 733: 734: 735: 736: 737: 738: 739: 740: 741: 742: 743: 744: 745: 746: 747: 748: 749: 750: 751: 752: 753: 754: 755: 756: 757: 758: 759: 760: 761: 762: 763: 764: 765: 766: 767: 768: 769: 770: 771: 772: 773: 774: 775: 776: 777: 778: 779: 780: 781: 782: 783: 784: 785: 786: 787: 788: 789: 790: 791: 792: 793: 794: 795: 796: 797: 798: 799: 800: 801: 802: 803: 804: 805: 806: 807: 808: 809: 810: 811: 812: 813: 814: 815: 816: 817: 818: 819: 820: 821: 822: 823: 824: 825: 826: 827: 828: 829: 830: 831: 832: 833: 834: 835: 836: 837: 838: 839: 840: 841: 842: 843: 844: 845: 846: 847: 848: 849: 850: 851: 852: 853: 854: 855: 856: 857: 858: 859: 860: 861: 862: 863: 864: 865: 866: 867: 868: 869: 870: 871: 872: 873: 874: 875: 876: 877: 878: 879: 880: 881:
<?php
define('ZENPAGE_COMBINEWS', false);
define('ZP_COMBINEWS', false);
define('ZP_SHORTENINDICATOR', $shortenindicator = getOption('zenpage_textshorten_indicator'));
define('ZP_SHORTEN_LENGTH', getOption('zenpage_text_length'));
define('ZP_READ_MORE', getOption("zenpage_read_more"));
define('ZP_ARTICLES_PER_PAGE', getOption("zenpage_articles_per_page"));
class Zenpage {
public $categoryStructure = null;
protected $sorttype = 'date';
protected $sortdirection = true;
protected $sortSticky = true;
protected $category_sorttype = 'sort_order';
protected $category_sortdirection = false;
protected $page_sorttype = 'sort_order';
protected $page_sortdirection = false;
function __construct() {
}
static function expiry() {
$sql = ' WHERE `date`<="' . date('Y-m-d H:i:s') . '" AND `show`="1"' .
' AND `expiredate`<="' . date('Y-m-d H:i:s') . '"' .
' AND `expiredate`!="0000-00-00 00:00:00"' .
' AND `expiredate` IS NOT NULL';
foreach (array('news' => 'ZenpageNews', 'pages' => 'ZenpagePage') as $table => $class) {
$result = query_full_array('SELECT * FROM ' . prefix($table) . $sql);
if ($result) {
foreach ($result as $item) {
$obj = new $class($item['titlelink']);
$obj->setShow(0);
$obj->save();
}
}
}
}
private function getCategoryStructure() {
if (is_null($this->categoryStructure)) {
$allcategories = query_full_array("SELECT * FROM " . prefix('news_categories') . " ORDER by sort_order");
if ($allcategories) {
$this->categoryStructure = array();
foreach ($allcategories as $cat) {
$this->categoryStructure[$cat['id']] = $cat;
}
return $this->categoryStructure;
}
return $this->categoryStructure = array();
} else {
return $this->categoryStructure;
}
}
function visibleCategory($cat) {
Zenpage_internal_deprecations::visibleCategory();
$categorystructure = $this->getCategoryStructure();
return $categorystructure[$cat['cat_id']]['show'];
}
function getPages($published = NULL, $toplevel = false, $number = NULL, $sorttype = NULL, $sortdirection = NULL, $author = null, $pageobj = null) {
global $_zp_loggedin;
if(!is_null($pageobj) && get_class($pageobj) != 'ZenpagePage') {
$pageobj = null;
}
if (is_null($sortdirection)) {
$sortdirection = $this->getSortDirection('pages');
}
if (is_null($sorttype)) {
$sorttype = $this->getSortType('pages');
}
if (is_null($published)) {
$published = !zp_loggedin();
$all = zp_loggedin(MANAGE_ALL_PAGES_RIGHTS);
} else {
$all = !$published;
}
$gettop = '';
if ($toplevel) {
if ($pageobj) {
$gettop = " parentid = " . $pageobj->getID();
} else {
$gettop = " parentid IS NULL";
}
} else {
if ($pageobj) {
$gettop = " sort_order like '" . $pageobj->getSortorder() . "-%'";
}
}
if ($published) {
if ($gettop) {
$gettop = ' AND' . $gettop;
}
$show = " WHERE `show` = 1 AND date <= '" . date('Y-m-d H:i:s') . "'" . $gettop;
} else {
if ($gettop) {
$gettop = ' WHERE' . $gettop;
}
$show = $gettop;
}
if ($author) {
$show .= ' AND author = ' . db_quote($author);
}
if ($sortdirection) {
$sortdir = ' DESC';
} else {
$sortdir = ' ASC';
}
switch ($sorttype) {
case 'date':
$sortorder = 'date';
break;
case 'lastchange':
$sortorder = 'lastchange';
break;
case 'title':
$sortorder = 'title';
break;
case 'id':
$sortorder = 'id';
break;
case 'popular':
$sortorder = 'hitcounter';
break;
case 'mostrated':
$sortorder = 'total_votes';
break;
case 'toprated':
$sortorder = '(total_value/total_votes) ' . $sortdir . ', total_value';
break;
case 'random':
$sortorder = 'RAND()';
$sortdir = '';
break;
default:
$sortorder = 'sort_order';
break;
}
$all_pages = array();
$result = query('SELECT * FROM ' . prefix('pages') . $show . ' ORDER by `' . $sortorder . '`' . $sortdir);
if ($result) {
while ($row = db_fetch_assoc($result)) {
if ($all || $row['show']) {
$all_pages[] = $row;
} else if ($_zp_loggedin) {
$page = new ZenpagePage($row['titlelink']);
if ($page->isMyItem(LIST_RIGHTS)) {
$all_pages[] = $row;
if ($number && count($result) >= $number) {
break;
}
}
}
}
db_free_result($result);
}
if ($sorttype == 'title') {
$all_pages = sortMultiArray($all_pages, 'title', $sortdirection, true, false, false);
}
return $all_pages;
}
function getNotViewablePages() {
global $_zp_not_viewable_pages_list;
if (zp_loggedin(ADMIN_RIGHTS | ALL_PAGES_RIGHTS)) {
return array();
}
if (is_null($_zp_not_viewable_pages_list)) {
$items = $this->getPages(true, false, NULL, NULL, NULL);
if (!is_null($items)) {
$_zp_not_viewable_pages_list = array();
foreach ($items as $item) {
$obj = new ZenpageNews($item['titlelink']);
if ($obj->isProtected() && !$obj->isPublic()) {
$_zp_not_viewable_pages_list[] = $obj->getID();
}
}
}
}
return $_zp_not_viewable_pages_list;
}
function getArticles($articles_per_page = 0, $published = NULL, $ignorepagination = false, $sortorder = NULL, $sortdirection = NULL, $sticky = NULL, $category = NULL, $author = null) {
global $_zp_current_category, $_zp_post_date, $_zp_newsCache;
$getunpublished_myitems = false;
$cat = '';
if (empty($published)) {
if (zp_loggedin(ZENPAGE_NEWS_RIGHTS) || ($category && $category->isMyItem(ZENPAGE_NEWS_RIGHTS))) {
$published = "all";
$getunpublished_myitems = true;
} else {
$published = "published";
}
}
if ($category) {
$sortObj = $category;
} else if (is_object($_zp_current_category)) {
$sortObj = $_zp_current_category;
} else {
$sortObj = $this;
}
if (is_null($sticky)) {
$sticky = $sortObj->getSortSticky();
}
if (is_null($sortdirection)) {
$sortdirection = $sortObj->getSortDirection('news');
}
if (is_null($sortorder)) {
$sortorder = $sortObj->getSortType('news');
}
$newsCacheIndex = "$sortorder-$sortdirection-$published" . (bool) $sticky;
if ($category) {
$newsCacheIndex .= '-' . $category->getTitlelink();
}
if($author) {
$newsCacheIndex .= '-' . $author;
}
if (isset($_zp_newsCache[$newsCacheIndex])) {
$result = $_zp_newsCache[$newsCacheIndex];
} else {
$show = $currentcategory = false;
if ($category) {
$currentcategory = $category->getTitlelink();
$showConjunction = ' AND ';
$catid = $category->getID();
$subcats = $category->getCategories();
if ($subcats) {
$cat = " (cat.cat_id = '" . $catid . "'";
foreach ($subcats as $subcat) {
$subcatobj = new ZenpageCategory($subcat);
$cat .= "OR cat.cat_id = '" . $subcatobj->getID() . "' ";
}
$cat .= ") AND cat.news_id = news.id ";
} else {
$cat = " cat.cat_id = '" . $catid . "' AND cat.news_id = news.id ";
}
} else {
$showConjunction = ' WHERE ';
}
if ($sticky) {
$sticky = 'sticky DESC,';
}
if ($sortdirection) {
$dir = " DESC";
} else {
$dir = " ASC";
}
switch ($sortorder) {
case "date":
default:
$sort1 = "date" . $dir;
break;
case 'lastchange':
$sort1 = 'lastchange' . $dir;
break;
case "id":
$sort1 = "id" . $dir;
break;
case "title":
$sort1 = "title" . $dir;
break;
case "popular":
$sort1 = 'hitcounter' . $dir;
break;
case "mostrated":
$sort1 = 'total_votes' . $dir;
break;
case "toprated":
$sort1 = '(total_value/total_votes) DESC, total_value';
break;
case "random":
$sort1 = 'RAND()';
break;
}
switch ($published) {
case "published":
$show = "$showConjunction `show` = 1 AND date <= '" . date('Y-m-d H:i:s') . "'";
$getUnpublished = false;
break;
case "published-unpublished":
$show = "$showConjunction `show` = 1 AND date <= '" . date('Y-m-d H:i:s') . "'";
$getUnpublished = true;
break;
case "unpublished":
$show = "$showConjunction `show` = 0 AND date <= '" . date('Y-m-d H:i:s') . "'";
$getUnpublished = true;
break;
case 'sticky':
$show = "$showConjunction `sticky` <> 0";
$getUnpublished = true;
break;
case "all":
$show = false;
$getUnpublished = true;
if($getunpublished_myitems) {
$getUnpublished = false;
}
break;
}
if ($author) {
if($cat || $show) {
$author_conjuction = ' AND ';
} else {
$author_conjuction = ' WHERE ';
}
$show .= $author_conjuction . ' author = ' .db_quote($author);
}
$order = " ORDER BY $sticky";
if (in_context(ZP_ZENPAGE_NEWS_DATE)) {
$datesearch = '';
switch ($published) {
case "published":
$datesearch = "date LIKE '$_zp_post_date%' ";
break;
case "unpublished":
$datesearch = "date LIKE '$_zp_post_date%' ";
break;
case "all":
$datesearch = "date LIKE '$_zp_post_date%' ";
break;
}
if ($datesearch) {
if ($show) {
$datesearch = ' AND ' . $datesearch;
} else {
$datesearch = ' WHERE ' . $datesearch;
}
}
if ($sortdirection || is_null($sortdirection)) {
$order .= ' date DESC';
} else {
$order .= ' date ASC';
}
} else {
$datesearch = "";
if ($category) {
$order .= ' news.';
} else {
$order .= ' ';
}
$order .= $sort1;
}
if ($category) {
$sql = "SELECT DISTINCT news.date, news.title, news.titlelink, news.sticky FROM " . prefix('news') . " as news, " . prefix('news2cat') . " as cat WHERE" . $cat . $show . $order;
} else {
$sql = "SELECT date, title, titlelink, sticky FROM " . prefix('news') . $show . $datesearch . " " . $order;
}
$resource = query($sql);
$result = array();
if ($resource) {
while ($item = db_fetch_assoc($resource)) {
$article = new ZenpageNews($item['titlelink']);
if ($getUnpublished && $article->isMyItem(LIST_RIGHTS) || ($currentcategory && $article->inNewsCategory($currentcategory)) || ($article->isPublic() || zp_loggedin(ALL_NEWS_RIGHTS))) {
$result[] = $item;
}
}
db_free_result($resource);
if ($sortorder == 'title') {
$result = sortByMultilingual($result, 'title', $sortdirection);
if ($sticky) {
$stickyItems = array();
foreach ($result as $key => $element) {
if ($element['sticky']) {
array_unshift($stickyItems, $element);
unset($result[$key]);
}
}
$stickyItems = sortMultiArray($stickyItems, 'sticky', true);
$result = array_merge($stickyItems, $result);
}
}
}
$_zp_newsCache[$newsCacheIndex] = $result;
}
if ($articles_per_page) {
if ($ignorepagination) {
$offset = 0;
} else {
$offset = self::getOffset($articles_per_page);
}
$result = array_slice($result, $offset, $articles_per_page);
}
return $result;
}
function getNotViewableNews() {
global $_zp_not_viewable_news_list;
if (zp_loggedin(ADMIN_RIGHTS | ALL_NEWS_RIGHTS)) {
return array();
}
if (is_null($_zp_not_viewable_news_list)) {
$items = $this->getArticles(0, 'published', true, NULL, NULL, NULL, NULL);
if (!is_null($items)) {
$_zp_not_viewable_news_list = array();
foreach ($items as $item) {
$obj = new ZenpageNews($item['titlelink']);
if (!$obj->isProtected() && $obj->isPublic()) {
$_zp_not_viewable_news_list[] = $obj->getID();
}
}
}
}
return $_zp_not_viewable_news_list;
}
function getArticle($index, $published = NULL, $sortorder = NULL, $sortdirection = NULL, $sticky = true) {
$articles = $this->getArticles(0, NULL, true, $sortorder, $sortdirection, $sticky);
if ($index >= 0 && $index < count($articles)) {
$article = $articles[$index];
$obj = new ZenpageNews($articles[$index]['titlelink']);
return $obj;
}
return false;
}
static function getOffset($articles_per_page, $ignorepagination = false) {
global $_zp_page, $subpage;
if (OFFSET_PATH) {
$page = $subpage + 1;
} else {
$page = $_zp_page;
}
if ($ignorepagination || is_null($page)) {
$offset = 0;
} else {
$offset = ($page - 1) * $articles_per_page;
}
return $offset;
}
function getTotalArticles() {
global $_zp_current_category;
if (empty($_zp_current_category)) {
if (isset($_GET['category'])) {
$cat = sanitize($_GET['category']);
$catobj = new ZenpageCategory($cat);
} else {
return count($this->getArticles(0));
}
} else {
$catobj = $_zp_current_category;
}
return count($catobj->getArticles());
}
function getTotalNewsPages() {
return ceil($this->getTotalArticles() / ZP_ARTICLES_PER_PAGE);
}
function getAllArticleDates($yearsonly = false, $order = 'desc') {
$alldates = array();
$cleandates = array();
$sql = "SELECT date FROM " . prefix('news');
if (!zp_loggedin(MANAGE_ALL_NEWS_RIGHTS)) {
$sql .= " WHERE `show` = 1";
}
$result = query_full_array($sql);
foreach ($result as $row) {
$alldates[] = $row['date'];
}
foreach ($alldates as $adate) {
if (!empty($adate)) {
if ($yearsonly) {
$cleandates[] = substr($adate, 0, 4);
} else {
$cleandates[] = substr($adate, 0, 7) . "-01";
}
}
}
$datecount = array_count_values($cleandates);
switch ($order) {
case 'desc':
default:
krsort($datecount);
break;
case 'asc':
ksort($datecount);
break;
}
return $datecount;
}
private function siftResults($sql, $offset, $limit) {
$resource = $result = query($sql);
if ($resource) {
$result = array();
while ($item = db_fetch_assoc($resource)) {
if ($item['type'] == 'news') {
$article = new ZenpageNews($item['titlelink']);
if (!$article->isPublic() && !zp_loggedin(ALL_NEWS_RIGHTS)) {
continue;
}
}
$offset--;
if ($offset < 0) {
$result[] = $item;
if ($limit && count($result) >= $limit) {
break;
}
}
}
db_free_result($resource);
}
return $result;
}
function getCategory($id) {
foreach ($this->getAllCategories(false) as $cat) {
if ($cat['id'] == $id) {
return $cat;
}
}
return '';
}
function getAllCategories($visible = true, $sorttype = NULL, $sortdirection = NULL, $toplevel = false) {
$structure = $this->getCategoryStructure();
if (is_null($sortdirection)) {
$sortdirection = $this->getSortDirection('categories');
} else {
switch(strtolower($sortdirection)) {
case 'asc':
$sortdirection = false;
trigger_error(gettext('Zenpage::getAllCategories() - The value "asc" for the $sortdirection is deprecated since ZenphotoCMS 1.5.8. Use false instead.'), E_USER_NOTICE);
break;
case 'desc':
trigger_error(gettext('Zenpage::getAllCategories() - The value "desc" for the $sortdirection is deprecated since ZenphotoCMS 1.5.8. Use true instead.'), E_USER_NOTICE);
$sortdirection = true;
break;
}
}
if (is_null($sorttype)) {
$sorttype = $this->getSortType('categories');
}
switch ($sorttype) {
case "id":
$sortorder = "id";
break;
case "title":
$sortorder = "title";
break;
case "popular":
$sortorder = 'hitcounter';
break;
case "random":
$sortorder = 'random';
break;
default:
$sortorder = "sort_order";
break;
}
if ($toplevel) {
foreach ($structure as $key => $cat) {
if (!is_null($cat['parentid'])) {
unset($structure[$key]);
}
}
}
if ($visible) {
foreach ($structure as $key => $cat) {
$catobj = new ZenpageCategory($cat['titlelink']);
if ($catobj->isPublic() || $catobj->isMyItem(LIST_RIGHTS)) {
$structure[$key]['show'] = 1;
} else {
unset($structure[$key]);
}
}
}
if (!is_null($sorttype) || !is_null($sortdirection)) {
if ($sorttype == 'random') {
shuffle($structure);
} else {
$structure = sortMultiArray($structure, $sortorder, $sortdirection, true, false, false);
}
}
return $structure;
}
static public function getAllAuthors($type = 'news') {
$authors = array();
switch($type) {
default:
case 'news':
$table = 'news';
break;
case 'pages':
$table = 'pages';
break;
}
$sql = 'SELECT DISTINCT author FROM ' . prefix($table) . ' ORDER BY author ASC';
$resource = query($sql);
if ($resource) {
while ($item = db_fetch_assoc($resource)) {
$authors[] = $item['author'];
}
}
db_free_result($resource);
return $authors;
}
public function __toString() {
return 'Zenpage';
}
function getSortDirection($what = 'news') {
switch ($what) {
case 'pages':
return $this->page_sortdirection;
case 'news':
return $this->sortdirection;
case 'categories':
return $this->category_sortdirection;
}
}
function setSortDirection($value, $what = 'news') {
switch ($what) {
case 'pages':
$this->page_sortdirection = (int) ($value && true);
break;
case 'news':
$this->sortdirection = (int) ($value && true);
break;
case 'categories':
$this->category_sortdirection = (int) ($value && true);
break;
}
}
function getSortType($what = 'news') {
switch ($what) {
case 'pages':
return $this->page_sorttype;
case 'news':
return $this->sorttype;
case 'categories':
return $this->category_sorttype;
}
}
function setSortType($value, $what = 'news') {
switch ($what) {
case 'pages':
$this->page_sorttype = $value;
break;
case 'news':
$this->sorttype = $value;
break;
case 'categories':
$this->category_sorttype = $value;
break;
}
}
function getSortSticky() {
return $this->sortSticky;
}
function setSortSticky($value) {
$this->sortSticky = (bool) $value;
}
function getItemDefaultSortorder($type = 'category') {
if (!in_array($type, array('category', 'page'))) {
return '000';
}
switch ($type) {
case 'category':
$items = $this->getAllCategories(false, null, null, true);
break;
case 'page':
$items = $this->getPages(false, true);
break;
}
if (empty($items)) {
$sortorder = '000';
} else {
$count = count($items);
$sortorder = str_pad($count, 3, "0", STR_PAD_LEFT);
}
return $sortorder;
}
}