DeDeCms的專題相關(guān)信息bbs上相對(duì)較少,之前查閱了很多資料都未找到其解決方案
無(wú)柰只有靠自己動(dòng)手豐衣足食;在官方的版本上有這樣的一段話:
1、文章列表用ID1,ID2,ID3這樣形式分開,系統(tǒng)會(huì)自動(dòng)排除不同節(jié)點(diǎn)的相同文章;
2、關(guān)于單條記錄模板里的[field:fieldname /]標(biāo)記的使用,請(qǐng)參考關(guān)于系統(tǒng)幫助關(guān)于 arclist 標(biāo)記的說(shuō)明;
3、節(jié)點(diǎn)ID是節(jié)點(diǎn)的唯一標(biāo)識(shí),允許在專題模板中用{dede:specnote id='標(biāo)識(shí)'/}這樣來(lái)表示單個(gè)節(jié)點(diǎn)。
4、正常的情況下,每個(gè)節(jié)點(diǎn)顯示的是“節(jié)點(diǎn)文章列表”里的文檔,如果你指定為“自動(dòng)獲取模式”,那么必須指定關(guān)鍵字和欄目ID。
可是經(jīng)測(cè)試{dede:specnote id='標(biāo)識(shí)'/}這個(gè)并沒(méi)有升效;因此開始解決這個(gè),以替換掉原來(lái)比較死板{dede:field name='note'/}標(biāo)簽;
舉例說(shuō)明:
我要分兩欄顯示不同節(jié)點(diǎn)的文章,目前用"note"就不能實(shí)現(xiàn),只能是同一節(jié)點(diǎn)分欄,難免就顯得有些捌扭,不夠靈活。
下面我就把自己解決方案寫下供同學(xué)們參考,首先得申明一點(diǎn),只能是實(shí)現(xiàn)了功能,可算法不一定是最好的,因?yàn)槲也惶煜ぃ模牛模牛茫停哟a且沒(méi)有認(rèn)真的研究過(guò),希望大家海涵!
步驟1:
文件位置:{include/inc_archives_view.php}
代碼如下:
//廣告標(biāo)記
//———————–
else if($ctag->GetName()=="myad"){
$this->dtp->Assign($tagid,$this->PartView->GetMyAd($typeid,$ctag->GetAtt("name")));
}
// 專題標(biāo)識(shí)
// by phpfans
else if($ctag->GetName()=="specnote"){
$this->dtp->Assign($tagid,$this->ChannelUnit->GetSpecList('',$this->ChannelUnit->specrule,$ctag->GetAtt("id")));
}
介紹:{在廣告標(biāo)記下增加專題標(biāo)識(shí)}這樣專題文章列表頁(yè)就可以識(shí)別specnote標(biāo)簽了
步驟2:
文件位置:{include/inc_channel_unit.php}
var $specrule;
//————-
//php5構(gòu)造函數(shù)
//————-
介紹:增加了對(duì)$pecrule變量的定義
步驟3:
文件位置:{include/inc_channel_unit.php}
代碼如下:
else if($ftype=="specialtopic"){
$this->specrule = $fvalue;
$fvalue = $this->GetSpecList($fname,$fvalue);
}
介紹:這兒增加了$this->specrule = $fvalue;這句,以便獲取addonspec表的note字段數(shù)據(jù);
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » 專題模板應(yīng)用分析及解決方案