/** * Gets the statistic for pages, news articles or categories as an unordered list * * @param int $number The number of news items to get * @param string $option "all" pages, articles and categories * "news" for news articles * "categories" for news categories * "pages" for pages * @param string $mode "popular" most viewed for pages, news articles and categories * "mostrated" for news articles and pages * "toprated" for news articles and pages * "random" for pages and news articles * @param string $sortdirection "asc" for ascending otherwise descending (default) * @return array */ function getZenpageStatistic($number = 10, $option = "all", $mode = "popular", $sortdirection = 'desc') { global $_zp_zenpage, $_zp_current_zenpage_news, $_zp_current_zenpage_pages; $sortdir = strtolower($sortdirection) != 'asc'; $statsarticles = array(); $statscats = array(); $statspages = array(); if ($option == "all" || $option == "news") { $articles = $_zp_zenpage->getArticles($number, NULL, true, $mode, $sortdir, false); $counter = ""; $statsarticles = array(); foreach ($articles as $article) { $counter++; $obj = new ZenpageNews($article['titlelink']); $statsarticles[$counter] = array("id" => $obj->getID(), "title" => $obj->getTitle(), "titlelink" => $article['titlelink'], "hitcounter" => $obj->getHitcounter(), "total_votes" => $obj->getTotal_votes(), "rating" => $obj->getRating(), "content" => $obj->getContent(), "date" => $obj->getDateTime(), "type" => "News"); } $stats = $statsarticles; } if (($option == "all" || $option == "categories") && $mode != "mostrated" && $mode != "toprated") { $categories = $_zp_zenpage->getAllCategories(true, $mode, $sortdir); $counter = ""; $statscats = array(); foreach ($categories as $cat) { $counter++; $statscats[$counter] = array("id" => $cat['id'], "title" => html_encode(get_language_string($cat['title'])), "titlelink" => getNewsCategoryURL($cat['titlelink']), "hitcounter" => $cat['hitcounter'], "total_votes" => "", "rating" => "", "content" => '', "date" => '', "type" => "Category"); } $stats = $statscats; } if ($option == "all" || $option == "pages") { $pages = $_zp_zenpage->getPages(NULL, false, $number, $mode, $sortdir); $counter = ""; $statspages = array(); foreach ($pages as $page) { $counter++; $pageobj = new ZenpagePage($page['titlelink']); $statspages[$counter] = array("id" => $pageobj->getID(), "title" => $pageobj->getTitle(), "titlelink" => $page['titlelink'], "hitcounter" => $pageobj->getHitcounter(), "total_votes" => $pageobj->get('total_votes'), "rating" => $pageobj->get('rating'), "content" => $pageobj->getContent(), "date" => $pageobj->getDateTime(), "type" => "Page"); } $stats = $statspages; } if ($option == "all") { $stats = array_merge($statsarticles, $statscats, $statspages); if ($mode == 'random') { shuffle($stats); } else { switch ($sortdir) { case 'asc': $desc = false; break; case 'desc': $desc = true; break; } $stats = sortMultiArray($stats, $mode, $desc); } } return $stats; }