邹城网站建设

加入收藏| 网站建设费用预算

咨询电话:0537-5256776

点击这里给我发消息
您当前的位置:首页 > 网站建设

使用DEDECMS建网站的时候如何使channelartlist能够调用同级栏目列表

作者:admin   栏目:网站建设   发布时间:2013-05-14

    在使用DEDECMS建网站的时候,使用channelartlist调用栏目列表的时候,只能使用{dede:channelartlist typeid=‘1’ row='5'},这样调用有一个局限性,就是必须指定typeid,但是通常这样达不到我们的要求,我们需要的是自动调用当前栏目的同级栏目,没办法指定typeid,所以我们要对DEDE的标签进行一下二次开发才可以自动调用同级栏目列表。

channelartlist标签对应的物理文件为:\include\taglib\channelartlist.lib.php 文件,我们找到这个文件,打开之后,查找$attlist = 'typeid|0,row|20,cacheid|',把这个修改为:$attlist = 'typeid|0,row|20,cacheid|,type|'
然后再查找
if($typeid==0 || $typeid=='top') {
        $tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
    }
修改为:
if($type=='reid')    //调用上级目录下的子栏目内容
      {        
        $reid = $refObj->TypeLink->TypeInfos['reid'];          
        $tpsql = " reid='$reid' AND ispart<>2 AND ishidden<>1 ";
      }
    else if($typeid==0 || $typeid=='top') {
        $tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
    }
 
保存之后就可以使用以下方法调用当前栏目的同级栏目列表了
{dede:channelartlist type='reid' row='5'}
底层循环代码
{/dede:channelartlist} 
相关文章: