文档章节

菜单栏的设计与控制

熊猫88
 熊猫88
发布于 2015/12/09 13:03
字数 414
阅读 103
收藏 1

    一般项目都有菜单导航部分,无限级菜单表的主要字段包括:(现在主流菜单的设计都是无限级分类,普通的导航栏分级的时候,只有一个分级对应一个分级)
    id 类别的id设计
    title  栏目标题
    pid   从属id
    sort  排序
    hide  是否隐藏
   项目访问的时候,菜单重组的逻辑包括:
   读取所有pid=0的栏目(放入到网页顶部,导航栏需要显示的地方,根据hide和sort排序进行显示)
   获取当前的栏目(可以根据访问的url参数获取到访问的具体控制器,同时列表出来当前分支的所有子类和同类)
   讲获取到的子栏目放入一个child的数组里面进行储存,注入到视图里面,视图可以进行显示。

   以下是一些代码逻辑:(这里用TP框架逻辑进行示例):
   1.读取某个id的所有子类(主栏目下的子类)
     

   function   getChild($pid) {    
        $res =  D('menu')->where("pid=$pid")->select();
         if(!count($res)) return false;
          return $res;
    }
         function  getAllChild($id) {
           $childArr= getChild($id);
            if($childArr)  {
              foreach($childArr as  $val) {
                          $childArr['child'][]=getAllChild($val['id']);
          }
          return  $childArr;
        }
     }

    2.根据某个id读出其兄弟
      

   function  getBrothers($id) {
            $res = D('menu')->where("id=$id")->find();
        $brothers = D('menu')->where("pid={$res['pid']}"->select();
        return   $brothers;
     }

     3.读取某个栏目的最终目录
        

  function  getParents($id){
                  $res = D('menu')->where("id=$id")->find();
          $parent=D('menu')->where("pid={$res['pid']}")->find();
                  if($parent['id']!=0) {
                $parentId=getParents($parent['id']);
            }  else {
                         $parentId = $parent['id'];
            }
                return  $parentId;
        }


© 著作权归作者所有

熊猫88
粉丝 18
博文 76
码字总数 65366
作品 0
程序员
私信 提问
Chrome 13:史上首个没有地址栏的浏览器

关于地址栏的位置问题,多家浏览器厂商都进行了不同的试验和摸索,如今最常见的三种分别是地址栏置下(Chrome、Firefox等)、地址栏置顶(IE8等)和地址栏置左(IE9)。Google开发人员近日开...

威廉亨利
2011/05/20
5K
30
团队项目(三)(江山代有才人秃队)

上一篇:团队项目(二) 需求&原型改进 改进内容 原先《需求规格说明书》文档描述缺少,现进行补充,完整文档详见下方附录链接。 修订历史 日期 说明 2018-10-17 初版形成 2018-10-26 新增类...

张鸿
2018/10/27
0
0
Android SDK 3.0 预览版发布,界面细节揭晓

在CES上自爆了Android 3.0 Honeycomb界面的Google今天放出预览版SDK,并揭晓了全部新功能细节。 为平板设计的新界面: Android 3.0 Honeycomb专为大屏幕平板重新设计了用户界面,称为hologra...

红薯
2011/01/27
2.6K
3
滑动菜单栏SlidingMenu动画效果的实现

经过上一篇文章的学习,相信大家对开源项目SlidingMenu的用法已经有了一个非常深入的了解,那么这一章博 主就来教大家滑动菜单栏滑动时动画效果的实现。博主这里用了三个不同动画效果的基础示...

程序袁_绪龙
2015/07/18
342
0
省时省力的GUI图形用户界面开发控件工具Prof-UIS

Prof-UIS用于帮助VC程序员们在开发当今最急需的GUI(图形用户界面)工具中节省大量的时间。这使得Prof-UIS成为一个GUI(图形用户界面)开发中的一个非常有用的工具。 常见特征: 其他 实时可变的...

netkongjian
2014/04/24
231
0

没有更多内容

加载失败,请刷新页面

加载更多

面向对象编程

1、类和对象 类是对象的蓝图和模板,而对象是实例;即对象是具体的实例,类是一个抽象的模板 当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定...

huijue
今天
8
0
redis异常解决 :idea启动本地redis出现 jedis.exceptions.JedisDataException: NOAUTH Authentication required

第一次安装在本地redis服务,试试跑项目,结果却出现nested exception is redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required错误,真是让人头疼 先检查一...

青慕
今天
10
0
Spring 之 IoC 源码分析 (基于注解方式)

一、 IoC 理论 IoC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入。 二、IoC方式 Spring为IoC提供了2种方式,一种是基于xml...

星爵22
今天
25
0
Docker安装PostgresSql

Docker安装PostgresSql 拉取docker镜像 # docker pull postgres:10.1010.10: Pulling from library/postgres9fc222b64b0a: Pull complete 38296355136d: Pull complete 2809e135bbdb: Pu......

Tree
今天
8
0
内容垂直居中

方法一: 采用上下 padding 形式,将内容放置在垂直居中 .line { padding: 2% 0; text-align: center; height: 5px;} <div class="line"> 内容垂直居中</div> 方法二: 采......

低至一折起
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部