需求:
我们用{dede:type}标签调用栏目相关内容时,同时需要调用该栏目的父级栏目的名称。
{dede:type}标签的代码做了一下开发,支持这个调用了。
开发方法:
1.打开include/taglib/type.lib.php,找到函数lib_type下的代码:
复制代码
1$row = $dsql->GetOne("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' "); //42行
改为:
复制代码
1
2$row = $dsql->GetOne("SELECT id,topid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__arctype` WHERE id='$typeid' ");
2.找到如下代码:
复制代码
1$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
在其下面添加如下代码:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12$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.前台调用方法:
复制代码
1
2<!--如果是内容页模板,可以不用指定typeid,直接调用--> {dede:type}[field:parent_name/]{/dede:type}
复制代码
1{dede:type}[field:parent_id/]{/dede:type}
复制代码
1<!--在首页或者列表页模板,可指定typeid调用-->
{dede:type typeid='1'}[field:parent_name/]{/dede:type}
复制代码
1{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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复