dedecms在arclist中實現調用副欄目文章的功能
來源:程序員人生 發布時間:2014-06-08 05:01:39 閱讀次數:2431次
dedecms中的文章在選擇幅欄目后,在其對應的幅欄目列表中可以顯示該文章,但在arclist 標簽中卻無法顯示該文章,網上找了很多,解決辦法都一樣,但寫法卻寫錯了,導致arclist標簽在使用了flag屬性時會失效的問題。修正后的寫法如下:
打開/include/taglib/arclist.lib.php,代碼約位于301-302行(我目前用的DedeCMS最新版 5.7 UTF-8),查找以下兩行代碼:
if($CrossID==”) $orwheres[] = ‘ arc.typeid IN (‘.GetSonIds($typeid).’)';else $orwheres[] = ‘ arc.typeid IN (‘.GetSonIds($typeid).’,’.$CrossID.’)';
將其替換成以下代碼:
if($CrossID==”)
{
$typeid2like = ” ‘%,”.GetSonIds($typeid).”,%’ “;
$orwheres[] = ” (arc.typeid IN (“.GetSonIds($typeid).”) OR CONCAT(‘,’, arc.typeid2, ‘,’) LIKE $typeid2like ) “;
}else{
$typeid2like = ” ‘%,”.GetSonIds($typeid).”,”.$CrossID.”,%’ “;
$orwheres[] = ” (arc.typeid IN (“.GetSonIds($typeid).”,”.$CrossID.”) OR CONCAT(‘,’, arc.typeid2, ‘,’) LIKE $typeid2like) “;
}
OK,這樣就改完了,保存后如果你是生成靜態的,請生成相關的。如果是動態的,請更新系統緩存。然后就可以看到效果了。
適合單欄目調用,多欄目調用暫時實現不了,如果哪位同志實現了的,可以完善下哦,方便大家!
例如:{dede:arclist typeid=’4′},這里的typeid只能設置一個欄目的id,如果設置超過兩個就實現不了上面的功能了,忘高手補充下。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