如何在DedeCMS中设置栏目跳转到指定列表页面?

DedeCMS所属栏目与返回列表的实现方法可以通过使用标签和模板功能来实现。具体步骤如下:,,1. 打开DedeCMS后台管理界面,进入“模板管理”模块。,2. 在模板管理中找到需要添加所属栏目和返回列表的模板文件,点击编辑。,3. 在模板文件中添加以下代码:,,“,{dede:field name='typeid'/},`,,4. 保存模板文件并更新缓存。,5. 在文章发布或编辑时,选择相应的栏目,系统会自动将该栏目的ID赋值给typeid字段。,6. 在前台页面中,使用以下代码获取所属栏目和返回列表:,,`,{dede:sql name='get_channel'}, SELECT id,typename FROM dede_arctype WHERE id = '[field:typeid/]',{/dede:sql},[field:global runphp='yes'], $typeid = @me('get_channel');, if(is_array($typeid)) {, $typeid = $typeid[0]['id'];, $typename = $typeid[0]['typename'];, } else {, $typeid = '';, $typename = '';, }, $returnurl = 'http://www.example.com'; // 返回列表链接,[/field:global],返回{$typename},`,,$returnurl`变量需要替换为实际的返回列表链接。

在DedeCMS(织梦内容管理系统)中,实现所属栏目与返回列表功能是网站导航和用户体验的重要组成部分,通过合理的方法,可以在任何页面上快速添加“返回列表”和“所在栏目”的链接,使用户能够方便地浏览相关栏目和返回上级列表,下面将详细介绍如何实现这一功能:

如何在DedeCMS中设置栏目跳转到指定列表页面?

DedeCMS 所属栏目与返回列表的实现方法

方法一:使用标签实现返回列表和所在栏目

1、返回列表

代码示例<a href="{dede:type typeid='0' row=1}[field:typelink function='str_replace("/index.html","",@me)' /]{/dede:type}" title="返回{dede:field.typename /}">返回列表</a>

说明:该代码使用了{dede:type} 标签来获取当前文档的类型链接,并通过function='str_replace("/index.html","",@me)' 去除链接中的/index.html,从而生成一个干净的返回列表链接。

2、所在栏目

代码示例<a href="{dede:type typeid='0' row=1}[field:typelink function='str_replace("/index.html","",@me)' /]{/dede:type}" title="所在{dede:field.typename /}">所在栏目</a>

说明:与返回列表类似,这段代码也使用了{dede:type} 标签,但生成的是当前文档所属栏目的链接,并去除/index.html,使其更简洁。

方法二:在任意页面获取某顶级栏目下的二级或三级栏目列表

1、获取二级栏目列表

步骤

/include/inc_functions.php 文件末尾加入以下代码:

“`php

function getProductClass($typeid) {

$linkList = "";

$dsql = new DedeSql(false);

$dsql>SetQuery("select typedir,typename from #@__arctype where reID = ‘$typeid’ order by sortrank");

$dsql>Execute();

while($row=$dsql>GetObject()) {

$typelink = GetTypeUrl($row>ID, MfTypedir($row>typedir), $row>isdefault, $row>defaultname, $row>ispart, $row>namerule2);

$linkList .= "<li>·<a href="$typelink">".$row>typename."</a></li>

";

}

$dsql>Close();

return $linkList;

}

“`

在模板中使用{dede:channel function='getProductClass(2)'}{/dede:channel} 调用,其中2 是顶级栏目的ID。

2、获取二级和三级栏目列表(树形菜单)

步骤

/include/inc_functions.php 文件末尾加入以下代码:

