如何在DEDECMS中实现子栏目及其内容的循环调用?

DEDECMS中,可以使用标签循环调用子栏目及其内容。,,“html,{dede:channel type='son' row='10'},,[field:title/],[field:description function="cn_substr(@me, 100)"/],,{/dede:channel},

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

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。

“`

如何在DEDECMS中实现子栏目及其内容的循环调用?

栏目高亮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

(0)
未希的头像未希新媒体运营
上一篇 2024-09-29 17:36
下一篇 2024-09-29 17:38

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入