使用DedeCMS在調(diào)用某欄目的子欄目的時(shí)候,織夢58用channelartlist標(biāo)簽時(shí),當(dāng)這個(gè)欄目沒有子欄目時(shí),就會(huì)出現(xiàn)重復(fù)同級欄目,如下圖所示:
(此圖片來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除! )
織夢58調(diào)用代碼為:
<ul> {dede:channelartlist typeid="192"} <li class="cc"> <span class="ks_left"><a href="{dede:field name='typeurl'/}" target="_blank">{dede:field name='typename'/}</a></span> <span class="ks_right"> {dede:channel noself="yes"} <a href="[field:typeurl/]" target="_blank">[field:typename/]</a> {/dede:channel} </span> </li> {/dede:channelartlist} </ul> |
這段代碼就是先循環(huán)輸出頂級欄目,再輸出子欄目,但是實(shí)際應(yīng)用的時(shí)候,如果頂級欄目下沒子欄目了,理論上應(yīng)該為空,這里卻調(diào)出同級欄目,這顯然不是我們需要的。
織夢58查詢一番,找到解決方案(適用于DedeCMS5.6以上版本):
打開include/taglib/channel.lib.php文件,找到(大概在108行):
if($type=='son' && $reid!=0 && $totalRow==0)
修改為:
if($type=='son' && $reid!=0 && $totalRow==0 && $noself=='')
(此圖片來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除! )
這樣,就可以完美實(shí)現(xiàn)有子欄目則調(diào)用子欄目,沒有子欄目則輸出空。