用过织梦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,修改完之后请更新缓存,重新生成,就能看到效果了!