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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值