首先我們先理解一下,什么是顯示所有分類以及分類下的文章,比如我們有五個大的分類,而每個大的分類下面又有文章,而我們要做的就是在首頁面調用這些分類和文章,每個大的分類下面顯示每個分類的文章,這就是PHPCMS顯示所有分類以及每個分類下面的文章了。
在PHPCMS的演示站中,在首頁我們可以看到,將大類以及分類的文章循環讀取了出來,在我們制作模板時,經常會遇到要將所有分類以及分類下的文章讀出來的時候,可以使用PHPCMS默認站中的代碼了,代碼如下:
{loop subcat(0,0,0,$siteid) $r}
<h3>{$r[catname]}</h3>
{pc:content action="lists" catid="$r[catid]" num="5" order="id D
ESC" return="info"}
<ul>
{loop $info $v}
<li><a href="{$v['url']}">{str_cut($v['title'],40)}</a></li>
{/loop}
</ul>
{/pc}
{/loop}
將其代碼復制到你制作的模板中,是不是已經把分類以及分類的文章循環出來了,這一部分的調用代碼不太好理解的是 {loop subcat(0,0,0,$siteid) $r} 這一句,我們來還原一下標簽樣式: {loop subcat($parentid,$type,$self,$siteid) $r},這是獲取子類目的標簽,$parentid 父級id,$type 欄目類型,$self 是否包含本身 0為不包含,$siteid 站點id。 在上面的例子中,全部為 0,表示調用的是頂級的欄目,而內容則是調用整個大的分類下的文章,我們再來看一下在PHPCMS中的函數定義,代碼如下:
function subcat($parentid = NULL, $type = NULL,$self = '0', $s
iteid = '') {
if (empty($siteid)) $siteid = get_siteid();
$category = getcache('category_content_'.$siteid,'com
mons');
foreach($category as $id=>$cat) {
if($cat['siteid'] == $siteid && ($parentid === N
ULL || $cat['parentid'] == $parentid) && ($type === NULL || $ca
t['type'] == $type)) $subcat[$id] = $cat;
if($self == 1 && $cat['catid'] == $parent
id && !$cat['child']) $subcat[$id] = $cat;
}
return $subcat;
}
這個不是很容易理解,可以慢慢消化,這里就不講解了。
