您当前的位置: 首页 > 

帝国cms 主导航条下拉菜单功能实现,模板功能扩展

发布时间:2019-06-06 16:40:22 ,浏览量:0

主导航条下拉菜单样式:

具体应用请查看我的个人网站:无知人生

实现步骤

1、在公共模板变量》页面头部模板中使用以下标签来加载菜单项

[listshowclass]'0',13,0,0[/listshowclass]

13对应的是标签模板》新建的一个模板

2、新建标签模板

页面模板内容(*)

		
  • [!--bclassname--] [!--empirenews.listtemp--]
      [!--empirenews.listtemp--] [!--empirenews.listtemp--]
    [!--empirenews.listtemp--]
  • 列表内容模板(list.var) (*)

    		
  • [!--classname--]
  •  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("",$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;
    }

    注意:如果你想修改系统原来的模板,不是很熟悉的情况最好先做好备份;其实我觉得最好还是新建一个,把它的内容复制过来改,不然的一旦改的次数多了就找不回以前的了。

    关注
    打赏
    1688896170
    查看更多评论

    暂无认证

    • 0浏览

      0关注

      109966博文

      0收益

    • 0浏览

      0点赞

      0打赏

      0留言

    私信
    关注
    热门博文
    立即登录/注册

    微信扫码登录

    0.0505s