• 中文
    • English
  • 注册
    • 总打赏排行
    • 今日收益排行

    暂没有数据

  • 牛魔王
    牛魔王
    他太懒了,什么都没有写
  • 查看作者
  • DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法

    织梦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上面的定义!

  • 0
  • 0
  • 0
  • 231
  • 请登录之后再进行评论

    登录
  • 做任务
  • 实时动态
  • 偏好设置
  • 返回顶部
  • 单栏布局 侧栏位置: