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

为了增加网站的用户粘度,留住客户,我们采用各种手法,增加网站的粘度,比如在文档下方添加“相关文章”栏目,我们知道织梦CMS可以通过likearticle标签的调用来实现,但我们发现在使用likearticle标签在实现文档关联时,只能调用当前栏目(包括顶级栏目下的

 为了增加网站的用户粘度,留住客户,我们采用各种手法,增加网站的粘度,比如在文档下方添加“相关文章”栏目,我们知道织梦CMS可以通过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 变量是事先就判断并赋值为空以后,一切的问题就自燃迎刃而解了。

 

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DedeCMS自带Rss功能,在管理后台可以生成出一个Rss地图页面,默认是/data/rssmap.html;这个Html地图文件会告知用户每个栏目的rss订阅地址,这个功能很适合栏目及文章较多的网站,但不太适合文章页不多的小型站点;我偏向于使用统一的Rss地址来输出全站所有文
大家知道织梦CMS的后台可以查询发布文章和评论的IP地址,系统默认的IP地址库却不是现在最流行纯真IP数据库,那么如何将织梦系统的IP地址转换为纯真IP数据库的函数呢?在网上搜索一下,还真的找到实现的方法。
DEDECMS的默认搜索框只可以用DEDECMS自己的搜索引擎进行搜索,而我在别的站上看到可以通过百度、谷歌等外部搜索引擎进行站内搜索,总是感觉外部似乎更专业点,于是我也动手修改了一些代码,终于将织梦CMS的搜索框改一个可以通过外部搜索引擎进行搜索的多功能
一般的网站在发布文章时,会要求填写文章来源或者作者信息。但是有时候我们并不需要,这样我们就可能会留空,或者填写来源网络,作者匿名之类的。 可是,我想了一相,能不能在不填写来源信息的时候,显示指定信息或者不显示来源或者作者呢?
最近用DEDECMS做了个发布信息的网站,需要实现网站会员投稿后,前台能自动更新的功能。先是官方论坛进行查找,只发现有人在问,却没有人回答。没办法,只好自己动手操作,还真是花了不少的功夫。
在开发网站的一项功能时,使用{dede:arclistsg type='image.' imgwidth='143' imgheight='106' }这个标签的语句,或许是因为第一次真正使用DEDECMS,还是遇到2个小问题,经过一番研究,最终很容易地解决了,在这里把解决小技巧告诉大家。