DEDE arclist標籤沒法調用副欄目文章的解決辦法arclist標籤調用

arclist標籤沒法調用副欄目文章的解決辦法php

 

最近發現DEDECMS中的文章在選擇幅欄目後,緩存

在其對應的幅欄目列表中能夠顯示該文章,但在arclist 標籤中卻沒法顯示該文章,測試

網上找了不少,解決辦法都同樣,但寫法卻寫錯了,致使arclist標籤在使用了flag屬性時會失效的問題。spa

修正後的寫法以下。cli


打開/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.')';標籤

 

將其替換成如下代碼。co

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.')) ';oss

 

OK,這樣就改完了,保存後若是你是生成靜態的,請生成相關的。若是是動態的,請更新系統緩存。而後就能夠看到效果了。

===============================================================================

以上方法有個缺點arclist 標籤 就是隻能有在顯示兩處位置 

下面方法經測試能夠個 不知道三個以上能夠不能夠

用arclist標籤調用文章的時候才發現,根本沒法調用相關文章。

下面給出解決辦法,但願幫到須要的人。

找到/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.",%')";

相關文章
相關標籤/搜索