九、xadmin菜单分组管理

有的时候,我们的菜单很多很杂,想要把菜单进行分组管理,如下

要实现上面这个功能,分为以下几步:

1、 我们需要定义一个变量用来确定当前app属于哪个组,所以在每个app所属的apps.py中加一个变量 menu_name = "分组名" 如下:

2、我们知道,xadmin中CommAdminView是用户已经登录后显示的View,也是所有登陆后View的基础类。

该View主要作用是创建了Xadmin的通用元素,例如:系统菜单,用户信息等。插件可以通过注册该View来修改这些信息。

所以我们在get_nav_menu方法中,加入我们自定义的变量 menu_cate 用于在html中分组使用。

3、修改html

查看CommAdminView源码,我们还可以看到,它的基础模板是base_site.html, 同时还指明menu_template = ‘xadmin/includes/sitemenu_default.html‘

在base_site.html中,有个div是用来承载左侧菜单栏的:

它里面引用了menu_template,所以我们直接重写sitemenu_default.html即可,下面先写了三个div容器,分别用于承载三个分组,里面的内容由它的继承者 sitemenu_accordion.html来加入。

然后在sitemenu_default.html的继承者sitemenu_accordion.html中分别编写我们自己定义的block: navbar_md、navbar_md_forum 和 navbar_md_wechat

下面以navbar_md为例,代码如下:

循环所有的菜单,如果当前菜单的menu_cate和我们分组的名称相等,即归为一个组,其他组亦然。

原文地址:https://www.cnblogs.com/fiona-zhong/p/9647986.html

时间: 2024-11-10 21:40:56

九、xadmin菜单分组管理的相关文章

C#开发微信门户及应用(6)--微信门户菜单的管理操作

前面几篇继续了我自己对于C#开发微信门户及应用的技术探索和相关的经验总结,继续探索微信API并分享相关的技术,一方面是为了和大家对这方面进行互动沟通,另一方面也是专心做好微信应用的底层技术开发,把基础模块夯实,在未来的应用中派上用途.本随笔继续介绍微信门户菜单的管理操作. 1.菜单的基础信息 微信门户的菜单,一般服务号和订阅号都可以拥有这个模块的开发,但是订阅号好像需要认证后才能拥有,而服务号则不需要认证就可以拥有了.这个菜单可以有编辑模式和开发模式,编辑模式主要就是在微信门户的平台上,对菜单进

分享某个项目组的项目分组管理制度

制定一些项目组的内部管理制度,是作为项目管理者经常需要做的事情.对于一些有丰富项目管理从业经验的人,制定项目管理制度,可以所说是一件顺手拈来的事情.但是,对于一些项目管理新手来说,就是一件苦差事了.不好好了解公司规章制度,不去向来前辈们好好取经,是很难做好的.下面就是一个来自网上的某个项目组的项目分组管理制度,该项目是一个软件实施项目.小编觉得能够借来参考一下,也许能够为您制定项目分组管理制度提供不少思路. 1.分组管理制度 (1)跟进实施组任务:项目启动前,与各应用部门沟通,检查上线准备情况,

Eclipse项目分组管理

对于eclipse相信对于一个java开发人员,一定不陌生.eclipse可以通过工作空间(Workspace)将不同的项目进行分开管理,相信这一点大家一定很熟悉,用过idea的小伙伴,一定发现了,idea没有像eclipse那样通过工作空间进行项目分组管理,所以对于刚开始使用是有一些不太适应.说到这这里,大家是不是感觉今天的内容就介绍完了,下面我们开始进入今天的正题,对于使用eclipse进行maven开发的小伙伴,一定对繁多的继承.聚合在展示头疼不已,那与没有办法进行分模块显示呢?答案是肯定

Oracle学习(九):创建和管理表

1.知识点:可以对照下面的录屏进行阅读 SQL> --创建表 SQL> create table test1 2 (tid number, 3 tname varchar2(20), 4 hidatedate date default sysdate); SQL> --使用as和子查询快速建表 SQL> --创建表:包含员工号 姓名 月薪 年薪 部门名称 SQL> create table empincome 2 as 3 select empno,ename,sal,sal

Linux内核设计基础(九)之进程管理和调度

在Linux中进程用结构体task_struct来管理一个进程所需的所有信息(所以一般较大,在32位机上,大约有1.7KB).为了提高效率,Linux使用了一些卓越的技术. 通过slab分配task_struct结构 Linux创建进程迅速,正是因为slab分配器预先分配和重复使用task_struct,这样就避免了动态分配和释放所带来的资源消耗(毕竟一个task_struct较大,而且内核中进程的创建和消除很频繁). 将task_struct放置在内核栈的尾端 这样做是为了让那些像x86那样寄

RDIFramework.NET ━ 9.6 模块(菜单)管理 ━ Web部分

RDIFramework.NET ━ .NET快速信息化系统开发框架 9.6  模块(菜单)管理 -Web部分  模块(菜单)管理是整个框架的核心,主要面向系统管理人员与开发人员,对普通用户建议不要授予访问此模块的权限,以免不必要的错误影响整个框架的运行.在框架中看到的各个功能模块都是在这儿进行配置的,配置信息保存在数据库中.模块(菜单)管理主要完成对整个框架各功能模块的添加.修改.删除,模块的移动.合并,模块启用.停用,设置模块是否为公共模块,分配角色.用户的模块访问权限,设置模块的可见性等,

运维工具Ansible—主机分组管理(hosts)

ansible主机分组管理: ansible配置 说明:关于ansible hosts文件中可用参数: ansible_ssh_port=22                  #远程主机登陆端口 ansible_ssh_user=root                #远程主机登陆用户名 ansible_ssh_pass=chekir              #远程主机登陆用户名的密码 ansible_ssh_private_key_file=/etc/ansible/hosts   #指

基于吉日嘎底层架构的Web端权限管理操作演示-菜单模块管理

按照顺序,这一篇介绍菜单模块管理,主要演示如下操作: 新增.修改.锁定.解锁.删除.撤销删除 排序 角色成员管理 用户成员管理 导出菜单模块数据 也许你会问,你在这自吹自擂,你这个BS的权限管理有啥缺点不?其中一个美中不足之处:没有批量增加权限Action(或者叫Operation)的地方,下一个版本会加上. 演示视频如下: 优酷视频地址,手机无法播放的点击这里:http://v.youku.com/v_show/id_XMTc0MzMxODk1Mg==.html 下一篇会继续讲解组织机构管理

java—不同的用户登录以后可以看到不同的菜单(后台可以实现对用户菜单的管理) 1 (55)

实现不同的用户登录以后可以看到不同的菜单.(后台可以实现对用户菜单的管理.) 第一步:分析数据结构        1:用户表 表名:users 列名 类型 说明 id Varchar(32) 主键 name Varchar(30)         2:菜单表 第二步:写入表中几行数据进行基本分析 insert into users values('U001','Jack','1234'); insert into users values('U002','张三','4321'); insert