POST TIME:2017-11-13 00:14
arclist標(biāo)簽無法調(diào)用副欄目文章的解決辦法
最近發(fā)現(xiàn)DEDECMS/' target='_blank'>dedecms中的文章在選擇幅欄目后,
在其對(duì)應(yīng)的幅欄目列表中可以顯示該文章,但在arclist 標(biāo)簽中卻無法顯示該文章,
網(wǎng)上找了很多,解決辦法都一樣,但寫法卻寫錯(cuò)了,導(dǎo)致arclist標(biāo)簽在使用了flag屬性時(shí)會(huì)失效的問題。
修正后的寫法如下。
打開/include/taglib/arclist.lib.php,我目前用的最新版 5.7 SP1,
代碼約位于295-296行。查找以下兩行代碼。
if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';
else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';
將其替換成以下代碼。
if($CrossID=='') $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).') OR arc.typeid2 IN ('.GetSonIds($typeid).')) ';
else $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.') OR arc.typeid2 IN ('.GetSonIds($typeid).','.$CrossID.')) ';
OK,這樣就改完了,保存后如果你是生成靜態(tài)的,請(qǐng)生成相關(guān)的。如果是動(dòng)態(tài)的,請(qǐng)更新系統(tǒng)緩存。然后就可以看到效果了。
===============================================================================
以上方法有個(gè)缺點(diǎn)arclist 標(biāo)簽
下面方法經(jīng)測(cè)試可以三個(gè) 不知道三個(gè)以上可以不可以
用arclist標(biāo)簽調(diào)用文章的時(shí)候才發(fā)現(xiàn),根本無法調(diào)用相關(guān)文章。
下面給出解決辦法,希望幫到需要的人。
找到/include/taglib/arclist.lib.php文件然后打開。然后在大約300行代碼的位置。將下面的代碼
if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';
else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';
替換成
if($CrossID=='')
$orwheres[] = " (arc.typeid in (".GetSonIds($typeid).") or
arc.typeid2 in(".GetSonIds($typeid).") or CONCAT( ',',
arc.typeid2, ',' ) LIKE '%,".$typeid.",%' )";
else $orwheres[] = " (arc.typeid in (".GetSonIds($typeid)
.",".$CrossID.") or arc.typeid2
in (".GetSonIds($typeid).",".$CrossID.")
or CONCAT( ',', arc.typeid2, ',' ) LIKE '%,".$typeid.",%')";