• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    DEDE arclist标签无法调用副栏目文章的解决办法a
    POST TIME:2017-11-13 00:14

    arclist标签无法调用副栏目文章的解决办法

    最近发现DEDECMS/' target='_blank'>dedecms中的文章在选择幅栏目后,

    在其对应的幅栏目列表中可以显示该文章,但在arclist 标签中却无法显示该文章,

    网上找了很多,解决办法都一样,但写法却写错了,导致arclist标签在使用了flag属性时会失效的问题。

    修正后的写法如下。


    打开/include/taglib/arclist.lib.php,我目前用的最新版 5.7 SP1,

    代码约位于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).') OR arc.typeid2 IN ('.GetSonIds($typeid).')) ';
    else $orwheres[] = ' (arc.typeid IN ('.GetSonIds($typeid).','.$CrossID.') OR arc.typeid2 IN ('.GetSonIds($typeid).','.$CrossID.')) ';

    OK,这样就改完了,保存后如果你是生成静态的,请生成相关的。如果是动态的,请更新系统缓存。然后就可以看到效果了。

    ===============================================================================

    以上方法有个缺点arclist 标签就是只能有在显示两处位置

    下面方法经测试可以个 不知道三个以上可以不可以

    用arclist标签调用文章的时候才发现,根本无法调用相关文章。

    下面给出解决办法,希望帮到需要的人。

    找到/include/taglib/arclist.lib.php文件然后打开。然后在大约300行代码的位置。将下面的代码

    if($CrossID=='') $orwheres[] = ' arc.typeid IN ('.GetSonIds($typeid).')';

    else $orwheres[] = ' arc.typeid 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.",%')";

    
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!