pHp 首页 显示 子栏目 内容,DEDE织梦如何排除子栏目只显示顶级栏目列表内容

timg?image&quality=80&size=b9999_10000&sec=1495103939348&di=b9767a9bc8a74d1851ddef05a9466979&imgtype=0&src=http%3A%2F%2Fwww.7zhenyibao.com%2Fuploads%2Fallimg%2F141022%2F1-1410220T0070-L.png

最近在改版织梦系统做的网站时碰到一个问题,我需要调取A这个顶级栏目下的文章列表,但是并不想让A栏目下1.2.3这几个子栏目的文章也出现在列表上,而使用织梦现成的标签,无论如何都做不到这一点,找了很多方法,最后只能通过修改程序本身的文件来实现这一功能,就是给arclist标签增加notypeid属性,排除相应的栏目ID,实现栏目过滤。好在只需要修改一个文件就可以了,比较简单,这里我就分享一下找到的方法(感谢原作者,不知道原作者是谁- -),亲测可用:

打开/include/taglib/arclist.lib.php文件,找这段代码(大概在129行):

return lib_arclistDone ( $refObj, $ctag, $typeid, $ctag->GetAtt('row'), $ctag->GetAtt('col'), $titlelen, $infolen, $ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'), $listtype, $orderby, $ctag->GetAtt('keyword'), $innertext, $envs['aid'], $ctag->GetAtt('idlist'), $channelid, $ctag->GetAtt('limit'), $flag,$ctag->GetAtt('orderway'), $ctag->GetAtt('subday'), $ctag->GetAtt('noflag'), $tagid,$pagesize,$isweight );

在最后的括号前面也就是$isweight后面加上(注意别忘了逗号)

,$ctag->GetAtt('notypeid')

然后再找到这一段代码(大概在168行):

function lib_arclistDone(&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlelen=30, $infolen=160, $imgwidth=120, $imgheight=90, $listtype='all', $orderby='default', $keyword='', $innertext='', $arcid=0, $idlist='', $channelid=0, $limit='', $att='', $order='desc', $subday=0, $noflag='',$tagid='', $pagesize=0, $isweight='N',$notypeid=0)

在最后的括号前面也就是$notypeid=0后面加上(注意别忘了逗号)

,$notypeid=0

最后再找到这一句:

$orwheres[] = ' arc.arcrank > -1 ';

在其前面增加以下代码:

if(!empty($notypeid)) {

$orwheres[] = " and arc.typeid NOT IN (".GetSonIds($notypeid).")";

}

这样就大功告成了,可以愉快地调取指定的顶级栏目内容,那些子栏目内容再也不会出来捣乱了。在使用arclist标签时,添加notypeid='X'(X代表栏目ID,可以用英文逗号分隔多个栏目ID)就可以排除掉不想显示的子栏目了。当然,在调用整体的多个栏目时也可以排除掉不需要的栏目,并非仅限于子栏目。

使用方法参考:{dede:arclist typeid='99' row='10' notypeid='1,2,3'}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值