php 调取子栏目,Dedecms 如何调取某个栏目所在的顶级栏目及顶级下的子栏目
DEDEcms系統制作網站時,它本身提供了很多標簽,但要想自己在使用過程中滿足自己的特別需求,還得二次開發改它的內核。如需要用到調用當前欄目的頂級欄目下的所有子欄目,不指定typeid,那么應該如何操作呢?
應用場景:
導航功能,Dede自身提供的方法只能通過指定父欄目id來實現,一個站很多地方需要只調用當前欄目的頂級欄目下的所有子欄目,不指定typeid,那模板代碼怎么實現?
1. 找到\include\taglib\channelartlist.lib.php
找到: ? ?$attlist = ‘typeid|0,row|20,cacheid|’;
修改為:$attlist = ‘typeid|0,row|20,cacheid|,type|’; ? ? //這邊加個 type 實現 在子欄目下調用 ? 同級子欄目的信息
2. 修改66行處的代碼
if($typeid==0 || $typeid==’top’) {
$tpsql = ” reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 “;
}
在它前面加個if條件判斷,修改為:
if($type=='reid') {
$reid = $refObj->TypeLink->TypeInfos['reid'];
if( $reid == 0 ){
$tpsql = " reid='$typeid' AND ispart<>2 AND ishidden<>1 ";
}else{
$tpsql = " reid=$reid AND ispart<>2 AND ishidden<>1 ";
}
}else if($typeid==0 || $typeid=='top'){
$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
}
保存上面文件。然后在列表頁或者內容頁使用
{dede:channelartlist type=’reid’ row=’1′}
底層循環代碼
{/dede:channelartlist}
就可以方便調用了.
示例代碼:
{dede:channelartlist type=’reid’ row=’1′}
{dede:channel type=’son’}
總結
以上是生活随笔為你收集整理的php 调取子栏目,Dedecms 如何调取某个栏目所在的顶级栏目及顶级下的子栏目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php多态性和继承是什么意思,封装 继承
- 下一篇: 男子在莫斯科偶遇中国南京蓝牌汽车 “特斯