html,{dede:channel type='son' row='10'},,[field:title/],[field:description function="cn_substr(@me, 100)"/],,{/dede:channel},
“在DedeCMS中,通过使用channelartlist标签可以方便地循环调用子栏目及其内容,channelartlist标签是DedeCMS系统中唯一一个支持标签嵌套的调用标签,能够实现多级栏目和内容的调用,以下是具体使用方法和示例。
基本用法
<div> {dede:channelartlist} <dl> <dt><strong><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></strong><span><a href="{dede:field name='typeurl'/}">更多...</a></span></dt> <dd> <ul> {dede:arclist titlelen='60' row='8'} <li><span>[field:pubdate function="MyDate('md',@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist} </ul> </dd> </dl> {/dede:channelartlist} </div>
参数简介
channelartlist标签支持以下三个参数:
1、typeid:限制上级栏目ID;可以用逗号分隔多个栏目ID,例如top
表示顶级栏目。
2、row:循环的栏目数量,默认为20。
3、cacheid:标签缓存ID,一般为空。
调用实例
在终极列表页或内容页,正确的调用方法应该是以下的:
<div class="listbox"> {dede:channelartlist typeid='top'} <dl class="tbox"> <dt><strong><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></strong><span class="more"><a href="{dede:field name='typeurl'/}">更多...</a></span></dt> <dd> <ul class="d1 ico3"> {dede:arclist titlelen='60' row='8'} <li><span>[field:pubdate function="MyDate('md',@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist} </ul> </dd> </dl> {/dede:channelartlist} </div>
栏目高亮和特效调用
可以使用一些特殊的变量来实现栏目的高亮和特效显示,例如隔行变色等。
1、栏目名称与链接:
“`html
{dede:field name=’typename’/}
{dede:field name=’typeurl’/}
“`
2、循环递增变量:
“`html
{dede:global name=’itemindex’} 表示从1开始递增的变量。
“`
3、循环魔法变量:
“`html
{dede:global name=’itemparity’} 单数为1,双数为2。
“`
栏目高亮DIY实现方法(以DedeCMS 5.6为例)
可以通过修改channelartlist.lib.php文件来实现当前栏目的高亮效果。
1、打开channelartlist.lib.php文件,找到如下代码:
“`php
$pv>Fields[‘typeurl’] = GetOneTypeUrlA($typeids[$i]);
“`
2、在其下一行加入以下代码:
“`php
if($typeids[$i][‘id’] == $refObj>TypeLink>TypeInfos[‘id’]){
$pv>Fields[‘currentstyle’] = ‘ id="pic_focus"’;
}else{
$pv>Fields[‘currentstyle’] = ”;
}
“`
3、就可以在模板中进行使用{dede:field name=’currentstyle’/}进行调用了。
相关问答FAQs
Q1: DedeCMS中的channelartlist标签如何实现栏目高亮?
A1: 要实现栏目高亮,可以在channelartlist.lib.php文件中添加代码,具体操作步骤如下:打开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'/}
进行调用即可。
Q2: 如何在DedeCMS中调用顶级栏目及其子栏目?
A2: 在DedeCMS中,可以使用channelartlist标签来调用顶级栏目及其子栏目,具体代码如下:
<div class="prointro"> {dede:channelartlist typeid='top'} <dl class="type"> <a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a> <div class="sontype"> <ul> {dede:channel type='son' noself='yes'} <li><a href="[field:typeurl/]">[field:typename/]</a></li> {/dede:channel} </ul> </div> </dl> {/dede:channelartlist} </div>
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1102625.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复