用户名  找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3134|回复: 0

[分享] 织梦调用当前顶级栏目名称、ID、url方法

[复制链接]
发表于 2018-9-30 08:22:46 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
我们在用织梦做网站时,经常会碰到需要调用当前顶级栏目名称,而织梦默认{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. }
复制代码

备注:若顶级栏目没有绑定二级域名,所调用的字段应该是 sitepath 故代码应如下所示:

  1. //获取顶级栏目url
  2. function GetTopTypeurl($id)
  3. {
  4.     global $dsql;
  5.     $row = $dsql->GetOne("SELECT sitepath,topid FROM dede_arctype WHERE id= $id");
  6.     if ($row['topid'] == '0')
  7.     {
  8.         return $row['sitepath'];
  9.     }
  10.     else
  11.     {
  12.         $row1 = $dsql->GetOne("SELECT sitepath FROM dede_arctype WHERE id= $row[topid]");
  13.         return $row1['sitepath'];
  14.     }
  15. }
复制代码

顶级栏目其他字段调用的function 函数仿照上面所示书写即可。



同理可得获取顶级栏目url方法 (当顶级栏目绑定二级域名时调用的字段为“ siturl”)

  1. function GetTopTypeurl($id)
  2. {
  3.     global $dsql;
  4.     $row = $dsql->GetOne("SELECT siteurl,topid FROM dede_arctype WHERE id= $id");
  5.     if ($row['topid'] == '0')
  6.     {
  7.         return $row['siteurl'];
  8.     }
  9.     else
  10.     {
  11.         $row1 = $dsql->GetOne("SELECT siteurl FROM dede_arctype WHERE id= $row[topid]");
  12.         return $row1['siteurl'];
  13.     }
  14. }
复制代码



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

{dede:field name='typeid' function="GetTopTypename(@me)" /}    顶级栏目名

{dede:field name='typeid' function="GetTopTypeurl(@me)" /}     顶级栏目url



dede调用顶级栏目ID 方法一:

{dede:field.typeid function="GetTopid(@me)"/}  跟版网首推这一方法,经过测试是可行的。



dede调用顶级栏目ID 方法二:

1、在所需要调用顶级栏目ID的地方,添加这段标签语法

{dede:type}[feild:topid/]{/dede:type}



2、修改源文件,找到include目录下的taglib目录下的type.lib.php。

找到这条语句
  1. $row = $dsql->GetOne(“Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
  2. From `dede_arctype` where id=’$typeid’ “);
复制代码

修改成为
  1. $row = $dsql->GetOne(“Select id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
  2. From `dede_arctype` where id=’$typeid’ “);
复制代码

在if(!is_array($row)) return ”;下一行添加
  1. if( $row['topid']==0){$row['topid']=$row['id'];}
复制代码

这样,这条语句在顶级栏目还是子栏目,都可以调用了

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

▶专业解决各类DiscuzX疑难杂症、discuz版本升级 、网站搬家 和 云服务器销售!▶有偿服务QQ 860855665 更多精品应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐

在飘仙这里购买服务器空间的好处

1、凡是在飘仙这边购买服务器空间的,飘仙所提供的服务都超出了空间商本身的义务

      在飘仙这里 飘仙会大家尽量少走冤枉路,不花冤枉钱 

2、服务器空间质量可靠,价格优惠,8折优惠长期折扣,不玩套路! 

    所谓套路就是:新用户首单超低配置的服务器空间 给个很大的折扣(还鼓励一次购买多年),表明看起来价格很低,等升级续费或二次购买的时候 价格爆贵!——新手大多不能准确估算自己需要什么样的配置

查看 »

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2025-4-6 21:00 , Processed in 0.057384 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表