IT技术学习网
IT技术学习网
您的位置: 主页 > 编程技术 > php > dedecms >

dede织梦channelartlist在内容页文章页列表页调用

2014-11-22 01:07 来源: IT技术学习网原创 阅读:

dedecms中的channelartlist标签,默认是循环获取当前栏目的所有子栏目,并且可以与dede:arclist嵌套调用子栏目的文章列表

{dede:channelartlist}
<li><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</li>
{dede:arclist titlelen='42' row='10'}  
<li><a href="[field:arcurl /]">[field:title /]</a></li>
{/dede:arclist}

如果我们想在子栏目的文章页或内容页以及子栏目的栏目页调用dede:channelartlist标签,那么我们可以用

{dede:channelartlist typeid='父栏目id'}

来实现。如果不指定typeid,那么,在文章页或内容页以及子栏目的栏目页直接调用channelartlist,结果会是空白,因为当前栏目没有子栏目。

不过这里的父栏目id是一个具体的id常量,无法在所有栏目中通用。

如果要达到让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' }

dede织梦channelartlist在内容页文章页列表页调用
转载需注明出处:IT技术学习网 http://www.itjsxx.com/dedecms/channelartlist_article.html

评论文章 dede织梦channelartlist在内容页文章页列表页调用
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
IT技术学习网 - 关于我们 - 联系我们 - 版权声明 - 网站地图