程序员人生 网站导航

稻壳导航标签的添加

栏目:综合技术时间:2014-07-08 21:29:16
这一节相对有些难度,大家要仔细看。学会了这节内容,稻壳CMS就基本掌握了
学会 我们以一个标准的带下拉菜单的导航代码为例,这里不说如何用js或jq制作二级下拉菜单,我们只说如何将做好的导航代码修改替换成读取数据库中频道栏目的代码。 修改前的html导航代码部分如下:

  1. <ul id="menu"> 
  2.    <li><a href="#" id="select">首页</a></li> 
  3.    <li><a href="#">公司简介</a> 
  4.      <ul> 
  5.        <li><a href="#">二级栏目</a></li> 
  6.         <li><a href="#">二级栏目</a></li> 
  7.       <li><a href="#">二级栏目</a></li> 
  8.        <li><a href="#">二级栏目</a></li> 
  9.     </ul> 
  10.    </li> 
  11.   <li><a href="#">一级栏目</a> 
  12.     <ul> 
  13.       <li><a href="#">二级栏目</a></li> 
  14.       <li><a href="#">二级栏目</a></li> 
  15.       <li><a href="#">二级栏目</a></li> 
  16.       <li><a href="#">二级栏目</a></li> 
  17.    </ul> 
  18.   </li> 
  19.    <li><a href="#">一级栏目</a> 
  20.     <ul> 
  21.       <li><a href="#">二级栏目</a></li> 
  22.       <li><a href="#">二级栏目</a></li> 
  23.       <li><a href="#">二级栏目</a></li> 
  24.       <li><a href="#">二级栏目</a></li> 
  25.    </ul> 
  26.  </li> 
  27. </ul> 

这里我们看到,这是一个标准的二级下拉导航,包括一级频道名,二级栏目名,还有选中的样式。

因为首页的链接是固定的,没必要动态添加,所以我们先将首页的链接代码修改一下。

修改前:
 

  1. <li><a href="#" id="select">首页</a></li> 

修改后:
 

  1. <li><a href="<?php echo $tag['path.root']?>/" id="select">首页</a></li> 

接下来动态调用具体频道和栏目,我们在首页的链接代码下面输入主导航调用的标签:

  1. <?php nav_main() //主导航调用的标签?>
该标签只有一个参数,作用是指定此导航标签所调用样式文件 index/__nav/nav_main_style.php 中"style" 的数值,默认不填则为 index/__nav/nav_main_0.php,如果写成<?php nav_main(1) //主导航调用的标签?>,则为 index/__nav/nav_custom_1.php。

我们要把具体频道和二级栏目的链接代码写到index/__nav/nav_main_0.php样式文件中,然后在index.php首页模板中用<?php nav_main() //主导航调用的标签?>来进行调用。

打开index/__nav/nav_main_0.php样式文件,修改其代码,修改后:
  1. <?php  
  2.  
  3. 2.     /*初始化参数
  4. 3.     *  by grysoft (狗头巫师)  
  5. 4.     *  QQ:767912290  
  6. 5.     *  nav_main_custom 调用频道导航的样式标签  
  7. 6.     *  
  8. 7.     *  样式文件存于 index文件夹下 nav_main_custom_style.php 中。  
  9. 8.     *  第一参数:指定所调用样式文件 nav_main_custom_style.php 中style 的数值。  
  10. 9.     *   
  11. 10.  *  如需要显示频道导航,在模板中加入 <?php nav_main_custom()?> 标签即可。  
  12. 11.  *  此标签内置一递增变量 $i ,以方便制作各种样式的菜单, 此变量可在此文件中任意地方调用。;  
  13. 12.  *   
  14. 13.  */ 
  15. 14.  global $subs;  
  16. 15.  $select ='id="select"';  //选中状态的样式,若无选中状态,可不添加。  
  17. 16.  $target ='target="_blank"'//外链则弹出新窗口,如不需要弹出新窗口可清空此变量。  
  18. 17.     
  19. 18.  if($params['id']!=$data['id'])if(sys_menu_info('id',true) != $data['id'])$select = '';  
  20. 19.  $target = $data['isTarget']?$target:'';  
  21. 20.     
  22. 21.  /************** 样式正文 ************/ 
  23. 22.  ?>  
  24. 23.     
  25. 24.  <li> <a href="<?php echo $url?>" <?php echo $target?> <?php echo $select?>><?php echo $data['title'];?></a>  
  26. 25.    <?php   
  27. 26.    /* 
  28. 27.    *  如需要频道导航显示子栏目菜单,将以下标签代码前的注释取消即可。   
  29. 28.    */ 
  30. 29.    if(!emptyempty($subs[$data['id']]))  
  31. 30.    {  
  32. 31.        ?>  
  33. 32.    <ul>  
  34. 33.      <?php nav_sub($data['id'],0,0);?>  
  35. 34.    </ul>  
  36. 35.    <?php   
  37. 36.    }  
  38. 37.    ?>  
  39. 38.  </li> 

