ecshop简单三部实现导航分类二级菜单
1.在page_header.lbi对应的位置(你想显示导航的位置)插入
(注意下面的"themes/模板名称/util.php"中的"模板名称"改成你模板文件夹的名称)
- <?php
- require_once("themes/模板名称/util.php");
- ?>
- <div class="header-menu">
- <p {if $navigator_list.config.index eq 1} class="cur" {/if}><a href="../index.php">{$lang.home}</a></p>
- <ul>
- <!-- {foreach name=nav_middle_list from=$navigator_list.middle item=nav} -->
- <li onMouseOver="sw_nav(this,1);" onMouseOut="sw_nav(this,0);" {if $nav.active eq 1} class="curs"{/if}>
- <a href="{$nav.url}" {if $nav.opennew eq 1}target="_blank" {/if}>{$nav.name}</a>
- <?php
- $subcates = get_subcate_byurl($GLOBALS['smarty']->_var['nav']['url']);
- if($subcates!=false)
- {
- if(count($subcates)>0)
- {
- echo "<div class='sub_nav'>";
- if($subcates)
- {
- foreach($subcates as $cate)
- {
- echo "<a href='".$cate['url']."' class='level_1'>".$cate['name']."</a>";
- }
- }
- echo "</div><iframe frameborder='0' scrolling='no' class='nomask'></iframe>";
- }
- }
- ?>
- </li>
- <!-- {/foreach} -->
- </ul>
- <script type="text/javascript">
- //初始化主菜单
- function sw_nav(obj,tag)
- {
- var subdivs = obj.getElementsByTagName("DIV");
- var ifs = obj.getElementsByTagName("IFRAME");
- if(subdivs.length>0)
- {
- if(tag==1)
- {
- subdivs[0].style.display = "block";
- ifs[0].style.display = "block";
- }
- else
- {
- subdivs[0].style.display = "none";
- ifs[0].style.display = "none";
- }
- }
- }
- </script>
- </div>
2.在CSS文件中插入
- .header-menu p{ float:left;padding:1px 12px 1px 0;margin-top:-2px;}
- .header-menu ul li{float:left;padding:1px 12px 1px 12px;margin-top:-2px;}
- .header-menu ul li a,.header-menu p a{color: #333;display:block;}
- .header-menu ul li a:hover,.header-menu p a:hover{color:#888;}
- .header-menu ul li.curs{background:#999;}
- .header-menu ul li.curs a{color:#fff;}
- .sub_nav{ background:#999;width:110px; position:absolute; z-index:5003; display:none;margin-left:-12px;}
- .nomask{ background:#fff; width:110px; height:50px; position:absolute; z-index:5002;display:none;margin-left:-12px;}
- .sub_nav a.level_1{ display:block;color:#fff;padding:6px 6px 6px 13px;font:11px Tahoma,Verdana,PMingLiU,Arial;border-bottom:1px dotted #D1D1D1;*border-bottom:1px dotted #D1D1D1 !important;*border-bottom:1px solid #A8A8A8;}
- .sub_nav a.level_1:hover{color:#fff;background:#55B46C;text-decoration:none;}
3.把以下代码编辑成(util.php)解压出来拷贝到模板目录下
- <?php
- /**
- * 通过传入参数的url判断是否为目录分类,从而获取子菜单
- *
- * @param string $url
- */
- function get_subcate_byurl($url)
- {
- $rs = strpos($url,"category");
- if($rs!==false)
- {
- preg_match("/\d+/i",$url,$matches);
- $cid = $matches[0];
- $cat_arr = array();
- $sql = "select * from ".$GLOBALS['ecs']->table('category')." where parent_id=".$cid." and is_show=1";
- $res = $GLOBALS['db']->getAll($sql);
- foreach($res as $idx => $row)
- {
- $cat_arr[$idx]['id'] = $row['cat_id'];
- $cat_arr[$idx]['name'] = $row['cat_name'];
- $cat_arr[$idx]['url'] = build_uri('category', array('cid' => $row['cat_id']), $row['cat_name']);
- $cat_arr[$idx]['children'] = get_clild_list($row['cat_id']);
- }
- return $cat_arr;
- }
- else
- {
- return false;
- }
- }
- function get_clild_list($pid)
- {
- //开始获取子分类
- $sql_sub = "select * from ".$GLOBALS['ecs']->table('category')." where parent_id=".$pid." and is_show=1";
- $subres = $GLOBALS['db']->getAll($sql_sub);
- if($subres)
- {
- foreach ($subres as $sidx => $subrow)
- {
- $children[$sidx]['id']=$subrow['cat_id'];
- $children[$sidx]['name']=$subrow['cat_name'];
- $children[$sidx]['url']=build_uri('category', array('cid' => $subrow['cat_id']), $subrow['cat_name']);
- }
- }
- else
- {
- $children = null;
- }
- return $children;
- }
- ?>
ecshop简单三部实现导航分类二级菜单的更多相关文章
- Bootstrap系列 -- 40. 导航条二级菜单
在导航条中添加二级菜单也非常简单 <div class="navbar navbar-default" role="navigation"> < ...
- dedecms织梦导航栏二级菜单的实现方法
dede导航下拉菜单,一级栏目增加二级下拉菜单 使用dedecms5.6——5.7 将这段代码贴到templets\default\head.htm文件里<!-- //二级子类下拉菜单,考虑 ...
- PHPCMS v9 导航显示二级菜单,显示相邻栏目,内容页显示二级栏目
导航显示二级栏目 <div class="menu">{pc:content action="category" catid="0&quo ...
- 简单仿京东导航下拉菜单 javascript
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...
- 兼容ie7的导航下拉菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 纯CSS实现二级导航下拉菜单--css的简单应用
思想:使用css的display属性控制二级下拉菜单的显示与否.当鼠标移动到一级导航菜单的li标签时,显示二级导航菜单的ul标签.由于实现起来比较简单,所以在这里直接给出了参考代码. 1.纯CSS二级 ...
- 通用方法解决dedecms导航调用二级、三级栏目菜单
博客之前做网站的时候经常会遇到二级菜单.三级菜单.了解dede的人都知道从5.5版本开始都有二级菜单的调用方法了,网上也有不少的教程文章.不过这个调用需要修改dede源码的二级菜单样式.个人感觉不是很 ...
- JS实现的简单横向伸展二级菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- bootstrap学习笔记之为导航条添加标题、二级菜单及状态 http://www.imooc.com/code/3120
为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过" ...
随机推荐
- javascript异步加载的三种解决方案
默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页 ...
- Orchard学习系列-----如何运行的
感慨:当接触到微软这套程序时,代码实在是太好了,好的几乎都读不懂.很久之前就对这个套开源程序特别感兴趣,但读不明白也让人郁闷. 背景(Orchard官网): 可组装系统的CMS系统,OrChard在运 ...
- ps 简介
1. ps 简介ps 命令就是最根本相应情况下也是相当强大地进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态. 进程 是否结束.进程有没有僵死.哪些进程占用了过多地资源等等.总之大部分信 ...
- 当As3遇见Swift(三)
类 As3 Swift中似乎没有包,包路径的概念.因而显得简洁的多. package { public class ShuaiGe { } } Swift类 class ShuaiGe{ } 类的构造 ...
- zabbix监控路由器所有接口信息
zabbix监控路由器所有接口信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1.首先在服务器端安装snmp工具 [root@bogon yinzhengjie]# yum - ...
- 使用Navicat for Oracle新建表空间、用户及权限赋予---来自烂泥
Navicat for Oracle是有关Oracle数据库的客户端工具.通过这个客户端,我们可以图形方式对Oracle数据库进行操作. 说 明我们此次试验的Oracle数据库版本是Oracle 10 ...
- ASP.NET的一般处理程序对图片文件的基本操作
以一个小项目为例: 验证码: public class VerifyCodeHelper { public VerifyCodeHelper() { this.ran = new Random(); ...
- poj 1176 Party Lamps
http://poj.org/problem?id=1176 Party Lamps Time Limit: 1000MS Memory Limit: 10000K Total Submissio ...
- [原创]java WEB学习笔记68:Struts2 学习之路-- 类型转换与复杂属性配合使用
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- firefox中 checkbox属性checked="checked"已有,但复选框却不显示打钩的原因
最近在调试复选框的应用,在ie没有问题,考虑到兼容性,试试了firefox,遇到了问题. 复选框绑定了click事件,点一次选中,再点击取消选中,依次类推.这个功能在ie中没问题,但是在firefox ...