帝国CMS导航两层目录实现方法

帝国CMS两层目录

帝国CMS默认的标签能够非常方面的把目录下的子目录或者是内容列出来,但都是一层的目录结构。如果需要实现如上图所示的两层目录,就需要费点功夫。下面代码跟大家分享。

<dl class=”leftnav”>
[e:loop={‘select bclassid,classid,classname,classpath from [!db.pre!]enewsclass where bclassid=21 and showclass=0 order by myorder’,0,24,0}]
<dt><a href=”<?=$public_r[newsurl]?><?=$bqr[classpath]?>” id=”cid<?=$bqr[classid]?>”><?=$bqr[classname]?></a></dt>
<?php if($GLOBALS[navclassid]==$bqr[classid]){ ?>
<dd id=”eid<?=$bqr[classid]?>”>[ecmsinfo]$bqr[classid],10,32,0,0,2,0[/ecmsinfo]
</dd>
<?php } ?>
[/e:loop]
</dl>

通过帝国的灵动标签结合sql语句,把第一层目录遍历。然后通过全局遍历$GLOBALS[navclassid],判断是否遍历到当前目录。如果到当前目录时,用万能标签,把当前目录下的内容页标题列出来。

另附获取当前目录的上一级目录ID和标题的代码:

<?php
if($class_r[$GLOBALS[navclassid]][bclassid]==0){
$classid=$GLOBALS[‘navclassid’];
$classname=$class_r[$classid][classname];
}else{
$classid=$class_r[$GLOBALS[navclassid]][bclassid];
$classname=$class_r[$classid][classname];
}
echo $classid;
echo $classname
?>

贾定强微信

微信扫一下,或点击链接添加好友