id4v / menu-bundle
菜单组件,允许您轻松创建和通过 SonataAdminBundle 管理菜单
2.0.4
2015-09-29 12:15 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-11 15:49:22 UTC
README
MenuBundle
Id4vMenuBundle 是一个用于轻松管理菜单的 Symfony2 组件
工作原理
菜单是一棵菜单项树
菜单项是
- 用于显示的标签
- 可选的显示图标
- 点击时跳转的链接
安装
1 使用 composer 安装它
composer require id4v/menu-bundle
2 在您的 AppKernel.php
文件中激活组件
public function registerBundles() { $bundles = array( ... # if you haven't already this bundle new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(), ... new \Id4v\Bundle\MenuBundle\Id4vMenuBundle(), ... ); return $bundles }
3 在您的 config.yml
文件中添加此必需的 StofDoctrineExtensionsBundle
配置
stof_doctrine_extensions: orm: default: sluggable: true
4 在 sonata admin 配置中注册 id4v_menu.admin.menu
服务
5 完成!
用法
####在您网站的 admin 中创建您的菜单。
####通过添加菜单项,拖放它们来组织菜单
####在 twig 模板中渲染菜单
####实现示例
{{ knp_menu_render("app.menu.main", {template: "Id4vMenuBundle:Menu:main.html.twig"}) }}
或
{{ knp_menu_render("app.menu.main", {template: "menu:main.html.twig"}) }}
有关此标签的所有文档可在此处查看: KnpMenuBundle。
已添加一个基本构建器以帮助创建菜单的常见用法,即 BaseMenuBuilder.php
类。
首先,您的构建器的基本声明可以是
namespace AppBundle\Menu; use Knp\Menu\FactoryInterface; use Doctrine\ORM\EntityManager; use Id4v\Bundle\MenuBundle\Builder\BaseMenuBuilder; class AppMenuBuilder extends BaseMenuBuilder { public function __construct(FactoryInterface $factory, EntityManager $em) { parent::__construct($factory, $em); } public function createMainMenu() { return $this->getSimpleMenu('main-menu'); } }
现在您可以声明您自己的服务
services: app.menu_builder: class: AppBundle\Menu\AppMenuBuilder arguments: ["@knp_menu.factory", "@doctrine.orm.entity_manager"] app.menu.main: class: Knp\Menu\MenuItem # the service definition requires setting the class factory: ["@app.menu_builder", createMainMenu] arguments: ["@request_stack"] tags: - { name: knp_menu.menu, alias: app.menu.main }
您可以在 KnpMenuBundle 文档 中查看此声明的文档。
此外,您可以根据需要激活或调整 URI 匹配器。
services: app.voter.regex: class: Id4v\Bundle\MenuBundle\Matcher\Voter\UriVoter arguments: ["@request_stack"] tags: - { name: knp_menu.voter }
Sonata Admin
有时您的菜单中会有一个庞大的树。管理性能可能会受到影响。这就是为什么现有配置与组件一起存在的原因。
默认情况下,您只能拖放两层深度。如果您想更改它,请修改 menu_depth
节点。
默认配置
id4v_menu: admin: menu_depth: 2