/**
 * Counts news articles, either all or by category or archive date, published or un-published
 *
 * @param string $category The categorylink of the category to count
 * @param string $published "published" for an published articles,
 * 													"unpublished" for an unpublised articles,
 * 													"all" for all articles
 * @return array
 */
function countArticles($category = '', $published = 'published', $count_subcat_articles = true)
{
    deprecated_function_notify(gettext('Count the articles instead.'));
    global $_zp_post_date;
    if (zp_loggedin(ZENPAGE_NEWS_RIGHTS)) {
        $published = "all";
    } else {
        $published = "published";
    }
    $show = "";
    if (empty($category)) {
        switch ($published) {
            case "published":
                $show = " WHERE `show` = 1 AND date <= '" . date('Y-m-d H:i:s') . "'";
                break;
            case "unpublished":
                $show = " WHERE `show` = 0 AND date <= '" . date('Y-m-d H:i:s') . "'";
                break;
            case "all":
                $show = "";
                break;
        }
        // date archive query addition
        if (in_context(ZP_ZENPAGE_NEWS_DATE)) {
            $postdate = $_zp_post_date;
            if (empty($show)) {
                $and = " WHERE ";
            } else {
                $and = " AND ";
            }
            $datesearch = $and . "date LIKE '{$postdate}%'";
        } else {
            $datesearch = "";
        }
        $result = query("SELECT COUNT(*) FROM " . prefix('news') . $show . $datesearch);
        $row = db_fetch_row($result);
        $count = $row[0];
        return $count;
    } else {
        $catobj = new ZenpageCategory($category);
        switch ($published) {
            case "published":
                $show = " AND news.show = 1 AND news.date <= '" . date('Y-m-d H:i:s') . "'";
                break;
            case "unpublished":
                $show = " AND news.show = 0 AND news.date <= '" . date('Y-m-d H:i:s') . "'";
                break;
            case "all":
                $show = "";
                break;
        }
        if ($count_subcat_articles) {
            $subcats = $catobj->getSubCategories();
        }
        if ($subcats && $count_subcat_articles) {
            $cat = " (cat.cat_id = '" . $catobj->getID() . "'";
            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 = '" . $catobj->getID() . "' AND cat.news_id = news.id ";
        }
        $result = query_full_array("SELECT DISTINCT news.titlelink FROM " . prefix('news2cat') . " as cat, " . prefix('news') . " as news WHERE " . $cat . $show);
        $count = count($result);
        return $count;
    }
}
Esempio n. 2
0
 /**
  *
  * Returns an array of News article IDs belonging to the search categories
  */
 function subsetNewsCategories()
 {
     global $_zp_zenpage;
     if (!is_array($this->category_list)) {
         return false;
     }
     $cat = '';
     $list = $_zp_zenpage->getAllCategories();
     foreach ($list as $category) {
         if (in_array($category['title'], $this->category_list)) {
             $catobj = new ZenpageCategory($category['titlelink']);
             $cat .= ' `cat_id`=' . $catobj->get('id') . ' OR';
             $subcats = $catobj->getSubCategories();
             if ($subcats) {
                 foreach ($subcats as $subcat) {
                     $catobj = new ZenpageCategory($subcat);
                     $cat .= ' `cat_id`=' . $catobj->get('id') . ' OR';
                 }
             }
         }
     }
     $sql = 'SELECT DISTINCT `news_id` FROM ' . prefix('news2cat') . ' WHERE ' . substr($cat, 0, -3);
     $result = query_full_array($sql);
     $list = array();
     foreach ($result as $row) {
         $list[] = $row['news_id'];
     }
     return $list;
 }
Esempio n. 3
0
		case 'show':
			$('.body').hide();
			state = 'hide';
			$('#show_hide').html('Expand all');
			break;
		}
	}
</script>

<p class="buttons"><a href="javascript:accordian()"><span id="show_hide">Expand all</span></a></p>
<br clear="left" />
<?php 
global $_zp_current_category;
$currentcat = $_zp_current_category;
$catobj = new ZenpageCategory('troubleshooting');
$cats = $catobj->getSubCategories();
?>
<ol class="index">
<?php 
foreach ($cats as $key => $cat) {
    $catobj = new ZenpageCategory($cat);
    $_zp_current_category = $catobj;
    $articles = $catobj->getArticles();
    if (!empty($articles)) {
        $h4 = $catobj->getTitle();
        ?>
		<li><a href="#<?php 
        echo $catobj->getTitlelink();
        ?>
"><?php 
        echo $h4;