likearticle实现关联网站的所有文档的方法

相关案例演示
为了增加网站的用户粘度,留住客户,我们采用各种手法,增加网站的粘度,比如在文档下方添加“相关文章”栏目,
我们知道织梦DEDECMS可以通过likearticle标签的调用来实现,但我们发现在使用likearticle标签在实现文档关联时,
只能调用当前栏目(包括顶级栏目下的下级栏目)的文档,那么我们如何来实现关联网站的所有文档呢?
我们知道,从DedeV5.3版本开始,所有的标签源码都是独立的,我们只需要修改标签源码就可以实现这个功能了。
 
一、实现方法
打开\include\taglib\likearticle.lib.php文件,找到如下代码:
 
if(!emptyempty($refObj->Typelink->TypeInfos['reid'])) {   
 
$typeid = $refObj->Typelink->TypeInfos['reid'];
 
}  
 
将其替换为如下代码:
 
if($typeid == '0'){   
 
 $typeid = '';  
 
}   
 
else if(!emptyempty($refObj->Typelink->TypeInfos['reid'])) {   
 
 $typeid = $refObj->Typelink->TypeInfos['reid'];   
 
}  
 
保存后即可。
 
通过这样的修改以后,相关文档的调用就会默认索引所有的文档了。
 
这里需要给大家纠正一下,在相关文档标签里,限制调用栏目的参数为 mytypeid 而不是 typeid,希望大家要注意。
 
二、代码解释
我们增加的实际核心代码为:
 
   if($typeid == '0'){
    $typeid = '';
   }
它的意思是,如果typeid传来的值等于0,那么就将变量$typeid为空。而索引$typeid变量是在下面SQL语句里:
 
Select arc.*,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` arc left join `dede_arctype` tp on arc.typeid=tp.id   
 
where arc.arcrank>-1 and ($keyword)  $typeid $orderquery limit 0, $row  
 
而这里的$typeid变量也是在上一行的 $typeid = " And arc.typeid in($typeid) And arc.id<>$arcid "; 中进行赋值。那么我们将这个$typeid 变量是事先就判断并赋值为空以后,一切的问题就自燃迎刃而解了。

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。


来源:网友投稿 关注: 时间:2019-11-21 08:32
首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制(了解更多)
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品织梦源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站织梦程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ进行交流。
相关织梦教程
QQ在线咨询