织梦dedecms 相关文档标签(likearticle)实现关联整站文档

注意:本教程适用于 DedeCMS V5.7 其他版本楼主未测试

     默认情况下,相关文档(likearticle)的关联,在只能调用当前栏目(包括顶级栏目下的下级栏目)的文档,那么我们如何来实现关联网站的所有文档 呢?

    我们知道,从DedeV5.3版本开始,所有的标签源码都是独立的,我们只需要修改标签源码就可以实现这个功能了。

1)实现方法 打开\include\taglib\likearticle.lib.php文件,找到如下代码:

if(!empty($refObj->Typelink->TypeInfos['reid'])) {
$typeid = $refObj->Typelink->TypeInfos['reid'];
}

将其替换为如下代码:

if($typeid == '0'){
$typeid = '';
}
else if(!empty($refObj->Typelink->TypeInfos['reid'])) {
$typeid = $refObj->Typelink->TypeInfos['reid'];
}

保存后即可。

   通过这样的修改以后,相关文档的调用就会默认索引所有的文档了。

    这里需要给大家纠正一下,在相关文档标签里,限制调用栏目的参数为 mytypeid 而不是 typeid,希望大家要注意。

2)代码解释 我们增加的实际核心代码为:

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 变量是事先就判断并赋值为空以后,一切的问题就自燃迎刃而解了。

转载于:https://blog.51cto.com/14262733/2370568

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值