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

在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:field name='typename' /} 可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。

下面拓展出一个方法来实现这个效果:

方法一:

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

01

//获取顶级栏目名

02

function GetTopTypename($id)

03

{

04

    global $dsql;

05

    $row = $dsql->GetOne("SELECT typename,topid FROM dede_arctype WHERE id= $id");

06

    if ($row['topid'] == '0')

07

    {

08

        return $row['typename'];

09

    }

10

    else

11

    {

12

        $row1 = $dsql->GetOne("SELECT typename FROM dede_arctype WHERE id= $row[topid]");

13

        return $row1['typename'];

14

    }

15

}

在文章页或者栏目列表页调用时,在所要调用 名称的位置加上下面这行代码即可实现。

1

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

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

1

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

方法二:

修改 include/helpers/extend.helper.php 

结尾增加 :

01

/*  获取顶级栏目相关信息

02

 *

03

 * @access    public

04

 * @param     string  $tid  栏目id

05

 * @param     string  $field栏目字段

06

 * @return    string

07

 */

08

if ( ! function_exists('getToptype'))

09

{

10

function getToptype($tid,$field)

11

{

12

global $dsql,$cfg_Cs;

13

if(!is_array($cfg_Cs))

14

{

15

require_once(DEDEDATA."/cache/inc_catalog_base.inc");

16

}

17

if(!isset($cfg_Cs[$tid][0]) || $cfg_Cs[$tid][0]==0)

18

{

19

$topid = $tid;

20

}

21

else

22

{

23

$topid = GetTopid($cfg_Cs[$tid][0]);

24

}

25

$row = $dsql->GetOne("SELECT * FROM `dede_arctype` WHERE id=$topid");

26

if($field=='id') return $topid;

27

if($field=='typename') return $row['typename'];//栏目名称

28

if($field=='typeurl') return GetOneTypeUrlA($row);//栏目链接

29

if($field=='typenamedir') return $row['typenamedir'];//栏目英文名称

30

if($field=='seotitle') return $row['seotitle'];//栏目SEO标题

31

if($field=='description') return $row['description'];//栏目描述

32

if($field=='content') return $row['content'];//栏目内容

33

}

34

}

调用:

1

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

1

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

一次类推,怎么写可以观察php上面的定义!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

触发修改文章时间【fastadmincms开发记录】|fastadmincms二次开发,触发,修改,文章,时间,fastadmin,ms,开发,记录
触发修改文章时间【fastadmincms开发记录】
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】|fastadmincms二次开发,在tp5中,过滤,输入,的零,宽度,字符,fastadmin,ms,开发,记录
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】
处理tag标签中的0宽空格【fastadmincms开发记录】|fastadmincms二次开发,处理,tag,标签,中的,0宽,空格,fastadmin,ms,开发,记录
处理tag标签中的0宽空格【fastadmincms开发记录】
添加专题时tags标签id出错【fastadmincms开发记录】|fastadmincms二次开发,添加,专题,时tags,标签,id,出错,fastadmin,ms,开发,记录
添加专题时tags标签id出错【fastadmincms开发记录】
20230518----模板 广告【fastadmincms开发记录】|fastadmincms二次开发,20230518,模板,广告,fastadmin,ms,开发,记录
20230518----模板 广告【fastadmincms开发记录】
cms添加视频模型【fastadmincms开发记录】|fastadmincms二次开发,ms,添加,视频,模型,fastadmin,开发,记录
cms添加视频模型【fastadmincms开发记录】
新增单篇收费复制功能【fastadmincms开发记录】|fastadmincms二次开发,新增,单篇,收费,复制,功能,fastadmin,ms,开发,记录
新增单篇收费复制功能【fastadmincms开发记录】
添加开会员折扣功能【fastadmincms开发记录】|fastadmincms二次开发,添加,开会,折扣,功能,fastadmin,ms,开发,记录
添加开会员折扣功能【fastadmincms开发记录】

历史上的今天:04月29日

热门专题

易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
卓越综合高中|卓越综合高中
卓越综合高中
云南开放大学|云南开放大学报名,云南开放大学报考,云南开放大学,什么是云南开放大学,云南开放大学学历,云南开放大学学费,云南开放大学报名条件,云南开放大学报名时间,云南开放大学学历,云南开放大学专业
云南开放大学
安徽中源管业有限公司|安徽中源管业有限公司,安徽中源管业有限公司介绍,安徽中源管业有限公司电话,安徽中源管业有限公司地址,安徽中源管业有限公司厂家,安徽中源管业有限公司电力管,安徽中源管业有限公司管材
安徽中源管业有限公司
昆明综合高中|昆明综合高中
昆明综合高中
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
云南网站建设|云南网站制作,网站建设,云南网站开发,云南网站设计,云南网页设计,云南网站建设公司,云南网站建设
云南网站建设
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部