織夢Dedecms 給arclist標籤增加notypeid屬性實現欄目過濾

織夢的標籤功能非常強大,只要熟悉這些標籤,在前臺調用各種形式的後臺數據就能得心應手。當然,如果能懂點技術,對織夢的標籤再加以改進,那就更完美了。

下面就來說說怎麼修改使織夢article標籤增加notypeid屬性,實現在多欄目調用的時候排除不需要的欄目。

打開/include/taglib/arclist.lib.php文件,找這段代碼(大概在130行):
1

return lib_arclistDone ( $refObj, $ctag, $typeid, $ctag->GetAtt('row'),
$ctag->GetAtt('col'), $titlelen, $infolen,
$ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'),
$listtype,$orderby, $ctag->GetAtt('keyword'), $innertext, $envs['aid'],
$ctag->GetAtt('idlist'), $channelid, $ctag->GetAtt('limit'),$flag,$ctag->GetAtt('orderway'),
$ctag->GetAtt('subday'), $ctag->GetAtt('noflag'), $tagid,$pagesize,$isweight );

在最後括號最後加上(注意前面的逗號):
1

,$ctag->GetAtt('notypeid')

然後再找到這一段代碼(大概在168行):
1

function lib_arclistDone(&$refObj, &$ctag, $typeid=0, $row=10,$col=1, $titlelen=30, $infolen=160,
$imgwidth=120,$imgheight=90,$listtype='all', $orderby='default', $keyword='', $innertext='',
$arcid=0, $idlist='', $channelid=0, $limit='', $att='',$order='desc', $subday=0, $noflag='',
$tagid='', $pagesize=0,$isweight='N',$notypeid=0)

在括號的最後加上(注意前面的逗號):
1

,$notypeid=0

最後再找到這一句:
1

$orwheres[] = ' arc.arcrank > -1 ';

在其前面增加以下代碼:
1
2
3

if(!empty($notypeid)) {
$orwheres[] = " and arc.typeid NOT IN (".GetSonIds($notypeid).")";
}

這樣,代碼就修改完畢了。保存之後就在arclist標籤裏試試看notypeid屬性吧。對於網站欄目多,內容顯示時又錯綜複雜的情況,這樣的屬性還是蠻實用的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章