百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>织梦CMS教程> dedecms织梦网站模板调用当前顶级栏目名称、ID、url方法 相关案
分享文章到:

dedecms织梦网站模板调用当前顶级栏目名称、ID、url方法 相关案

发布时间:03/15 来源:未知 浏览: 关键词:
使用dede时,经常会碰到需要调用当前顶级栏目名称,而织梦默认{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 }

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

01 //获取顶级栏目url
02 function GetTopTypeurl($id)
03 {
04     global $dsql;
05     $row = $dsql->GetOne("SELECT sitepath,topid FROM dede_arctype WHERE id= $id");
06     if ($row['topid'] == '0')
07     {
08         return $row['sitepath'];
09     }
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”) 
01 function GetTopTypeurl($id)
02 {
03     global $dsql;
04     $row = $dsql->GetOne("SELECT siteurl,topid FROM dede_arctype WHERE id= $id");
05     if ($row['topid'] == '0')
06     {
07         return $row['siteurl'];
08     }
09     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的地方,添加这段标签语法
1 {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'];}

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

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有58人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板