新乡闫锦网络科技有限公司 网站模板下载 网站定制

您现在的位置:主页 > 公司新闻 > 建站教程 > 织梦用channelartlist调用同级栏目的方法

织梦用channelartlist调用同级栏目的方法

  • 文章内容
  • 用户评价
方法/步骤
1、首页在要调用栏目模版页插入channel标签,这里小编修改的是self类型,即代码为:
{dede:channel type='self'}<a href="[field:typeurl/]">[field:typename/]</a>{/dede:channel}
DedeCMS织梦调用同级栏目的其他栏目
2、修改系统函数,依次打开include/taglib下的channel.lib.php文件,大约在第89行,找到else if($type=='self')代码,修改SQL语句里面的条件,小编就加多了一个条件 And id<>'$typeid',意思就是不等于本栏目。
DedeCMS织梦调用同级栏目的其他栏目
3、本地测试直接生成新的栏目页,服务器上测试的用FTP上传最新的栏目模版页和channel.lib.php页面,生成栏目页。最终的效果出来了,就是小编的站点,去眼袋有7个小栏目,在其中一个栏目的时候,如无痕去眼袋,其他栏目就是其他的6个,系统自带的函数是7个小栏目都显示的。
DedeCMS织梦调用同级栏目的其他栏目
DedeCMS织梦调用同级栏目的其他栏目

使用dede时,想在列表页和内容页调用同级栏目的文章,当然可以使用{dede:channelartlist typeid=‘1’ row='5'}的方法,指定栏目id,但是要自动判断当前栏目的同级栏目就没办法了或者需要给每个顶级栏目分配一个模板,这样很麻烦。本文将给一种更简单的办法

       找到\include\taglib\channelartlist.lib.php 文件

查找: $attlist = 'typeid|0,row|20,cacheid|';  

修改为:$attlist = 'typeid|0,row|20,cacheid|,type|';     //这边加个 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}  
就可以方便调用了。

声明:本站所有织梦模板/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系本站删除 网站管理员QQ:3078828304

收缩