找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 565|回复: 0

织梦dedecms循环调用多级栏目及内容列表

[复制链接]
发表于 2012-4-18 10:49:21 | 显示全部楼层 |阅读模式
在织梦dedecms系统中,我们可以使用channelartlist标签进行循环子栏目及其栏目文章的调研,这个标签也是织梦dedecms系统中一个支持标签嵌套的调用标签,基本用法如下,可以根据我们的需要进行修改:


{dede:channelartlist}

{dede:field name='typename'/}更多...


{dede:arclist titlelen='48' row='6'}
[field:pubdate function="MyDate('m-d',@me)'/][field:title /]
{/dede:arclist}



{/dede:channelartlist}


上面的代码在首页可实现子栏目及子栏目内容列表的调用!下面说说channelartlist 标签在列表页及内容页的使用。
1、参数简介
channelartlist 标签暂时支持三个参数,分别为:

typeid='0' 限制上级栏目ID;也可以用top,支持“,”表示多个栏目
row='6' 循环的栏目数量,默认为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'] = '';
}
然后,就可以在模板中进行使用{dede:field name='currentstyle'/}进行调用了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|要学吧论坛

GMT+8, 2026-1-24 01:11 , Processed in 0.036736 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表