网页特效代码_站长素材站移动版

DeDecms教程

主页 > CMS教程 > DeDecms教程 >

织梦dede:arclist标签不能调用文章的副栏目或多个副栏目的解决方法

用过dede的朋友都知道,由于dede后台没有在栏目间复制文档的功能,只有移动文档的功能(类似于剪切),而我需要让多个栏目列表页调用这篇文档,如果每个栏目都添加一遍,那真要累死了。而dede的副栏目解决了这个问题,它既可以让一篇文档被主栏目调用,也能在副栏目调用,甚至能被多个副栏目同时调用。
 
   副栏目是可以设置多个的。
 
   但是,新的问题又产生了。
 
   如果用{dede:list}标签,副栏目能调用这篇文档,但是如果因为某种原因,你不得不在列表页使用{dede:arclist}标签时,副栏目则无法调用文档了。
 
   经过多次分析调试,终于找到了方法
 
   用dreamweaver打开 /include/taglib/arclist.lib.php,代码位于295——296行,原代码如下:
 
if($CrossID=='') $orwheres[] = ' arc.typeid IN('.GetSonIds($typeid).')';
else $orwheres[] = ' arc.typeid IN('.GetSonIds($typeid).','.$CrossID.')';
 
将其替换成如下代码:
 
if($CrossID=='')
$orwheres[] = " (arc.typeid in (".GetSonIds($typeid).") orarc.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.",%')";
 
在网上的很多方法都是只能让一个副栏目能调用文档的,我这个代码可以让多个副栏目都能调用文档,本人已亲自测试,绝对可用。
 
OK,修改完之后请更新缓存,重新生成,就能看到效果了!
(责任编辑:admin)

    468x60