• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法
    POST TIME:2021-05-23 02:09

    织梦DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法

    在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{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:field name='typeid' function="GetTopTypename(@me)" /}

    在文章页中用下面这个方法来调用

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


    方法二:

    修改 include/helpers/extend.helper.php 
     

    结尾增加 :

     

    /*  获取顶级栏目相关信息
     *
     * @access    public
     * @param     string  $tid  栏目id
     * @param     string  $field栏目字段
     * @return    string
     */
    if ( ! function_exists('getToptype'))
    {
    function getToptype($tid,$field)
    {
    global $dsql,$cfg_Cs;
    if(!is_array($cfg_Cs))
    {
    require_once(DEDEDATA."/cache/inc_catalog_base.inc");
    }
    if(!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0)
    {
    $topid = $tid;
    }
    else
    {
    $topid = GetTopid($cfg_Cs[$tid][0]);
    }
    $row = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id=$topid");
    if($field=='id') return $topid;
    if($field=='typename') return $row['typename'];//栏目名称
    if($field=='typeurl') return GetOneTypeUrlA($row);//栏目链接
    if($field=='typenamedir') return $row['typenamedir'];//栏目英文名称
    if($field=='seotitle') return $row['seotitle'];//栏目SEO标题
    if($field=='description') return $row['description'];//栏目描述
    if($field=='content') return $row['content'];//栏目内容
    }
    }


    调用:

    {dede:field.typeid function="gettoptype(@me,typename)"/}  //栏目名称


    {dede:field.typeid function="gettoptype(@me,typeurl)"/}   //栏目链接

    一次类推,怎么写可以观察php上面的定义!
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!