帝国CMS实现主导航条下拉菜单功能,模板功能扩展
在帝国CMS(EmpireCMS)中实现主导航条下拉菜单功能,可以通过修改模板文件和添加CSS样式来完成。
主导航条下拉菜单样式:

实现步骤
1、在公共模板变量》页面头部模板中使用以下标签来加载菜单项
[listshowclass]'0',13,0,0[/listshowclass]
13对应的是标签模板》新建的一个模板
2、新建标签模板
页面模板内容(*)
<liclass="[!--class-menu--]"><ahref="[!--bclassurl--]">[!--bclassname--]</a>[!--empirenews.listtemp--]<ulclass="sub">[!--empirenews.listtemp--]<!--list.var1-->[!--empirenews.listtemp--]</ul><span></span>[!--empirenews.listtemp--]</li>
列表内容模板(list.var) (*)
<li><ahref="[!--classurl--]"title="[!--classname--]">[!--classname--]</a></li>
3、模板功能扩展
由于有的功能无法实现,所以需要进行扩展
比如:[!--class-menu--] 这是一个根据有没有子菜单来替换为不同内容的标签;
比如:[!--empirenews.listtemp--] 标签可以出现四次,原本是只能出现两次;
相关文件:EmpireCMS_7.5_SC_UTF8/upload/e/class/t_functions.php
相关代码
//栏目导航标签-循环functionsys_GetShowClassMore($bclassid,$bcr,$tr,$bno,$bnum,$show=0){global$empire,$class_r,$public_r,$dbtbpre;//取得模板$listtemp=$tr[temptext];$subnews=$tr[subnews];$listvar=$tr[listvar];$rownum=$tr[rownum];$formatdate=$tr[showdate];if(empty($rownum)){$rownum=1;}//替换变量$listtemp=str_replace("[!--bclassname--]",$bcr[classname],$listtemp);$bclassurl=sys_ReturnBqClassname($bcr,9);//栏目链接$listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);$listtemp=str_replace("[!--bclassid--]",$bclassid,$listtemp);$bclassimg=$bcr[classimg]?$bcr[classimg]:$public_r[newsurl]."e/data/images/notimg.gif";//栏目图片$listtemp=str_replace("[!--bclassimg--]",$bclassimg,$listtemp);$listtemp=str_replace("[!--bintro--]",nl2br($bcr[intro]),$listtemp);//栏目简介$listtemp=str_replace("[!--bno--]",$bno,$listtemp);$listtemp=str_replace("[!--bnum--]",$bnum,$listtemp);//列表$list_exp="[!--empirenews.listtemp--]";$list_r=explode($list_exp,$listtemp);$listtext=$list_r[1];$listtext2=$list_r[1];if(count($list_r)==5){$listtext=$list_r[2];$listtext2=$list_r[2];}$no=1;$changerow=1;$sql=$empire->query("select classid,classname,islast,sonclass,tbname,intro,classimg,infos from {$dbtbpre}enewsclass where bclassid='$bclassid' and showclass=0 order by myorder,classid");while($r=$empire->fetch($sql)){//显示栏目数据数if($show){$num=ReturnClassInfoNum($r);}//替换列表变量$repvar=ReplaceShowClassVars($no,$listvar,$r,$num,0,$subnews);$listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext);$changerow+=1;//超过行数if($changerow>$rownum){$changerow=1;$string.=$listtext;$listtext=$listtext2;}$no++;}//多余数据if($changerow<=$rownum&&$listtext<>$listtext2){$string.=$listtext;}if(count($list_r)==5){if($no==1){$string=$list_r[0].$list_r[4];// 20190606 由于不包含子栏目,所以这里不加 $string$string=str_replace("[!--class-menu--]","",$string);}else{$string=$list_r[0].$list_r[1].$string.$list_r[3].$list_r[4];$string=str_replace("[!--class-menu--]","menu",$string);}}else{$string=$list_r[0].$string.$list_r[2];}echo$string;}
注意:如果你想修改系统原来的模板,不是很熟悉的情况最好先做好备份;其实我觉得最好还是新建一个,把它的内容复制过来改,不然的一旦改的次数多了就找不回以前的了。
您可能感兴趣的文章
声明:本文来自互联网或用户投稿,该文观点仅代表作者本人,不代表本站立场。文章及其配图仅供学习和交流之用,版权归原作者所有,如有内容侵权或者其他违规问题,请联系本站处理。



