symedit / menu-bundle
此软件包的最新版本(v0.11)没有提供许可信息。
Symfony2 Bundle,用于管理多个来源的菜单
v0.11
2015-09-23 20:44 UTC
This package is auto-updated.
Last update: 2024-09-24 09:43:44 UTC
README
此扩展包的主要目的是允许多个其他扩展包构建单个菜单。它是通过向DI容器中添加标签,然后运行菜单的根节点通过每个构建器来实现的。
此扩展包还添加了一种在菜单构建后运行菜单扩展的方法,这允许您在菜单渲染之前删除节点。
注册构建器
<service id="symedit_blog.symedit.menu" class="%symedit_blog.symedit.menu.class%"> <tag name="symedit_menu.builder" menu="symedit_admin" priority="16" /> </service>
在标签上需要 menu
。如果有多个具有相同菜单名称的标签,则它们将根据优先级(优先级越高,构建器将首先执行,默认为0)构建。
扩展
安全扩展
您可以将 is_granted
信息添加到菜单项中,如果用户没有这些权限,则它们将被删除
$menu->addChild('Label', array( 'extras' => array( 'is_granted' => 'ROLE_ADMIN' ), ));
删除空下拉菜单
您可以使用 remove_leaf
删除任何没有子菜单的下拉菜单。我们建议先让主菜单构建器运行,创建您其他扩展包可能使用的每个下拉菜单,这样它们就不必先检查是否存在,如果不存在则创建它们。这解决了没有其他构建器使用该下拉菜单的问题
$menu->addChild('Dropdown', array( 'dropdown' => true, // From MopaBootstrapBundle 'extras' => array( 'remove_leaf' => true, ), ));