anroots/menu

此包已被放弃,不再维护。未建议替代包。

Kohana模块,用于帮助构建HTML导航菜单

安装次数: 1,133

依赖项: 0

建议者: 0

安全: 0

星标: 14

关注者: 7

分支: 13

开放问题: 2

类型:kohana-module

3.2 2014-08-13 05:59 UTC

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类型的博客可能有...

  • 公共主导航菜单
  • 公共页脚菜单
  • 当管理员登录时,公共页面的仅管理员菜单
  • 管理员界面的仅管理员菜单

通常,您会使用ulli元素构建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 许可下独立开发的。