当前位置: 首页 > 经验心得 > DEDECMS 5.6 频道封面和栏目页显示副栏目文章的修改方法

DEDECMS 5.6 频道封面和栏目页显示副栏目文章的修改方法

时间:2011-03-20 17:07   来源:个人网页秀   作者:管理员   点击:

这个方法是根据DEDE5.3版改成的,具体如下:

打开文件/include/taglib/arclist.lib.php,找到第211行左右

或者直接搜索,将代码:


if($CrossID=='') $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).')';
else $orwheres[] = ' arc.typeid 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.')';

 

但是在实际应用后,发现调用flag标志为其它,如“图片、推荐”时被调用出来,原因就是查询语句的where 判断句子没有把 typeid in ($typeid) or typeid2 in ($typeid) 用括弧给括起来。 在后来的使用中还发现上述修改不能实现选择多个副栏目的显示,因此进一步修改为

 

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.",%')";

 


发给好友】 【收藏】 【推荐】 【挑错】 【评论】 【打印】 【关闭
热门图文