帝国cms 主导航条下拉菜单功能实现,模板功能扩展
2019-07-07 00:23:54
帝国CMS
人点赞
主导航条下拉菜单样式:
实现步骤
1、在公共模板变量》页面头部模板中使用以下标签来加载菜单项
[listshowclass]'0',13,0,0[/listshowclass]
13对应的是标签模板
实现步骤
1、在公共模板变量》页面头部模板中使用以下标签来加载菜单项
[listshowclass]'0',13,0,0[/listshowclass]
13对应的是标签模板
主导航条下拉菜单样式:
实现步骤
1、在公共模板变量》页面头部模板中使用以下标签来加载菜单项
[listshowclass]'0',13,0,0[/listshowclass]
13对应的是标签模板》新建的一个模板
2、新建标签模板
页面模板内容(*)
<li class="[!--class-menu--]"><a href="[!--bclassurl--]">[!--bclassname--]</a>
[!--empirenews.listtemp--]
<ul class="sub">
[!--empirenews.listtemp--]
<!--list.var1-->
[!--empirenews.listtemp--]
</ul>
<span></span>
[!--empirenews.listtemp--]
</li>
列表内容模板(list.var) (*)
<li><a href="[!--classurl--]" title="[!--classname--]">[!--classname--]</a></li>
3、模板功能扩展
由于有的功能无法实现,所以需要进行扩展
比如:[!--class-menu--] 这是一个根据有没有子菜单来替换为不同内容的标签;
比如:[!--empirenews.listtemp--] 标签可以出现四次,原本是只能出现两次;
相关文件:EmpireCMS_7.5_SC_UTF8/upload/e/class/t_functions.php
相关代码
//栏目导航标签-循环
function sys_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;
}
注意:如果你想修改系统原来的模板,不是很熟悉的情况最好先做好备份;其实我觉得最好还是新建一个,把它的内容复制过来改,不然的一旦改的次数多了就找不回以前的了。
实现步骤
1、在公共模板变量》页面头部模板中使用以下标签来加载菜单项
[listshowclass]'0',13,0,0[/listshowclass]
13对应的是标签模板》新建的一个模板
2、新建标签模板
页面模板内容(*)
<li class="[!--class-menu--]"><a href="[!--bclassurl--]">[!--bclassname--]</a>
[!--empirenews.listtemp--]
<ul class="sub">
[!--empirenews.listtemp--]
<!--list.var1-->
[!--empirenews.listtemp--]
</ul>
<span></span>
[!--empirenews.listtemp--]
</li>
列表内容模板(list.var) (*)
<li><a href="[!--classurl--]" title="[!--classname--]">[!--classname--]</a></li>
3、模板功能扩展
由于有的功能无法实现,所以需要进行扩展
比如:[!--class-menu--] 这是一个根据有没有子菜单来替换为不同内容的标签;
比如:[!--empirenews.listtemp--] 标签可以出现四次,原本是只能出现两次;
相关文件:EmpireCMS_7.5_SC_UTF8/upload/e/class/t_functions.php
相关代码
//栏目导航标签-循环
function sys_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;
}
注意:如果你想修改系统原来的模板,不是很熟悉的情况最好先做好备份;其实我觉得最好还是新建一个,把它的内容复制过来改,不然的一旦改的次数多了就找不回以前的了。
很赞哦! (
)
相关文章
830*140广告