POST TIME:2017-10-27 22:06
最近一段時間以來,有不少時間都在折騰DEDECMS,對其進行了不少的優化工作,以便其適應我的應用要求。在這其中,也遇到了不少的問題。譬如:DEDECMS根據副欄目進行文章調用的問題。
DEDECMS中一個文章可以同時屬于兩個欄目,即一個主欄目一個副欄目,{dede:arclist} 屬性中可以通過typeid進行主欄目有效性篩選,但是有時我們卻想根據副欄目進行篩選,查了dedecms的在線用戶手冊發現沒有此功能,最后搜索到一個有效地解決辦法。只需修改標簽對應的源文件。
查找 dedecmsROOT/include/taglib/arclist.lib.php 文件,大概在第212行代碼處。
if($CrossID=='') $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).')';
else $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).','.$CrossID.')';
替換為:
if($CrossID=='')
$orwheres[] = ' typeid in ('.GetSonIds($typeid).') or typeid2 in ('.GetSonIds($typeid).')';
else
$orwheres[] = ' typeid in ('.GetSonIds($typeid).','.$CrossID.') or typeid2 in ('.GetSonIds($typeid).','.$CrossID.')';
示例:{dede:arclist typeid=’2,3,4′}….{/dede:arclist}
通過以上辦法,有效地解決了DEDECMS最新版本V5.6正式版(2010-08-18)(包括在此前的版本),不支持通過arclist標簽調用副欄目文章的問題。