dedecms
网站系统同一篇文章或图片集发布到多个不同的分类,也就是多个不同的栏目列表里面可以有相同的一篇文章,在很多时候这个功能都很好使的,dede的副栏目它既可以让一篇文档被主栏目调用,也能在副栏目调用,甚至能被多个副栏 目同时调用。 默认情况dede这个功能有问题,我使用的是官方最新版dedecms5.7 sp2,修复方法是打开dedecms跟目录下的文件/include/taglib/arclist.lib.
php,查找以下代码(约274行左右)
if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';
else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';
将上面的代码替换为以下代码:
//if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';
//else $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.')';
if ( $CrossID == '' )//修复副栏目文章在多个栏目下不显示的问题,by 烈火大地~
$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 . ",%')";
这样就可以,更新全站或栏目
html文档,看看效果。