用DedeCMS做三級欄目的網(wǎng)站建設(shè)時,會經(jīng)常需要調(diào)用三級欄目,并不需要太多二次開發(fā),用channelartlist標(biāo)簽就能調(diào)用了,比如調(diào)用欄目id為6的子欄目然后再調(diào)用子欄目的子欄目,有多少個一級欄目就寫多少次,修改一下typeid即可,雖然稍微麻煩了點,總比大串的代碼強(qiáng)多了。寫法如下:
{dede:channelartlist typeid = '6'}
<li><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
<p class="subnav">
{dede:channel type='son'}
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:channel}
</p>
</li>
{/dede:channelartlist}
這樣就解決了三級欄目調(diào)用的問題,但是當(dāng)欄目沒有子欄目的時候,默認(rèn)調(diào)用同級欄目,源程序估計認(rèn)為這樣的展現(xiàn)比較好,但實際上體驗非常不好。下面秀站網(wǎng)提供修正方法。
↑上面三個欄目沒有子欄目,channel標(biāo)簽調(diào)用了同級欄目名
打開 /include/taglib/channel.lib.php ,找到
if($type=='son' && $reid!=0 && $totalRow==0)
修改為
if($type==?'son' && $reid!=0 && $totalRow==0 && $noself=='')
channel標(biāo)簽中加上 noself='yes' 即可。
{dede:channel type='son' row='5' noself='yes'}