欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > DEDECMS教程 >
DEDECMS教程

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

(元素模板) / 2020-03-31 09:38

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

Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com