【问题标题】:Sylius: how to customize to User-menu in top right bar?Sylius:如何自定义右上角的用户菜单?
【发布时间】:2019-01-17 20:12:03
【问题描述】:

正如官方Docs 中所述,我能够为用户自定义管理仪表板菜单和帐户部分中的菜单。

但是,我如何自定义菜单,显示在右上角的栏中,包括“我的帐户”和“注销”等菜单项?我想在这里添加一些项目。

这就是我的意思:

到目前为止我做了什么:

首先我在 services.yml 中定义了 MenuBuilder-Customization:

app.listener.shop.menu_builder:
    class: AppBundle\Menu\AccountMenuListener
    tags:
        - { name: kernel.event_listener, event: sylius.menu.shop.account, method: addAccountMenuItems }
        - { name: kernel.event_listener, event: sylius.shop.menu_builder.account, method: addTopMenuMenuItems }
        - { name: kernel.event_listener, event: sylius.menu_builder.frontend.main, method: addTopMenuMenuItems }

这是我自定义的 MenuBuilder:

<?php

namespace AppBundle\Menu;

use Knp\Menu\MenuItem;
use Sylius\Bundle\UiBundle\Menu\Event\MenuBuilderEvent;

final class AccountMenuListener
{
    /**
     * @param MenuBuilderEvent $event
     */
    public function addAccountMenuItems(MenuBuilderEvent $event): void
    {
        $menu = $event->getMenu();

        $menu->removeChild('address_book');
        $menu->removeChild('order_history');

        $menu
            ->addChild('new', ['route' => 'sylius_shop_homepage'])
            ->setLabel('My Reservations')
            ->setLabelAttribute('icon', 'star');
    }

    public function addTopMenuMenuItems(MenuBuilderEvent $event): void
    {
        $menu = $event->getMenu();

        // list all items
        foreach($menu->getChildren() as $child) {
            echo $child->getName() . '<br>';
        }
        die;

    }
}

至少对于出现在“我的帐户”部分的侧边菜单,一切正常。但是通过这种方式无法到达右上角的菜单。 “sylius.menu_builder.frontend.main”和“sylius.shop.menu_builder.account”是否会在这里。

如何才能正确完成?

【问题讨论】:

    标签: php symfony4 sylius knpmenubundle


    【解决方案1】:

    有两种方式:

    1) 你应该覆盖这些行:https://github.com/Sylius/Sylius/blob/1.2/src/Sylius/Bundle/ShopBundle/Resources/views/layout.html.twig#L33

    2) 或者您可以在您的自定义树枝模板中覆盖块 top(上面的 1 行),该模板继承了提到的模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      相关资源
      最近更新 更多