- 浏览: 1779804 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (641)
- vb2005xu自己动手系列 (174)
- vb2005xu开发文章转摘 (47)
- vb2005xu发发牢骚 (99)
- vb2005xu新技术灌水 (12)
- vb2005xu网络资源集锦 (21)
- vb2005xu软件学习 (60)
- 英语学习 (3)
- JavaScript 学习 (54)
- JAVA OOP 巩固 之 CustomDatabase 的开发 (5)
- 2013年9月之前所在公司 记事 (7)
- FleaPHP/QEEPHP 资料 (87)
- JAVA MAIL 学习篇 (4)
- Python turbogears (5)
- Rails 个人开发四部曲 (3)
- 名人传 (8)
- iwp framework (5)
- 高考零分作文 (5)
- startos (8)
- lua (0)
- 职场 (1)
最新评论
-
hellotieye:
自己 评论 自己 挺嗨呀
Mysql sql查询时 if 的用法 -
igevin:
转载请标明出处,转自Gevin的博客http://blog.i ...
RESTful API 编写指南 -
Theobob:
...
实现简单的ACL -
vb2005xu:
比如 对于 curl 调用就不再需要 加各种if 判断了,
$ ...
搞一个简单的数据打印工具AsDebug の Laravel -
vb2005xu:
http://geekplux.com/wiki/
YII2 模块内自定义错误页
<?php /** * 管理菜单 * */ class App_Helper_Admin_Menu { const quuid = 'q'; const qargs = 'args'; const qtitle = 'title'; const qtype = 'type'; const qparent = 'parent'; /** * 扩展选项,如 style class 等等 */ const qoptions = 'options'; const qchildren = 'children'; const qactive = 'active'; /** * 顶级菜单标识 */ const qparent_top = '#ROOT#'; /** * 茎节点 */ const qtype_stem = 'stem'; /** * 叶节点 */ const qtype_leaf = 'leaf'; private function __construct(){ $this->init(); } /** * @return App_Helper_Admin_Menu */ static function getInstance(){ static $it = false; if (!$it){ $it = new self(); } return $it; } /** * 返回生成的 菜单 * * @return array */ private function init(){ $qid = Core_AppUtils::get(Core_Mvc_Router::queryAccessor); $active = false; $catalog = $this->aclFilter($this->loadData()); do { $item = Core_AppUtils::val($catalog,$qid,null); if (empty($item)) break; $active = $catalog[$qid][self::qactive] = true; if (self::qparent_top == $item[self::qparent]) break; $qid = $item[self::qparent]; } while(true); // 转成树 $catalog = (array) Core_AppUtils::array_to_tree($catalog,self::quuid,self::qparent,self::qchildren); // 节点过滤,规范 茎叶类型 $catalog = $this->nodeFilter($catalog); $this->activeItems = array(); $this->catalog = $this->locateActiveItem($catalog); } /** * 返回激活的菜单项数组 * * @return array */ function getActiveItems(){ return $this->activeItems; } /** * 返回生成的菜单数据 * * @return array */ function getCatalog(){ return $this->catalog; } /** * 生成菜单项 * * @param string $quuid * @param array $qargs * @param string $qtitle * @param string $qparent * @param string $qtype * @param array $qoptions * * @return array */ static function createItem($quuid ,$qargs ,$qtitle ,$qparent ,$qtype ,$qoptions=null){ $d = array( self::quuid => $quuid, self::qargs => $qargs, self::qtitle => $qtitle, self::qparent => $qparent, self::qtype => $qtype, ); if (!empty($qoptions)) $d[self::qoptions] = (array) $qoptions; return $d; } private function loadData(){ $catalog = (array) Core_Autoloader::loadFile(APPPATH . '/config/adminmenu.php',false); return Core_AppUtils::array_to_hashmap($catalog,self::quuid) ; } private function addActiveItem(array $item){ if (self::qtype_stem == $item[self::qtype]){ unset($item[self::qchildren]); } $this->activeItems[] = $item; } private function locateActiveItem(array $items){ $activeItem = null; foreach ($items as $offset => $item){ if (Core_AppUtils::val($item,self::qactive,false)){ $activeItem = & $items[$offset]; break; } } if (empty($activeItem)) { $activeItem = & $items[0]; $activeItem[self::qactive] = true; } $this->addActiveItem($activeItem); if (self::qtype_stem == $activeItem[self::qtype]){ $activeItem[self::qchildren] = $this->locateActiveItem($activeItem[self::qchildren]); } return $items; } private function nodeFilter(array $items){ if (empty($items)) return $items; $data = array(); foreach ($items as $item){ switch ($item[self::qtype]) { case self::qtype_leaf: unset($item[self::qchildren]); break; case self::qtype_stem: if (empty($item[self::qchildren])){ $item[self::qtype] = self::qtype_leaf; unset($item[self::qchildren]); }else { $item[self::qchildren] = $this->nodeFilter($item[self::qchildren]); } break; default: $item = null; } if (!empty($items)) $data[] = $item; } return $data; } private function aclFilter(array $items){ if (empty($items)) return $items; if (Core_Event::isRegistered(Core_Mvc_EventId::dispatching_aclcheck)){ $data = array(); foreach ($items as $uuid => $item){ if (App_Convention::canAccess($uuid) ){ $data[$uuid] = $item; } } return $data; } return $items; } }
评论
1 楼
vb2005xu
2012-05-07
教育部考试中心成绩查询系统
http://chaxun.neea.edu.cn/examcenter/query.cn?op=doQueryCond&sid=280&pram=results
http://chaxun.neea.edu.cn/examcenter/query.cn?op=doQueryCond&sid=280&pram=results
发表评论
-
ws-http 最简单轻量的PHP CURL工具库
2016-07-29 20:44 2632欢迎大家拍砖 https://github.com/to ... -
Facade 包装类 -- 解决视图里面长长的命名空间调用问题
2016-04-20 10:48 1750有时候模版里面定义 ... -
PHP单例模式面试注意事项
2015-10-20 09:57 1956最近面了不少PHP从业者,有实习生也有5/6年以上的开发者 ... -
NGINX 配置 SSL 证书 搭建 HTTPS 网站
2015-10-19 19:19 2920下面是详细的配置过程: 1、在服务器上使用 Open ... -
关于php cron任务管理的实现假想
2015-10-17 21:25 1903之前每开发一个计划任务功能均需要在线上操作crontab来新 ... -
修改一些PHP工具
2014-10-24 19:27 1804原来的代码 在非框架下是木有问题的,但是用在框架下就报错, ... -
sublime text linux上中文输入问题的终极解决方案
2014-10-13 11:07 8569我一直在使用sublime text ... -
qeephp3.0 发布了
2014-10-07 17:21 1707QeePHP 是一个快速、灵活的开发框架。应用各种成熟的架构 ... -
swiftmailer 的快捷助手 qser-mailer
2014-09-09 23:52 3595近日在对charsen的修改版上进行了再次的修改与调整,对 ... -
PHP 中简单的伪造IP刷票实现
2014-05-15 17:06 2763一般而言,我们的获取用户真实ip的代码大致是这样... / ... -
PHP5.5 htmlspecialchars 返回null的坑
2014-04-25 12:23 2616昨天在写 PDO数据库封装类的 测试代码时遇到这个问题,取 ... -
PHP 5.5 empty + 魔术变量 的坑
2014-04-16 15:53 1606今天在测试代码时遇到这么一个疑问? dump((in ... -
Aert_Log: 设计一个精简易用的日志
2014-04-13 18:28 2485日志记录对于应用的 ... -
创建一个简单的短链服务类
2013-07-01 18:20 1371整理一个简单的短链算法,整理到自己的代码库中: &l ... -
收集常用的PHP简单代码
2013-06-30 17:53 2058对于日常工作中整理出来的某些功能做个简单梳理: 1 ... -
简易PHP路由,支持正反向url解析支持
2013-06-21 22:23 8233几年前实现了一个简单的正向路由,那时候不会写反向路由解析, ... -
系统学习のCACHE 学习
2012-11-21 13:58 1910http://www.phpfans.net/article/ ... -
YY 下 sql查询封装类 不知道好不好使
2012-07-18 16:44 1335<?php class Pkg_Db_Actor { ... -
抽取个sql生成器工具 -- 摘自 fuelphp1.1 版本
2012-04-25 20:17 1232<?php /** * Sql 创造者类 * ... -
关于网站多语言机制的实现的原型demo
2012-04-21 19:12 2004先发个demo ..... 需求 能够在前台下载 语言文件进 ...
相关推荐
4. **菜单渲染**:Element-Plus中的Menu组件可以用来创建可折叠、多级的导航菜单,根据获取的数据动态生成菜单结构。 5. **状态管理**:Vuex可以帮助管理全局状态,包括当前选中的菜单、展开的子菜单等。 6. **...
Magento的后台菜单主要由` Mage_Adminhtml_Block_Menu`类控制,它通过遍历系统配置中的`adminhtml/menu`节点来生成菜单。每个菜单项都是一个XML节点,例如: ```xml <menu> <custommodule module="Custom_Module...
标题 "menu_admin_per_menu" 暗示我们正在讨论一个与后台管理系统中菜单权限分配相关的模块或功能。在IT行业中,特别是在开发企业级应用时,菜单管理是系统管理员进行权限控制的重要部分。它允许管理员根据用户角色...
在`adminmenu`项目中,这些核心组件将起到关键作用,如路由定义后台菜单的访问路径,中间件确保只有授权用户可以访问,Eloquent则可能用于处理菜单项的数据库操作。 **二、Eloquent ORM** Eloquent是Laravel的ORM...
"KIT ADMIN 后台管理前端框架"是一款专为后端开发者设计的高效、便捷的前端解决方案,旨在简化后台管理系统界面的开发工作,让开发者能够快速构建功能完备且用户体验优秀的管理界面。这款框架集成了多种常见功能和...
本项目主要关注的是Ant Design Vue中的菜单(Menu)组件,特别是如何处理后台返回的无限层级菜单数据进行展示。 在实际的Web应用开发中,尤其是那些拥有复杂权限管理和动态路由的系统,后端服务器通常会返回一个...
10. **登录菜单(login_menu.asp)**:这是用户登录系统的入口,可能包括学生、教师和管理员的不同登录选项,根据角色分配不同权限。 综合来看,【学生成绩管理系统】是一个全面的在线平台,旨在提高教育管理效率,...
在这个版本中,我们将会探讨如何实现系统菜单的后端动态加载,使得后台管理系统更加灵活和高效。 动态加载系统菜单是一种常见的需求,尤其是在大型项目中,菜单结构可能随着系统的迭代而频繁变化。通过将菜单数据...
在开发Web应用时,尤其是构建管理后台,...通过这种方式,我们可以根据后台返回的数据动态生成符合用户权限的菜单,提高管理后台的灵活性和用户体验。同时,这也展示了Layui框架在构建可定制化管理界面方面的强大能力。
在WordPress中,添加顶级菜单是自定义主题或插件开发中的常见需求,这使得用户能够更方便地访问和管理特定的功能或设置。...通过这些步骤,你可以根据自己的需求定制出具有丰富功能的后台菜单系统。
在本文中,我们将深入探讨如何使用Axure RP 9结合ElementUI组件库来构建一个功能丰富的Web后台管理系统。ElementUI是基于Vue.js的组件库,提供了丰富的UI元素,适用于快速开发高质量的前端界面。而Axure则是一款强大...
后台基础的setting配置(支持文本、下拉菜单、日期选择、文件等类型)和menu配置,弹窗小部件等 RBAC简单的权限控制,用户选择角色,角色再包含权限,角色、权限不能自我嵌套,否则想不出好的展示方式 restful api相关...
`login_menu.asp`很显然是登录菜单或登录界面的代码,用户可以通过这个页面输入凭证来访问系统。 总的来说,这个学生成绩查询管理系统利用ASP作为前端脚本语言,C#作为后端编程语言,构建了一个安全、高效、分角色...
<li id="left_tab1" title="操作菜单" onClick="javascript:border_left('left_tab1','left_menu_cnt1');">人事</span></li> <div id="left_menu_cnt1" class="left_menu_cnt"> <ul id="dleft_tab1"> ...
基于Vue+iView 动态路由权限菜单/多语言/增删改模版/代码生成/消息推送/日志记录/定时任务/第三方账号、短信登录。项目基于 Vue-Cli 4.x 创建,主要Main组件框架基于iView-admin 1.0版本 修复其部分BUG,UI组件库...
$menu->add('后台管理', [ 'route' => 'voyager.dashboard', 'middleware' => HasRole::class . ':admin', ])->icon('fa-dashboard'); } }); ``` 在视图文件中,我们可以使用`render`方法将菜单渲染成HTML: ...
2、新增CU3ER官网flash 3D焦点图,可以通过后台上传后设定好属性后台生成XML文件,展示不同的风格 3、新增后台后上传设置背景图片, 4、新增后台设置网站背景颜色 5、新增背景判断,背景为空时则显示默认背景,有...
$menu->add('管理后台', '/admin'); } ``` ### 7. 自定义菜单构建器 如果你需要更复杂的逻辑来构建菜单,可以创建自定义的菜单构建器。创建一个新的服务提供者并注册到 Laravel,然后在 `boot` 方法中构建菜单: ...
8. **admin_msmir_menu.asp**:菜单管理页面,用于设置网站的导航菜单,方便用户快速找到所需内容。 9. **softessay.asp**:可能是一个专门发布游戏评测、心得或者攻略的文章页面。 10. **Jz_msmir_Add.asp**:与...
2. **menu.html**:菜单栏,用于导航至后台的不同功能模块。通常会根据用户权限动态生成不同的菜单选项。 3. **header.html**:头部部分,包含网站标志、顶部导航等元素,可以全局引用,保持网站风格一致。 4. **...