2、用过dede的朋友都知道,由于dede后台没有在栏目间复制文档的功能,只有移动文档的功能(类似于剪切),而我需要让多个栏目列表页都调用这篇 文档,如果每个栏目都添加一遍,那真要累死了。而dede的副栏目解决了这个问题,它既可以让一篇文档被主栏目调用,也能在副栏目调用,甚至能被多个副栏 目同时调用。
副栏目的设置如下图:
解决方法如下:
2.1、找到include/taglib下的arclist.lib.php这个文件打开,然后再找到代码
- if($CrossID=='') $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).') or arc.typeid2 in ('.GetSonIds($typeid).')';
- else $orwheres[] = ' arctypeid in ('.GetSonIds($typeid).','.$CrossID.') or arc.typeid2 in ('.GetSonIds($typeid).','.$CrossID.')';
将上面代码替换成:
- if($CrossID=='') $orwheres[] = ' typeid in ('.GetSonIds($typeid).') or typeid2 in ('.GetSonIds($typeid).')';
- else $orwheres[] = ' typeid in ('.GetSonIds($typeid).','.$CrossID.') or typeid2 in ('.GetSonIds($typeid).','.$CrossID.')';
或者替换成:
- if($CrossID=='')
- $orwheres[] = " (arc.typeid in (".GetSonIds($typeid).") or arc.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.",%')";
在网上也找过多个方案,但是这个方案亲测有用