首页 > CMS教程 > DEDECMS > 正文

DedeCMS怎么循环调用多级栏目及内容列表

藏色散人
发布: 2020-01-03 09:07:54
原创
2591 人浏览过

DedeCMS怎么循环调用多级栏目及内容列表

DedeCMS怎么循环调用多级栏目及内容列表?

DedeCMS循环调用多级栏目及内容列表

推荐学习:织梦cms

Dedecms还是比较不错的,当然,除了论坛的技术回复速度!!今天分享一个比较实用的关于循环调用子栏目及其内容列表的小代码,其实查看标签手册也能看到,但毕竟还是有懒人存在的!

根据标签手册,在织梦(DedeCMS)系统中,可以用 channelartlist 标签进行循环子栏目及其栏目数据,据说,它也是织梦(DedeCMS)系统中唯一一个支持标签嵌套的调用标签,基本用法如下,可根据需要修改:

<div> 
{dede:channelartlist}  
<dl> 
<dt><strong><a href="{dede:field name=&#39;typeurl&#39;/}">{dede:field name=&#39;typename&#39;/}</a></strong>
<span><a href="{dede:field name=&#39;typeurl&#39;/}">更多...</a></span></dt> 
<dd> 
<ul> 
{dede:arclist titlelen=&#39;60&#39; row=&#39;8&#39;}  
<li><span>[field:pubdate function="MyDate(&#39;m-d&#39;,@me)&#39;/]</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=&#39;id&#39;/}与{dede:field name=&#39;typeid&#39;/} 均表示循环中的栏目ID;
{dede:global name=&#39;itemindex&#39;} 表示循环递增变量,从1开始;
{dede:global name=&#39;itemparity&#39;} 表示循环魔法变量,单数为1,双数为2;
登录后复制

以上就是可以在channelartlist中直接套用的,特别要注意的是第2、3两个,拥有这两个变量,可以轻松制作出各类非常个性的效果,例如栏目的隔行变色等。

关于这个栏目高亮,在 channelartlist.lib.php 并没有自带,但通过以下DIY可实现让当前栏目进行高亮。方法(以dedecms 5.6为例):

打开channelartlist.lib.php文件,找到如下代码:

$pv->Fields[&#39;typeurl&#39;] = GetOneTypeUrlA($typeids[$i]);
登录后复制

在其下一行加入以下代码:

if($typeids[$i][&#39;id&#39;] == $refObj->TypeLink->TypeInfos[&#39;id&#39;]){  
$pv->Fields[&#39;currentstyle&#39;] = &#39; id="pic_focus"&#39;;  
}  
else{  
$pv->Fields[&#39;currentstyle&#39;] = &#39;&#39;;  
}
登录后复制

然后,就可以在模板中进行使用{dede:field name='currentstyle'/}进行调用了。

以上是DedeCMS怎么循环调用多级栏目及内容列表的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!