POST TIME:2020-03-28 21:51
為了增加網(wǎng)站的用戶粘度,留住客戶,我們采用各種手法,增加網(wǎng)站的粘度,比如在文檔下方添加“相關(guān)文章”欄目,我們知道織夢CMS可以通過likearticle標(biāo)簽的調(diào)用來實(shí)現(xiàn),但我們發(fā)現(xiàn)在使用likearticle標(biāo)簽在實(shí)現(xiàn)文檔關(guān)聯(lián)時(shí),只能調(diào)用當(dāng)前欄目(包括頂級(jí)欄目下的下級(jí)欄目)的文檔,那么我們?nèi)绾蝸韺?shí)現(xiàn)關(guān)聯(lián)網(wǎng)站的所有文檔呢?
我們知道,從DedeV5.3版本開始,所有的標(biāo)簽源碼都是獨(dú)立的,我們只需要修改標(biāo)簽源碼就可以實(shí)現(xiàn)這個(gè)功能了。
打開include agliblikearticle.lib.php文件,找到如下代碼:
if(!emptyempty($refObj->Typelink->TypeInfos['reid'])){
$typeid=$refObj->Typelink->TypeInfos['reid'];
}
將其替換為如下代碼:
if($typeid=='0'){
$typeid='';
}
elseif(!emptyempty($refObj->Typelink->TypeInfos['reid'])){
$typeid=$refObj->Typelink->TypeInfos['reid'];
}
保存后即可。
通過這樣的修改以后,相關(guān)文檔的調(diào)用就會(huì)默認(rèn)索引所有的文檔了。
這里需要給大家糾正一下,在相關(guān)文檔標(biāo)簽里,限制調(diào)用欄目的參數(shù)為 mytypeid 而不是 typeid,希望大家要注意。
我們?cè)黾拥膶?shí)際核心代碼為:
if($typeid == '0'){
$typeid = '';
}
它的意思是,如果typeid傳來的值等于0,那么就將變量$typeid為空。而索引$typeid變量是在下面SQL語句里:
Selectarc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,
tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
from`dede_archives`arcleftjoin`dede_arctype`tponarc.typeid=tp.id
wherearc.arcrank>-1and($keyword)$typeid$orderquerylimit0,$row
而這里的$typeid變量也是在上一行的 $typeid = " And arc.typeid in($typeid) And arc.id<>$arcid "; 中進(jìn)行賦值。那么我們將這個(gè)$typeid 變量是事先就判斷并賦值為空以后,一切的問題就自燃迎刃而解了。