DEDECMS循环调用子栏目及其内容

一直认为Dedecms是非常优秀的CMS,所以对于织梦CMS的研究也就会多一些,今天和大家分享一个比较实用的关于循环调用子栏目及其内容列表的小代码。

一直认为织梦模板是非常优秀的CMS,所以对于织梦CMS的研究也就会多一些,今天和大家分享一个比较实用的关于循环调用子栏目及其内容列表的小代码,根据标签手册,在织梦(织梦模板)系统中,可以用 channelartlist 标签进行循环子栏目及其栏目数据,据说,它也是织梦(织梦模板)系统中唯一一个支持标签嵌套的调用标签,基本用法如下,可根据需要修改:

<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('m-d',@me)'/]</span><a href="[field:arcurl /]">[field:title /]</a></li>

{/dede:arclist}

</ul>

</dd>

</dl>

{/dede:channelartlist}

</div>

我没做演示,找了个类似的效果图,借用一下:

上述代码在首页可实现子栏目及子栏目内容列表的调用!下面说说 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可实现让当前栏目进行高亮。方法(以织梦模板 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'/}进行调用了。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

网上的织梦 channellist 高亮 大多支持二级栏目高亮,点到三级栏目的时候就不显示,下面织梦模板网为大家实现如何点到三级栏目也高亮显示。 1、修改文件/include/taglib/channelartlist.lib.php 找到: $pv-Fields[typeurl] = GetOneTypeUrlA($typeids[$i]);
我们在用到channelartlist标签时候,有时候需要按照typeid进行排序,比如我们想要按照17,4,8这样依次输出,但是默认的会按照4,8,17进行排序。我们想要按照17,4,8这样排,要怎么处理? {dede:channelartlist typeid=17,4,8} h3a href={dede:field.typeurl/}{d
织梦dedecms怎么循环调用二级栏目下三级栏目,下面跟版小编为大家讲解下,其实要用到的就是织梦的channelartlist标签,唯一一个可以嵌套标签的标签,我们以顶级栏目的栏目id为3为例子 方法一:channelartlist嵌套channel标签调用,这里有一个地方需要改下,
打开/include/taglib/channelartlist.lib.php文件 找到: $pv-Fields[typeurl] = GetOneTypeUrlA($typeids[$i]); 在它下面加入以下代码: if($typeids[$i][id] == $refObj-TypeLink-TypeInfos[id] || $typeids[$i][id] == $refObj-TypeLink-TypeInfos[topid]
{dede:channelartlist}下的判断: {dede:global.itemindex runphp=yes}if((@me %7) == 0){@me = ;}else{@me = ;}{/dede:global.itemindex} {dede:arclist}和{dede:channel}下的判断为: [field:global name=autoindex runphp=yes]if((@me)%3==0){@me=;}else{
我们在用DEDECMS建站时,常常会做二级栏目的功能,既要用到二级栏目,也就要通过DEDE标签再套标签的方式来实现调用,而DEDECMS多层标签调用只支持channelartlist,也就是说我们只能通过dede:channelartlist标签才能调出二级栏目,我们用dede:channelartlist