我們知道織夢(mèng)系統(tǒng)里面調(diào)用欄目導(dǎo)航用的標(biāo)簽是:
{dede:channel type='top' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"}
<li><a href='[field:typelink/]'>[field:typename/]</a> </li>
{/dede:channel}
聽網(wǎng)友說(shuō)要調(diào)用上級(jí)欄目的id,手冊(cè)上說(shuō)使用reid='0',因?yàn)?,沒有使用過個(gè)也沒有注意,但是,測(cè)試一下發(fā)現(xiàn)這個(gè)調(diào)用上級(jí)欄目的功能有問題,加上這個(gè)屬性只能調(diào)用同級(jí)欄目,說(shuō)明這個(gè)屬性有問題。
由于群里的網(wǎng)友說(shuō)要調(diào)用上級(jí)欄目id,所以,我研究了下這個(gè)標(biāo)簽channel的源碼,發(fā)現(xiàn)織夢(mèng)官方?jīng)]有處理調(diào)用上級(jí)欄目的屬性reid='0'情況,可能官方認(rèn)為調(diào)用上級(jí)欄目一般人用不到,確實(shí)如此,用了很多年了,這個(gè)標(biāo)簽競(jìng)?cè)粡臎]有用到過,正好很多也沒有在織夢(mèng)基地做教程了,不管這個(gè)標(biāo)簽屬性是不是常用的標(biāo)簽,今天,就做個(gè)教程。
因?yàn)?,要進(jìn)行二次開發(fā),所以,如果不懂php程序的,可以接照下面一步一步添加上代碼就可以,如果懂php程序的,我會(huì)在后面做一下簡(jiǎn)單分析供大家參考。
1.在文件/include/taglib/channel.lib.php里面添加,如下sql語(yǔ)句,如下圖所示:
else{
$sql = "SELECT reid,id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `dede_arctype` WHERE id='$typeid' And ishidden<>1 order by sortrank asc limit 0, $line ";
}
注意,添加的位置是在else if($type=='self')這個(gè)條件下面添加。
這句sql語(yǔ)句的作用是:查詢當(dāng)前欄目下面的上級(jí)欄目reid,當(dāng)前欄目id等,主要是reid值。
2. 然后,添加一行代碼:$row['reid']= $row['reid'];
添加的位置如下:
也就是在下面的這個(gè)條件if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' )下面添加二行上面的代碼。
添加這二行的作用就是為了實(shí)現(xiàn)標(biāo)簽底層模板的調(diào)用。
3. 進(jìn)行測(cè)試,在list_arcticle.htm里面添加如下標(biāo)簽:
{dede:channel }
[field:reid/]
{/dede:channel}
注意:上面的{dede:cahnnel}里面不要添加任何屬性。