A-A+
PHPCMS显示所有分类以及分类下文章
首先我们先理解一下,什么是显示所有分类以及分类下的文章,比如我们有五个大的分类,而每个大的分类下面又有文章,而我们要做的就是在首页面调用这些分类和文章,每个大的分类下面显示每个分类的文章,这就是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; }
这个不是很容易理解,可以慢慢消化,这里就不讲解了。