DedeCMS获取顶级栏目名称的方法

在用DedeCMS做网站过程中,遇到多层级的栏目分级,为了少写几个模板,经常会需要调用顶级栏目名称。Dede自带的{dede:field name='typename' /}可以获取当前栏目的上级栏目名称,不能满足要求。

下面这个方法可以实现在任意级别(二级、三级甚至是四级)的栏目中获取到顶级栏目名称。代码如下:

在include/common.func.php的最后加入:

//获取顶级栏目名
function GetTopTypename($id)
{
    global $dsql;
    $row = $dsql->GetOne("SELECT typename,topid FROM dede_arctype WHERE id= $id");
    if ($row['topid'] == '0')
    {
        return $row['typename'];
    }
    else
    {
        $row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]");
        return $row1['typename'];
    }
}//如果你修改了数据表前缀,请将代码中的dede_改为相应的表前缀


在文章页或栏目页调用顶级栏目名称时使用下面的代码即可:

{dede:field name='typeid' function="GetTopTypename(@me) /}

需要说明的是,这个方法只能获取到顶级栏目的名称,栏目链接没有获取,实际使用过程中请注意。

本文为原创,转载请注明来自 THIS IS IT - 夜色冷月,并保留原文链接

相关日志

已留下 4 个脚印

  1. DedeCMS 很强大

    • 其实强大的是写代码的人。只要留有接口,想要的功能总能开发出来。

      • 赞同一半。牛逼的是这个项目的设计师。做系统架构的才是最牛逼的。写代码的可以找人代替,而一个产品的架构师则不能掉链子。

留下足迹