注意第15行我们将选中状态修改成了'id="select",这里要根据你的导航代码实际情况来改
<?php echo $url?>表示栏目链接地址
<?php echo $target?>表示链接点击后窗口弹出状态
<?php echo $select?>表示调用上面的'id="select"选中状态
<?php echo $data['title'];?>表示一级频道名

<?php nav_sub($data['id'],0,0);?> 表示调用二级子菜单样式文件nav_sub_0.php(就是和nav_main_0.php同目录的index/__nav/nav_sub_0.php)
这个标签的三个参数分别表示:

$id:指定频道下调用栏目ID;
$style:指定此导行标签所调用样式文件index/__nav/nav_sub_style.php 中"style" 的数值,默认不填则为 index/__nav/nav_sub_0.php;
$expand:是否同时展开子类,默认不填则为展开全部,此参数有三个可选值 0、1、2,参数为0时则关闭所有二级以下子类,只展开二级栏目,参数为1 时则展开所有子类,参数为 2  时则只展开当前栏目的子类。

再打开index/__nav/nav_sub_0.php文件进行修改,修改其代码,修改后:
 

  1. <?php  
  2. 2.     /*初始化参数
  3. 3.     *  by grysoft (狗头巫师)  
  4. 4.     *  QQ:767912290  
  5. 5.     *  nav_sub_custom 调用频道导航 子栏目的样式标签  
  6. 6.     *  样式文件存于 index文件夹下 nav_sub_custom_style.php 中。  
  7. 7.     *   
  8. 8.     *  第一参数:指定频道下栏目调用,不填则默认当前栏目。  
  9. 9.     *  第二参数:指定所调用样式文件 nav_sub_custom_style.php 中style 的数值,默认不填则为 sub_custom_0.php。   
  10. 10.  *  第三参数:是否同时展开子类,默认不填则为展开。  
  11. 11.  *    
  12. 12.  *  此标签内置一递增变量 $i ,以方便制作各种样式的菜单, 此变量可在此文件中任意地方调用。;  
  13. 13.  *   
  14. 14.  */ 
  15. 15.  $select ='class="select"';  //选中状态的样式,若无选中状态,可不添加。  
  16. 16.  $target ='target="_blank"'//外链则弹出新窗口,若不需弹出新窗口可清空此变量。  
  17. 17.  $ico = ispic($data['originalPic'])?'<img src="'.$data['originalPic'].'" />':''//栏目图标,可在后台栏目缩略图处上传  
  18. 18.  $select = $params['id']==$data['id']?$select:'';   
  19. 19.  $target = $data['isTarget']?$target:'';  
  20. 20.  ?>  
  21. 21.     
  22. 22.  <li>   
  23. 23.    <a href="<?=$url?>" <?=$target?>><?=$data['title'];?></a>  
  24. 24.  </li> 

接下来我们将上面导航代码部分多余的代码删除,修改后为:
 

  1. <ul id="menu">  
  2.  <li><a href="<?php echo $tag['path.root']?>/" id="select">首页</a></li>  
  3.  <?php nav_main() //主导航调用的标签?>          
  4. </ul>  

保存index.php模板文件,刷新网站首页,我们看,导航部分就被调用好了。
程序员人生
我们把上面修改好的导航代码复制到common.php页面对应位置,删除首页链接部分的 id="select",commoh.php内页模板的导航也就修改好了。

这里我们谨记几点就可以顺利调用导航代码:

1、首先必须准备好静态html的导航代码且保证二级下拉菜单有效;
2、要保证html是标准的二级下拉代码,方便循环调用和多级调用;
3、将各部分代码分解到nav_main_style.php和nav_sub_style.php中,要保持结构不变;
4、如果是三级或多级下拉,同理操作在nav_sub_style.php继续添加标签调用即可

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