如何在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(织梦内容管理系统)构建,这是一个流行的开源PHP网站管理平台,适用于创建和管理动态网站。如果您需要进一步的帮助,请提供更多详细信息。

      2024-11-20
      012
    • DEDECMS中的时间显示如何设置为多少分钟前?

      您的问题似乎不完整,请提供更详细的信息或上下文,以便我能更准确地回答您。如果您是在询问dedecms(一个内容管理系统)的安装、配置、使用或其他相关问题,请具体说明需要了解的内容,我会很乐意为您提供帮助。

      2024-11-08
      020
    • Dede如何查看文章数量?

      在 DedeCMS(织梦内容管理系统)中,查看文章数量的方法如下:,,1. 登录后台管理系统。,2. 进入“内容管理”模块。,3. 选择“文章管理”。,4. 在右侧列表中即可看到所有文章的标题、作者、发布时间等信息。

      2024-11-07
      024
    • 织梦DedeCMS核心目录知识有哪些要点?

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

      2024-11-02
      0329

    发表回复

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

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