最新公告
  • 元旦活动:凡在本站购买过源码超过99元的老用户,可免费领取1张99元优惠券,用于抵扣开通年度/永久会员!立即加入我们
  • 帝国cms 主导航条下拉菜单功能实现,模板功能扩展

    主导航条下拉菜单样式:

    实现步骤

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

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

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

    2、新建标签模板

    页面模板内容(*)

    
    
    1. <li class="[!--class-menu--]"><a href="[!--bclassurl--]">[!--bclassname--]</a>
    2. <ul class="sub">
    3. [!--empirenews.listtemp--]
    4. <!--list.var1-->
    5. [!--empirenews.listtemp--]
    6. </ul>
    7. </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

    相关代码

    
    
    1. //栏目导航标签-循环
    2. function sys_GetShowClassMore($bclassid,$bcr,$tr,$bno,$bnum,$show=0){
    3. global $empire,$class_r,$public_r,$dbtbpre;
    4. //取得模板
    5. $listtemp=$tr[temptext];
    6. $subnews=$tr[subnews];
    7. $listvar=$tr[listvar];
    8. $rownum=$tr[rownum];
    9. $formatdate=$tr[showdate];
    10. if(empty($rownum))
    11. {$rownum=1;}
    12. //替换变量
    13. $listtemp=str_replace("[!--bclassname--]",$bcr[classname],$listtemp);
    14. $bclassurl=sys_ReturnBqClassname($bcr,9);//栏目链接
    15. $listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
    16. $listtemp=str_replace("[!--bclassid--]",$bclassid,$listtemp);
    17. $bclassimg=$bcr[classimg]?$bcr[classimg]:$public_r[newsurl]."e/data/images/notimg.gif";//栏目图片
    18. $listtemp=str_replace("[!--bclassimg--]",$bclassimg,$listtemp);
    19. $listtemp=str_replace("[!--bintro--]",nl2br($bcr[intro]),$listtemp);//栏目简介
    20. $listtemp=str_replace("[!--bno--]",$bno,$listtemp);
    21. $listtemp=str_replace("[!--bnum--]",$bnum,$listtemp);
    22. //列表
    23. $list_exp="[!--empirenews.listtemp--]";
    24. $list_r=explode($list_exp,$listtemp);
    25. $listtext=$list_r[1];
    26. $listtext2=$list_r[1];
    27. if(count($list_r)==5)
    28. {
    29. $listtext=$list_r[2];
    30. $listtext2=$list_r[2];
    31. }
    32. $no=1;
    33. $changerow=1;
    34. $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");
    35. while($r=$empire->fetch($sql))
    36. {
    37. //显示栏目数据数
    38. if($show)
    39. {
    40. $num=ReturnClassInfoNum($r);
    41. }
    42. //替换列表变量
    43. $repvar=ReplaceShowClassVars($no,$listvar,$r,$num,0,$subnews);
    44. $listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext);
    45. $changerow+=1;
    46. //超过行数
    47. if($changerow>$rownum)
    48. {
    49. $changerow=1;
    50. $string.=$listtext;
    51. $listtext=$listtext2;
    52. }
    53. $no++;
    54. }
    55. //多余数据
    56. if($changerow<=$rownum&&$listtext<>$listtext2)
    57. {
    58. $string.=$listtext;
    59. }
    60. if(count($list_r)==5)
    61. {
    62. if($no==1){
    63. $string=$list_r[0].$list_r[4]; // 20190606 由于不包含子栏目,所以这里不加 $string
    64. $string=str_replace("[!--class-menu--]","",$string);
    65. }else{
    66. $string=$list_r[0].$list_r[1].$string.$list_r[3].$list_r[4];
    67. $string=str_replace("[!--class-menu--]","menu",$string);
    68. }
    69. }
    70. else
    71. {
    72. $string=$list_r[0].$string.$list_r[2];
    73. }
    74. echo $string;
    75. }

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

    RIPRO主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
    开发网 » 帝国cms 主导航条下拉菜单功能实现,模板功能扩展

    发表评论

    • 123会员总数(位)
    • 280资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 333稳定运行(天)

    提供最优质的资源集合

    升级SVIP QQ交流群
    升级SVIP尊享更多特权立即升级