DedeCMS循环调用多级栏目及内容列表
Dedecms仍然是比较不错的系统,当然除了dz论坛的回复功能!!今日共享一个比拟有用的关于循环调用子节目及其内容列表的小代码,其实查看标签手册也能看到,但毕竟仍是有懒人存在的!
根据标签手册,在织梦(dedecms/' target='_blank'>DedeCMS)体系中唯一一个撑持标签嵌套的调用标签,基本用法如下,可根据需求修改:
{dede:channelartlist} {dede:field name='typename'/}更多... {dede:arclist titlelen='60' row='8'} [field:pubdate function="MyDate('m-d',@me)'/][field:title /] {/dede:arclist} {/dede:channelartlist} |
我没做演示,找了个类似的效果图,借用一下:
上述代码在首页可完成子节目及子节目内容列表的调用!下面说说 channelartlist 标签在列表页及内容页的运用。
1、参数简介
channelartlist 标签暂时撑持三个参数,分别为: typeid='0' 约束上级节目ID;也能够用top,撑持“,”表明多个节目 row='20' 循环的节目数量,默以为20; cacheid = '' 标签缓存ID,一般为空 |
但若是你只是将上述代码原封不动的复制粘贴到终极节目页或内容页,是不会呈现任何调用成果的,由于在标签 channelartlist 中,当typeid为空,则表明当时节目,但是终极节目列表和内容页是没有下级节目的,所以就会犯错!
2、调用实例
在终极列表页或内容页,正确的调用办法应该是以下的:
{dede:channelartlist typeid='top'} |
这里是typied='top',这个top值能够换为你想要的上级节目ID,但绝对是不能够为空的。这个大家一定要注意!
3、节目高亮、特效调用
在该标签下,能够直接分别用 {dede:field name='typename'/}与{dede:field name='typeurl'/}来表明节目称号与节目链接的,当然还有一些其它格外的变量,这里也介绍一下,如:
{dede:field name='id'/}与{dede:field name='typeid'/} 均表明循环中的节目ID; {dede:global name='itemindex'} 表明循环递增变量,从1开端; {dede:global name='itemparity'} 表明循环魔法变量,奇数为1,双数为2; 以上就是能够在channelartlist中直接套用的,格外要注意的是第2、3两个,拥有这两个变量,能够轻松制作出各类十分特性的效果,例如节目的隔行变色等。 关于这个节目高亮,在 channelartlist.lib.php 并没有自带,但经过以下DIY可完成让当时节目进行高亮。办法(以dedecms 5.6为例): 打开channelartlist.lib.php文件,找到如下代码: $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]); |
在其下一行加入一下代码:
if($typeids[$i]['id'] == $refObj->TypeLink->TypeInfos['id']){ $pv->Fields['currentstyle'] = ' id="pic_focus"'; }else{ $pv->Fields['currentstyle'] = ''; } |
然后,就能够在dedecms模板中进行运用{dede:field name='currentstyle'/}进行调用了。
分享到: