DedeCMS调用同级栏目功能及当前文章显示高亮
原创重庆seo2019-05-11阅读(647)php开发
DedeCMS在做某个网站开发的帮助页面时,由于包含的项目很多,可以建立多个子栏目,每个栏目下面的写文章即可。有如下需求:
左右布局,左侧为导航,右侧为该文章内容 如当前文章页时,左侧导航高亮
效果图如下
织梦能嵌套多个标签只有{dede:channelartlist}标签,栏目和栏目、文章和文章之间为同级关系,但该标签并没有调用同级栏目的功能。而且该标签不支持currentstyle,无法直接实现高亮的功能。
channelaritlist支持用reid调用同级栏目
找到
//处理标记属性、innertext
把下面的
$attlist = 'typeid|0,row|20,cacheid|';
修改为
$attlist = 'typeid|0,row|20,cacheid|,type|';//by7
继续找到
//获得类别ID总数的信息 $typeids = array();
把下面的
if($typeid==0 || $typeid=='top') { $tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 "; }
修改为
//调用上级目录下的子栏目内容by7 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 "; } //by7
channelartlist支持currentstyle属性
参考文章《DedeCMS让channelartlist支持currentstyle属性》
最后提供一种前台的写法,有基础的朋友自行修改。
{dede:channelartlist type='reid' currentstyle='current'} <div class="active">{dede:field.typename/}</div> <div class="{dede:field.currentstyle/}"> <ul class="nav"> {dede:arclist row='10' currentstyle="<li class='active'><a href='~typelink~'>~typename~</a></li>"} [field:array runphp='yes'] if(@me['currentstyle']){ @me = @me['currentstyle']; }else{ @me = "<li><a href='{@me['arcurl']}'>{@me['title']}</a></li>"; } [/field:array] {/dede:arclist} </ul> </div> {/dede:channelartlist}
扩展阅读
本文地址:https://www.vi586.com/mip/web/676.html
版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,支持原创,转载请保留出处