“`php

function getProductTree($typeid) {

$linkList = "";

$dsql = new DedeSql(false);

$dsql>SetQuery("select ID,typedir,typename from #@__arctype where reID = ‘$typeid’ order by sortrank");

$dsql>Execute();

while($row=$dsql>GetObject()) {

$typelink = GetTypeUrl($row>ID, MfTypedir($row>typedir), $row>isdefault, $row>defaultname, $row>ispart, $row>namerule2);

$linkList .= "

  • “.$row>typename.”
  • ";

    $linkList .= getSonClass($row>ID);

    }

    $dsql>Close();

    如何在DedeCMS中设置栏目跳转到指定列表页面?

    return $linkList;

    }

    function getSonClass($parentid) {

    $linkList = "";

    $dsql = new DedeSql(false);

    $dsql>SetQuery("Select ID,typedir,typename From #@__arctype where reID=’$parentid’ order by sortrank");

    $dsql>Execute();

    while($row=$dsql>GetObject()) {

    $url = GetTypeUrl($row>ID, MfTypedir($row>typedir), $row>isdefault, $row>defaultname, $row>ispart, $row>namerule2);

    $linkList .= "<li class="smallclass"><a href="$url">".$row>typename."</a></li>

    ";

    }

    return $linkList;

    }

    “`

    在模板中使用{dede:channel function='getProductTree(2)'}{/dede:channel} 调用,其中2 是顶级栏目的ID。

    3、获取所有子栏目(含三级栏目)

    步骤

    在模板中使用以下代码:

    “`php

    {dede:channelartlist typeid=’top’ row=’10’}

    <li><a href="{dede:field name=’typeurl’/}">{dede:field name=’typename’ /}</a>

    <ul>

    {dede:sql sql=’select * from dede_arctype where reid =~id~ ‘}

    <li>

    <a href=[field:typedir function=’str_replace("{cmspath}","",@me)’/]>[field:typename/]</a>

    <ul>

    [field:id runphp=’yes’]

    global $dsql;

    $id=@me;

    $sql=’Select * from dede_arctype where reid=’.$id.’ ORDER BY id limit 0,20′;

    $dsql>SetQuery($sql);

    $dsql>Execute();

    while($row = $dsql>GetArray()){

    $url = str_replace("{cmspath}","",$row[‘typedir’]);

    $str .='<li><a href="’.$url.’">’.$row[‘typename’].'</a></li>’;

    @me = $str;

    }

    if(@me == $id){ //避免3级栏目为空时 写出分类ID,这里加以判断

    @me =”;

    }

    [/field:id]

    </ul>

    </li>

    如何在DedeCMS中设置栏目跳转到指定列表页面?

    {/dede:sql}

    </ul>

    </li>

    {/dede:channelartlist}

    “`

    这段代码可以获取指定顶级栏目下的所有二级和三级子栏目,并将其以树形结构展示出来。

    FAQs

    1、如何在首页或其他页面插入某个顶级栏目的下级栏目列表?

    解答:可以通过在/include/inc_functions.php 文件中定义函数getProductClass($typeid),然后在模板中使用{dede:channel function='getProductClass(顶级栏目ID)'}{/dede:channel} 来调用,要插入产品展示这个顶级栏目的下级栏目列表,可以使用{dede:channel function='getProductClass(2)'}{/dede:channel},其中2 是产品展示的栏目ID。

    2、如何获取某个栏目的所有子栏目(包括二级和三级栏目)?

    解答:可以在模板中使用{dede:channelartlist typeid='top' row='10'} 标签,结合嵌套的 SQL 查询语句来实现,具体代码如下:

    “`php

    {dede:channelartlist typeid=’top’ row=’10’}

    <li><a href="{dede:field name=’typeurl’/}">{dede:field name=’typename’ /}</a>

    <ul>

    {dede:sql sql=’select * from dede_arctype where reid =~id~ ‘}

    <li>

    <a href=[field:typedir function=’str_replace("{cmspath}","",@me)’/]>[field:typename/]</a>

    <ul>

    [field:id runphp=’yes’]

    global $dsql;

    $id=@me;

    $sql=’Select * from dede_arctype where reid=’.$id.’ ORDER BY id limit 0,20′;

    $dsql>SetQuery($sql);

    $dsql>Execute();

    while($row = $dsql>GetArray()){

    $url = str_replace("{cmspath}","",$row[‘typedir’]);

    $str .='<li><a href="’.$url.’">’.$row[‘typename’].'</a></li>’;

    @me = $str;

    }

    if(@me == $id){ //避免3级栏目为空时 写出分类ID,这里加以判断

    @me =”;

    }

    [/field:id]

    </ul>

    </li>

    {/dede:sql}

    </ul>

    </li>

    {/dede:channelartlist}

    “`。

    原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1099441.html

    本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

    (0)
    未希的头像未希新媒体运营
    上一篇 2024-09-29 02:20
    下一篇 2024-09-29 02:27

    相关推荐

    • 织梦DedeCMS核心目录知识有哪些要点?

      织梦DedeCMS核心目录知识大全背景介绍织梦DedeCMS是一款流行的开源内容管理系统(CMS),广泛用于企业建站和信息管理,了解其目录结构和文件功能对于开发者进行二次开发、安全管理和界面定制至关重要,本文将详细介绍织梦DedeCMS的核心目录结构及其主要文件的作用,以帮助开发者更好地理解和使用该CMS,目录……

      2024-11-02
      0282
    • 织梦DedeCMS模板目录文件详解,如何全面理解其结构与功能?

      织梦DedeCMS模板目录文件详解织梦DedeCMS模板结构与功能解析1、织梦DedeCMS简介- DedeCMS概述- 主要功能与特点- 适用场景与用户群体2、核心目录结构- /include目录- /templets目录- /uploads目录3、重要配置文件- config_base.php- confi……

      2024-11-02
      07
    • 织梦DedeCMS基础标签中,哪些是常用的?

      织梦DedeCMS基础标签之常用标签讲解一、全局标签 网站信息标签{dede:global.cfg_webname/}:获取网站名称,{dede:global.cfg_description/}:获取网站描述,{dede:global.cfg_keywords/}:获取网站关键字,{dede:global.cf……

      2024-11-02
      02
    • 织梦Dedecms的基础目录文件结构是如何组织的?

      织梦Dedecms的基础目录文件结构详解概述管理系统(Dedecms)是一款广泛使用的开源CMS,其文件夹目录结构对于使用和开发Dedecms的人来说至关重要,本文将详细解析Dedecms的文件夹目录结构,帮助读者更好地理解其文件分布和组织方式,以便更好地进行开发、维护和优化,根目录结构 /a 默认生成文件存放……

      2024-11-02
      050

    发表回复

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

    产品购买 QQ咨询 微信咨询 SEO优化
    分享本页
    返回顶部
    云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入