anroots / menu
此包已被放弃,不再维护。未建议替代包。
Kohana模块,用于帮助构建HTML导航菜单
3.2
2014-08-13 05:59 UTC
Requires
- php: >=5.4.0
- composer/installers: *
This package is not auto-updated.
Last update: 2022-02-01 12:22:20 UTC
README
简化简单、动态标准化导航菜单的渲染、构建和维护。而不是...
<? if ($user->get_role() === Role::ANONYMOUS):?> <ul> <li><a href="/" <?= $page === 'home' ? 'class="active"' : NULL?>>Home</a></li> <li><a href="/about" <?= $page === 'about' ? 'class="active"' : NULL?>>About</a></li> </ul> <? // elseif (...)?>
...我们这样做
<? return [ 'items' => [ 'url' => 'home', 'title' => 'Home', ], [ 'url' => 'about', 'title' => 'About', ], ];
基础
您在Kohana配置文件中定义菜单(参见 config/menu/navbar.php)。然后,在您的(主)控制器(或模板)中,您构造一个新的Menu对象,设置活动链接,并在模板中渲染它。完成。
示例用例
一个WordPress类型的博客可能有...
- 公共主导航菜单
- 公共页脚菜单
- 当管理员登录时,公共页面的仅管理员菜单
- 管理员界面的仅管理员菜单
通常,您会使用ul
和li
元素构建HTML视图,然后编写一些PHP代码来突出显示活动链接。这很难维护(DRY)并且很麻烦(更不用说难看了)。
相反,在配置文件中描述您的(标准化)菜单,并让Kohana做重活。
安装
将文件放置在您的模块目录中。
作为Git子模块
git clone git://github.com/anroots/kohana-menu.git modules/menu
作为Composer依赖项
{ "require": { "php": ">=5.4.0", "composer/installers": "*", "anroots/menu":"2.*" } }
将MODPATH.menu/config/menu/navbar.php
复制到APPPATH/config/menu/navbar.php
并自定义
在bootstrap.php
中激活模块。
<?php Kohana::modules(array( ... 'menu' => MODPATH.'menu', ));
在您的模板中输出菜单输出
<div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <?=(string)Menu::factory('navbar')?> </div> </div> </div>
您可能会希望在主控制器中实例化菜单,因为这为您提供了在渲染之前与Menu对象交互的方式。
配置文件
您可以通过设置工厂的$config
参数来使用不同的配置文件。
配置文件的view
键设置将用于渲染菜单的视图文件。默认为基于$config
参数的视图文件:/views/templates/menu/$config
,如果该文件不存在,则回退到包含的/views/templates/menu/default
视图文件。例如,请参阅包含的navbar.php
配置文件。
示例:根据用户角色加载菜单配置
$menu = Menu::factory($role); // this could use `config/menu/(user|admin).php`
标记当前菜单项
使用 set_current()
在控制器中标记当前菜单项
$menu->set_current('article/show');
set_current()
的参数是相应项的 URL 值或其(数字)数组键
文档
代码大部分都有注释,更多帮助信息可以在 Wiki 上找到。
许可
Kohana 模块最初是 Bastian Bräu 开发的原始 Kohana Menu 模块的分支,但现在是在 MIT 许可下独立开发的。