disjfa/menu-bundle

用于 symfony 的菜单组件,也可用于 glynn-admin-symfony

安装次数: 1,181

依赖关系: 1

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放性问题: 0

类型:symfony-bundle

0.4.0 2023-11-07 22:17 UTC

This package is auto-updated.

Last update: 2024-09-09 21:42:57 UTC


README

Check on packagist MIT License

Watch on GitHub Star on GitHub Tweet

它做什么

此组件为项目添加了两个菜单构建器。一个用于网站侧,一个用于管理员。这可以帮助更容易地生成菜单结构。您可以查看 glynn-admin-symfony4 以获得一个简单的示例。它使用 KnpMenuBundle

它具有自己的观点,使用 bootstrap4 模板进行配置

安装

composer req disjfa/menu-bundle

设置

在模板中,您需要添加一个菜单。

{{ knp_menu_render('admin', {'currentClass': 'active', 'ancestorClass': 'active', 'depth':3, 'template': 'admin/menu.html.twig'}) }}

或者

{{ knp_menu_render('site', {'currentClass': 'active', 'ancestorClass': 'active', 'depth':2, 'template': 'admin/menu.html.twig'}) }}

注册一个菜单

然后,在您的代码中,您可以订阅菜单以添加自己的

<?php

namespace App\Menu;

use Disjfa\MenuBundle\Menu\ConfigureSiteMenu;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class MenuListener implements EventSubscriberInterface
{
    public function onMenuConfigure(ConfigureSiteMenu $event)
    {
        $menu = $event->getMenu();

        $menu->addChild('my_route', [
            'route' => 'my_route',
            'label' => 'My route title',
        ])->setExtra('icon', 'fa-home');
    }

    /**
     * @return array
     */
    public static function getSubscribedEvents()
    {
        return [
            ConfigureSiteMenu::class => ['onMenuConfigure', 999]
        ];
    }
}

或者您也可以订阅 ConfigureAdminMenu 事件来为管理员菜单执行相同的操作。

完成

现在我们已经完成了。制作菜单,变得出色!