devilcius / admin-menu-bundle
扩展菜单,用于与 Symfony2 和 sonata-admin 一起使用
dev-master
2013-10-03 09:04 UTC
Requires
- php: >=5.3.2
- sonata-project/admin-bundle: >=2.2-dev,<2.3-dev
This package is not auto-updated.
Last update: 2024-09-23 13:52:22 UTC
README
此版本基于 AdminBundle 并扩展了 SonataAdminBundle。它提供了从其他包管理菜单的可能性。
请参阅 如何安装和配置
管理菜单
SonataAdminBundle 主菜单(所有 Admin 页面的顶部)是通过 Admin 对象列表生成的。
此包扩展了菜单,并允许通过服务容器进行修改。
管理员菜单是通过 KnpMenu 库生成的。默认情况下,它检索所有管理员组和标签“管理员”(类似于默认菜单渲染器)。
要修改管理员菜单,只需注册一个监听器
namespace devilcius\TestBundle\EventListener; class MenuListener { public function createMenu($event) { $menu = $event->getMenu(); // create a new group $menu->addChild('Audit', array('translationDomain'=>'MyDomain')); // add a divider to System group $menu['Audit']->addDivider(); // ad a nav header $menu['Audit']->addNavHeader('SubMenu'); // add list child (with a route declared in routing.yml) $menu['Audit']->addChild('List', array('uri' => $this->router->generate('get_audit_list'))); } }
并在你的 services.yml 文件中声明监听器。
services: kernel.listener.admin_menu_listener: class: devilcius\TestBundle\EventListener\MenuListener tags: - { name: kernel.event_listener, event: admin.menu.create, method: createMenu } arguments: [@router]
此包使用自定义的 MenuItem 类 devilcius\AdminMenuBundle\Menu\MenuItem
,该类扩展了 Knp\Menu\MenuItem
。它添加了新的功能(分隔符、导航标题等)
在管理员菜单中使用的控制器必须扩展 AdminMenuController
use devilcius\AdminMenuBundle\Controller\AdminMenuController as Controller; class AuditController extends Controller { [...]