概述
需求:
我们用{dede:type}标签调用栏目相关内容时,同时需要调用该栏目的父级栏目的名称。
{dede:type}标签的代码做了一下开发,支持这个调用了。
开发方法:
1.打开include/taglib/type.lib.php,找到函数lib_type下的代码:
$row = $dsql->GetOne("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' "); //42行
改为:
$row = $dsql->GetOne("SELECT id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' ");
2.找到如下代码:
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
在其下面添加如下代码:
$row['parent_name'] = $row['parent_id'] ='';
if(!empty($row['topid'])){
row1 = $dsql->GetOne("select typename as parent_name,id as parent_id from `#@__arctype` where id ='".$row['topid']."'");
$row['parent_name'] = $row1['parent_name'];
$row['parent_id']
= $row1['parent_id'];
} else {
$row['parent_name'] = $row['typename']; //如果时顶级栏目,就显示为该栏目名称
$row['parent_id']
= $row['id'];
}
3.前台调用方法:
<!--如果是内容页模板,可以不用指定typeid,直接调用-->
{dede:type}[field:parent_name/]{/dede:type}
{dede:type}[field:parent_id/]{/dede:type}
<!--在首页或者列表页模板,可指定typeid调用-->
{dede:type typeid='1'}[field:parent_name/]{/dede:type}
{dede:type typeid='1'}[field:parent_id/]{/dede:type}
附加:
1.调用当前栏目的名称
{dede:field name="typename"}
2.调用该顶级频道下所有子栏目,row代表调用5条
{dede:channel type='son' row='5'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel}
3.调用子栏目的当前顶级栏目名称
{dede:channel type='top'}<a>[field:typename/]</a> {/dede:channel}
4.调用指定栏目ID
{dede:type typeid='栏目id'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:type}
转载于:https://www.cnblogs.com/feixiablog/p/10418111.html
最后
以上就是直率滑板为你收集整理的Dedecms中{dede:type}标签支持调用父级栏目名称的全部内容,希望文章能够帮你解决Dedecms中{dede:type}标签支持调用父级栏目名称所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复