najidev / bootstrap-menu
此包的最新版本(dev-master)没有提供许可信息。
在 \Knp\Menu 和 Twitter Bootstrap 之间的桥梁
dev-master
2013-09-12 09:51 UTC
Requires
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-24 06:43:48 UTC
README
BootstrapMenu 库是 KnpMenu 和 Bootstrap 之间的桥梁。
<?php $factory = new \NajiDev\BootstrapMenu\MenuFactory(); $renderer = new \NajiDev\BootstrapMenu\Renderer(); $root = $factory->createItem('root'); $root->addChild('Home', array('uri' => '/')); $root->addChild('Comments', array('uri' => '#comments')); $root->addChild('Symfony2', array('uri' => 'http://symfony-reloaded.org/')); $submenu = $root->addChild('Submenu'); $submenu->addChild('Child 1'); $submenu->addDivider('divider1'); $child = $submenu->addChild('Child 2'); $child->addChild('x'); echo $renderer->render($root, array('type' => 'tabs'));
上面的菜单应该渲染为
<ul class="nav nav-tabs"> <li class="first"> <a href="/">Home</a> </li> <li> <a href="#comments">Comments</a> </li> <li> <a href="http://symfony-reloaded.org/">Symfony2</a> </li> <li class="active last"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Submenu<span class="caret"></span></a> <ul class="menu_level_1 dropdown-menu"> <li class="active first"> <a>Child 1</a> </li> <li class="divider"></li> <li class="last"> <a>Child 2</a> </li> </ul> </li> </ul>
有几件事要说明
-
菜单本身不知道其图形表示,因此您可以构建大型菜单并仅渲染其中的一部分。
-
在渲染器使用过程中选择图形表示。您可以选择将菜单(选项 'type')渲染为
- 标签页
- 药丸
- 列表(默认)
此外,您还可以选择将选项 'stacked' 设置为 true 或 false(默认)以获得堆叠菜单。
-
渲染器假设您希望用它的下拉菜单来渲染菜单。如果您有更多级别,这将被忽略,因为 Bootstrap 无法显示超过 2 级别的菜单。因此,示例中上面的子 "x" 不会被渲染。
-
MenuItem::addDivider() 是新的,允许添加水平分隔符(对子菜单很有趣)。