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

deegao  于 2019-4-9 20:33:52 回帖奖励 |阅读模式
0 3713
织梦DEDECMS文章、栏目页获取当前页面顶级栏目名称的方法
在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:field name='typename' /} 可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。
下面拓展出一个方法来实现这个效果:

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

  1. //获取顶级栏目名
  2. function GetTopTypename($id)
  3. {
  4.     global $dsql;
  5.     $row = $dsql->GetOne("SELECT typename,topid FROM dede_arctype WHERE id= $id");
  6.     if ($row['topid'] == '0')
  7.     {
  8.         return $row['typename'];
  9.     }
  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)" /}
复制代码


方法二:

修改 include/helpers/extend.helper.php
结尾增加 :
  1. /*  获取顶级栏目相关信息
  2. *
  3. * @access    public
  4. * @param     string  $tid  栏目id
  5. * @param     string  $field栏目字段
  6. * @return    string
  7. */
  8. if ( ! function_exists('getToptype'))
  9. {
  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)"/}  //栏目名称
复制代码


| 0 人收藏
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 售后服务
    • 关注我们
    • 社区新手

    QQ|Archiver|手机版|小黑屋|德高网络.  

    Powered by Discuz! X3.2  © 2001-2018 Comsenz Inc.