北京網站制作-channelartlist自動獲取上級欄目,自動獲取同級欄目,不指定typeid
時間: 來源:網站建設公司 作者:網站制作公司 點擊量:
使用dede時,想在列表頁和內容頁調用同級欄目的文章,當然可以使用{dede:channelartlist typeid=1 row=5}的方法,指定欄目id,但是要自動判斷當前欄目的同級欄目就沒辦法了或者需要給每個頂級欄目分配一個模板,這樣很麻煩。
使用dede時,想在列表頁和內容頁調用同級欄目的文章,當然可以使用{dede:channelartlist typeid=‘1’ row='5'}的方法,指定欄目id,但是要自動判斷當前欄目的同級欄目就沒辦法了或者需要給每個頂級欄目分配一個模板,這樣很麻煩。本文將給一種更簡單的辦法
找到\include\taglib\channelartlist.lib.php 文件
查找: $attlist = 'typeid|0,row|20,cacheid|';
修改為:$attlist = 'typeid|0,row|20,cacheid|,type|'; //這邊加個 type 實現 在子欄目下調用 同級子欄目的信息
然后查找:
if($typeid==0 || $typeid=='top') {
$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
}
修改為:
if($type=='reid') //調用上級目錄下的子欄目內容
{
$reid = $refObj->TypeLink->TypeInfos['reid'];
$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='5'}
底層循環代碼