mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-05 20:57:12 +00:00
Merge 5d5c9332ef into 9b6799e2b8
This commit is contained in:
commit
e83272cf0b
12 changed files with 753 additions and 381 deletions
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
final readonly class AdministrationMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$administration = $menu
|
||||
->addChild('sylius.ui.administration')
|
||||
->setLabel('sylius.ui.administration')
|
||||
->setLabelAttribute('icon', 'tabler:lock')
|
||||
;
|
||||
|
||||
$administration
|
||||
->addChild('roles')
|
||||
->setUri('https://sylius.com/plus/?utm_source=product&utm_medium=placeholder&utm_campaign=rbac-placeholder')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.ui.roles')
|
||||
->setExtra('plus_logo', true)
|
||||
;
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
95
src/Sylius/Bundle/AdminBundle/Menu/CatalogMenuBuilder.php
Normal file
95
src/Sylius/Bundle/AdminBundle/Menu/CatalogMenuBuilder.php
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
final readonly class CatalogMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$catalog = $menu
|
||||
->addChild('catalog')
|
||||
->setLabel('sylius.menu.admin.main.catalog.header')
|
||||
->setLabelAttribute('icon', 'tabler:list-details')
|
||||
->setExtra('always_open', true)
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('taxons', ['route' => 'sylius_admin_taxon_create', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_taxon_create_for_parent'],
|
||||
['route' => 'sylius_admin_taxon_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.taxons')
|
||||
->setLabelAttribute('icon', 'tabler:folder')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('products', ['route' => 'sylius_admin_product_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_create'],
|
||||
['route' => 'sylius_admin_product_create_simple'],
|
||||
['route' => 'sylius_admin_product_update'],
|
||||
['route' => 'sylius_admin_product_show'],
|
||||
['route' => 'sylius_admin_product_variant_index'],
|
||||
['route' => 'sylius_admin_product_variant_create'],
|
||||
['route' => 'sylius_admin_product_variant_update'],
|
||||
['route' => 'sylius_admin_product_variant_generate'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.products')
|
||||
->setLabelAttribute('icon', 'tabler:cube')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('inventory', ['route' => 'sylius_admin_inventory_index'])
|
||||
->setLabel('sylius.menu.admin.main.catalog.inventory')
|
||||
->setLabelAttribute('icon', 'tabler:history')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('attributes', ['route' => 'sylius_admin_product_attribute_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_attribute_create'],
|
||||
['route' => 'sylius_admin_product_attribute_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.attributes')
|
||||
->setLabelAttribute('icon', 'tabler:cube-spark')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('options', ['route' => 'sylius_admin_product_option_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_option_create'],
|
||||
['route' => 'sylius_admin_product_option_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.options')
|
||||
->setLabelAttribute('icon', 'tabler:settings')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('association_types', ['route' => 'sylius_admin_product_association_type_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_association_type_create'],
|
||||
['route' => 'sylius_admin_product_association_type_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.association_types')
|
||||
->setLabelAttribute('icon', 'tabler:subtask')
|
||||
;
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
145
src/Sylius/Bundle/AdminBundle/Menu/ConfigurationMenuBuilder.php
Normal file
145
src/Sylius/Bundle/AdminBundle/Menu/ConfigurationMenuBuilder.php
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
final readonly class ConfigurationMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$configuration = $menu
|
||||
->addChild('configuration')
|
||||
->setLabel('sylius.menu.admin.main.configuration.header')
|
||||
->setLabelAttribute('icon', 'tabler:adjustments')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('channels', ['route' => 'sylius_admin_channel_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_channel_create'],
|
||||
['route' => 'sylius_admin_channel_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.channels')
|
||||
->setLabelAttribute('icon', 'tabler:arrows-shuffle')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('countries', ['route' => 'sylius_admin_country_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_country_create'],
|
||||
['route' => 'sylius_admin_country_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.countries')
|
||||
->setLabelAttribute('icon', 'tabler:flag')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('zones', ['route' => 'sylius_admin_zone_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_zone_create'],
|
||||
['route' => 'sylius_admin_zone_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.zones')
|
||||
->setLabelAttribute('icon', 'tabler:world')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('currencies', ['route' => 'sylius_admin_currency_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_currency_create'],
|
||||
['route' => 'sylius_admin_currency_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.currencies')
|
||||
->setLabelAttribute('icon', 'tabler:currency-dollar')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('exchange_rates', ['route' => 'sylius_admin_exchange_rate_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_exchange_rate_create'],
|
||||
['route' => 'sylius_admin_exchange_rate_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.exchange_rates')
|
||||
->setLabelAttribute('icon', 'tabler:adjustments')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('locales', ['route' => 'sylius_admin_locale_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_locale_create'],
|
||||
['route' => 'sylius_admin_locale_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.locales')
|
||||
->setLabelAttribute('icon', 'tabler:bubble-text')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('payment_methods', ['route' => 'sylius_admin_payment_method_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_payment_method_create'],
|
||||
['route' => 'sylius_admin_payment_method_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.payment_methods')
|
||||
->setLabelAttribute('icon', 'tabler:credit-card-pay')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('shipping_methods', ['route' => 'sylius_admin_shipping_method_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_shipping_method_create'],
|
||||
['route' => 'sylius_admin_shipping_method_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.shipping_methods')
|
||||
->setLabelAttribute('icon', 'tabler:truck')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('shipping_categories', ['route' => 'sylius_admin_shipping_category_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_shipping_category_create'],
|
||||
['route' => 'sylius_admin_shipping_category_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.shipping_categories')
|
||||
->setLabelAttribute('icon', 'tabler:layout-list')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('tax_categories', ['route' => 'sylius_admin_tax_category_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_tax_category_create'],
|
||||
['route' => 'sylius_admin_tax_category_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.tax_categories')
|
||||
->setLabelAttribute('icon', 'tabler:tags')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('tax_rates', ['route' => 'sylius_admin_tax_rate_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_tax_rate_create'],
|
||||
['route' => 'sylius_admin_tax_rate_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.tax_rates')
|
||||
->setLabelAttribute('icon', 'tabler:coins')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('admin_users', ['route' => 'sylius_admin_admin_user_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_admin_user_create'],
|
||||
['route' => 'sylius_admin_admin_user_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.admin_users')
|
||||
->setLabelAttribute('icon', 'tabler:lock')
|
||||
;
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
57
src/Sylius/Bundle/AdminBundle/Menu/CustomersMenuBuilder.php
Normal file
57
src/Sylius/Bundle/AdminBundle/Menu/CustomersMenuBuilder.php
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
final readonly class CustomersMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$customers = $menu
|
||||
->addChild('customers')
|
||||
->setLabel('sylius.menu.admin.main.customers.header')
|
||||
->setLabelAttribute('icon', 'tabler:users')
|
||||
->setExtra('always_open', true)
|
||||
;
|
||||
|
||||
$customers
|
||||
->addChild('customers', ['route' => 'sylius_admin_customer_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_customer_create'],
|
||||
['route' => 'sylius_admin_customer_update'],
|
||||
['route' => 'sylius_admin_customer_show'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.customers.customers')
|
||||
->setLabelAttribute('icon', 'tabler:users')
|
||||
;
|
||||
|
||||
$customers
|
||||
->addChild('groups', ['route' => 'sylius_admin_customer_group_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_customer_group_create'],
|
||||
['route' => 'sylius_admin_customer_group_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.customers.groups')
|
||||
->setLabelAttribute('icon', 'tabler:archive')
|
||||
;
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
37
src/Sylius/Bundle/AdminBundle/Menu/DashboardMenuBuilder.php
Normal file
37
src/Sylius/Bundle/AdminBundle/Menu/DashboardMenuBuilder.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
final readonly class DashboardMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$menu
|
||||
->addChild('dashboard', ['route' => 'sylius_admin_dashboard'])
|
||||
->setLabel('sylius.ui.dashboard')
|
||||
->setLabelAttribute('icon', 'tabler:dashboard')
|
||||
;
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
39
src/Sylius/Bundle/AdminBundle/Menu/EventMenuBuilder.php
Normal file
39
src/Sylius/Bundle/AdminBundle/Menu/EventMenuBuilder.php
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\FactoryInterface;
|
||||
use Knp\Menu\ItemInterface;
|
||||
use Sylius\Bundle\UiBundle\Menu\Event\MenuBuilderEvent;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
use Symfony\Component\Routing\RouterInterface;
|
||||
|
||||
final readonly class EventMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
private FactoryInterface $factory,
|
||||
private EventDispatcherInterface $eventDispatcher,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$this->eventDispatcher->dispatch(new MenuBuilderEvent($this->factory, $menu), MainMenuBuilder::EVENT_NAME);
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
|
|
@ -15,400 +15,40 @@ namespace Sylius\Bundle\AdminBundle\Menu;
|
|||
|
||||
use Knp\Menu\FactoryInterface;
|
||||
use Knp\Menu\ItemInterface;
|
||||
use Sylius\Bundle\UiBundle\Menu\Event\MenuBuilderEvent;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
use Symfony\Component\Routing\RouterInterface;
|
||||
|
||||
final readonly class MainMenuBuilder
|
||||
final readonly class MainMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public const EVENT_NAME = 'sylius.menu.admin.main';
|
||||
|
||||
public function __construct(
|
||||
private FactoryInterface $factory,
|
||||
private EventDispatcherInterface $eventDispatcher,
|
||||
private RouterInterface $router,
|
||||
private ?EventDispatcherInterface $eventDispatcher = null,
|
||||
private ?RouterInterface $router = null,
|
||||
) {
|
||||
if (null !== $this->eventDispatcher) {
|
||||
trigger_deprecation(
|
||||
'sylius/admin-bundle',
|
||||
'2.3',
|
||||
'Passing an instance of "%s" as second argument is deprecated and will be removed in Sylius 3.0.',
|
||||
EventDispatcherInterface::class,
|
||||
);
|
||||
}
|
||||
|
||||
if (null !== $this->router) {
|
||||
trigger_deprecation(
|
||||
'sylius/admin-bundle',
|
||||
'2.3',
|
||||
'Passing an instance of "%s" as third argument is deprecated and will be removed in Sylius 3.0.',
|
||||
RouterInterface::class,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/** @param array<string, mixed> $options */
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->factory->createItem('root');
|
||||
|
||||
$this->addDashboardItem($menu);
|
||||
$this->addCatalogSubMenu($menu);
|
||||
$this->addSalesSubMenu($menu);
|
||||
$this->addCustomersSubMenu($menu);
|
||||
$this->addMarketingSubMenu($menu);
|
||||
$this->addConfigurationSubMenu($menu);
|
||||
$this->addOfficialSupportSubMenu($menu);
|
||||
$this->addAdministrationSubMenu($menu);
|
||||
|
||||
$this->eventDispatcher->dispatch(new MenuBuilderEvent($this->factory, $menu), self::EVENT_NAME);
|
||||
|
||||
return $menu;
|
||||
}
|
||||
|
||||
private function addDashboardItem(ItemInterface $menu): void
|
||||
{
|
||||
$menu
|
||||
->addChild('dashboard')
|
||||
->setLabel('sylius.ui.dashboard')
|
||||
->setLabelAttribute('icon', 'tabler:dashboard')
|
||||
->setUri($this->router->generate('sylius_admin_dashboard'))
|
||||
;
|
||||
}
|
||||
|
||||
private function addCatalogSubMenu(ItemInterface $menu): void
|
||||
{
|
||||
$catalog = $menu
|
||||
->addChild('catalog')
|
||||
->setLabel('sylius.menu.admin.main.catalog.header')
|
||||
->setLabelAttribute('icon', 'tabler:list-details')
|
||||
->setExtra('always_open', true)
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('taxons', ['route' => 'sylius_admin_taxon_create', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_taxon_create_for_parent'],
|
||||
['route' => 'sylius_admin_taxon_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.taxons')
|
||||
->setLabelAttribute('icon', 'tabler:folder')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('products', ['route' => 'sylius_admin_product_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_create'],
|
||||
['route' => 'sylius_admin_product_create_simple'],
|
||||
['route' => 'sylius_admin_product_update'],
|
||||
['route' => 'sylius_admin_product_show'],
|
||||
['route' => 'sylius_admin_product_variant_index'],
|
||||
['route' => 'sylius_admin_product_variant_create'],
|
||||
['route' => 'sylius_admin_product_variant_update'],
|
||||
['route' => 'sylius_admin_product_variant_generate'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.products')
|
||||
->setLabelAttribute('icon', 'tabler:cube')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('inventory', ['route' => 'sylius_admin_inventory_index'])
|
||||
->setLabel('sylius.menu.admin.main.catalog.inventory')
|
||||
->setLabelAttribute('icon', 'tabler:history')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('attributes', ['route' => 'sylius_admin_product_attribute_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_attribute_create'],
|
||||
['route' => 'sylius_admin_product_attribute_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.attributes')
|
||||
->setLabelAttribute('icon', 'tabler:cube-spark')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('options', ['route' => 'sylius_admin_product_option_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_option_create'],
|
||||
['route' => 'sylius_admin_product_option_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.options')
|
||||
->setLabelAttribute('icon', 'tabler:settings')
|
||||
;
|
||||
|
||||
$catalog
|
||||
->addChild('association_types', ['route' => 'sylius_admin_product_association_type_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_association_type_create'],
|
||||
['route' => 'sylius_admin_product_association_type_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.catalog.association_types')
|
||||
->setLabelAttribute('icon', 'tabler:subtask')
|
||||
;
|
||||
}
|
||||
|
||||
private function addCustomersSubMenu(ItemInterface $menu): void
|
||||
{
|
||||
$customers = $menu
|
||||
->addChild('customers')
|
||||
->setLabel('sylius.menu.admin.main.customers.header')
|
||||
->setLabelAttribute('icon', 'tabler:users')
|
||||
->setExtra('always_open', true)
|
||||
;
|
||||
|
||||
$customers
|
||||
->addChild('customers', ['route' => 'sylius_admin_customer_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_customer_create'],
|
||||
['route' => 'sylius_admin_customer_update'],
|
||||
['route' => 'sylius_admin_customer_show'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.customers.customers')
|
||||
->setLabelAttribute('icon', 'tabler:users')
|
||||
;
|
||||
|
||||
$customers
|
||||
->addChild('groups', ['route' => 'sylius_admin_customer_group_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_customer_group_create'],
|
||||
['route' => 'sylius_admin_customer_group_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.customers.groups')
|
||||
->setLabelAttribute('icon', 'tabler:archive')
|
||||
;
|
||||
}
|
||||
|
||||
private function addMarketingSubMenu(ItemInterface $menu): void
|
||||
{
|
||||
$marketing = $menu
|
||||
->addChild('marketing')
|
||||
->setLabel('sylius.menu.admin.main.marketing.header')
|
||||
->setLabelAttribute('icon', 'tabler:percentage')
|
||||
;
|
||||
|
||||
$marketing
|
||||
->addChild('promotions', ['route' => 'sylius_admin_promotion_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_promotion_create'],
|
||||
['route' => 'sylius_admin_promotion_update'],
|
||||
['route' => 'sylius_admin_promotion_coupon_index'],
|
||||
['route' => 'sylius_admin_promotion_coupon_create'],
|
||||
['route' => 'sylius_admin_promotion_coupon_update'],
|
||||
['route' => 'sylius_admin_promotion_coupon_generate'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.marketing.cart_promotions')
|
||||
->setLabelAttribute('icon', 'tabler:shopping-cart-down')
|
||||
;
|
||||
|
||||
$marketing
|
||||
->addChild('catalog_promotions', ['route' => 'sylius_admin_catalog_promotion_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_catalog_promotion_create'],
|
||||
['route' => 'sylius_admin_catalog_promotion_update'],
|
||||
['route' => 'sylius_admin_catalog_promotion_show'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.marketing.catalog_promotions')
|
||||
->setLabelAttribute('icon', 'tabler:bookmark')
|
||||
;
|
||||
|
||||
$marketing
|
||||
->addChild('product_reviews', ['route' => 'sylius_admin_product_review_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_review_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.marketing.product_reviews')
|
||||
->setLabelAttribute('icon', 'tabler:news')
|
||||
;
|
||||
}
|
||||
|
||||
private function addSalesSubMenu(ItemInterface $menu): void
|
||||
{
|
||||
$sales = $menu
|
||||
->addChild('sales')
|
||||
->setLabel('sylius.menu.admin.main.sales.header')
|
||||
->setLabelAttribute('icon', 'tabler:shopping-bag')
|
||||
->setExtra('always_open', true)
|
||||
;
|
||||
|
||||
$sales
|
||||
->addChild('orders', ['route' => 'sylius_admin_order_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_order_update'],
|
||||
['route' => 'sylius_admin_order_show'],
|
||||
['route' => 'sylius_admin_order_history'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.sales.orders')
|
||||
->setLabelAttribute('icon', 'tabler:shopping-cart')
|
||||
;
|
||||
|
||||
$sales
|
||||
->addChild('payments', ['route' => 'sylius_admin_payment_index'])
|
||||
->setLabel('sylius.ui.payments')
|
||||
->setLabelAttribute('icon', 'tabler:credit-card-pay')
|
||||
;
|
||||
|
||||
$sales
|
||||
->addChild('shipments', ['route' => 'sylius_admin_shipment_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_shipment_show'],
|
||||
]]])
|
||||
->setLabel('sylius.ui.shipments')
|
||||
->setLabelAttribute('icon', 'tabler:truck')
|
||||
;
|
||||
}
|
||||
|
||||
private function addConfigurationSubMenu(ItemInterface $menu): void
|
||||
{
|
||||
$configuration = $menu
|
||||
->addChild('configuration')
|
||||
->setLabel('sylius.menu.admin.main.configuration.header')
|
||||
->setLabelAttribute('icon', 'tabler:adjustments')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('channels', ['route' => 'sylius_admin_channel_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_channel_create'],
|
||||
['route' => 'sylius_admin_channel_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.channels')
|
||||
->setLabelAttribute('icon', 'tabler:arrows-shuffle')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('countries', ['route' => 'sylius_admin_country_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_country_create'],
|
||||
['route' => 'sylius_admin_country_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.countries')
|
||||
->setLabelAttribute('icon', 'tabler:flag')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('zones', ['route' => 'sylius_admin_zone_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_zone_create'],
|
||||
['route' => 'sylius_admin_zone_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.zones')
|
||||
->setLabelAttribute('icon', 'tabler:world')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('currencies', ['route' => 'sylius_admin_currency_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_currency_create'],
|
||||
['route' => 'sylius_admin_currency_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.currencies')
|
||||
->setLabelAttribute('icon', 'tabler:currency-dollar')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('exchange_rates', ['route' => 'sylius_admin_exchange_rate_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_exchange_rate_create'],
|
||||
['route' => 'sylius_admin_exchange_rate_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.exchange_rates')
|
||||
->setLabelAttribute('icon', 'tabler:adjustments')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('locales', ['route' => 'sylius_admin_locale_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_locale_create'],
|
||||
['route' => 'sylius_admin_locale_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.locales')
|
||||
->setLabelAttribute('icon', 'tabler:bubble-text')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('payment_methods', ['route' => 'sylius_admin_payment_method_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_payment_method_create'],
|
||||
['route' => 'sylius_admin_payment_method_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.payment_methods')
|
||||
->setLabelAttribute('icon', 'tabler:credit-card-pay')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('shipping_methods', ['route' => 'sylius_admin_shipping_method_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_shipping_method_create'],
|
||||
['route' => 'sylius_admin_shipping_method_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.shipping_methods')
|
||||
->setLabelAttribute('icon', 'tabler:truck')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('shipping_categories', ['route' => 'sylius_admin_shipping_category_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_shipping_category_create'],
|
||||
['route' => 'sylius_admin_shipping_category_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.shipping_categories')
|
||||
->setLabelAttribute('icon', 'tabler:layout-list')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('tax_categories', ['route' => 'sylius_admin_tax_category_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_tax_category_create'],
|
||||
['route' => 'sylius_admin_tax_category_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.tax_categories')
|
||||
->setLabelAttribute('icon', 'tabler:tags')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('tax_rates', ['route' => 'sylius_admin_tax_rate_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_tax_rate_create'],
|
||||
['route' => 'sylius_admin_tax_rate_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.tax_rates')
|
||||
->setLabelAttribute('icon', 'tabler:coins')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('admin_users', ['route' => 'sylius_admin_admin_user_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_admin_user_create'],
|
||||
['route' => 'sylius_admin_admin_user_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.configuration.admin_users')
|
||||
->setLabelAttribute('icon', 'tabler:lock')
|
||||
;
|
||||
}
|
||||
|
||||
private function addOfficialSupportSubMenu(ItemInterface $menu): void
|
||||
{
|
||||
$configuration = $menu
|
||||
->addChild('official_support')
|
||||
->setLabel('sylius.menu.admin.main.official_support.header')
|
||||
->setLabelAttribute('icon', 'tabler:info-circle')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('sylius_plus')
|
||||
->setUri('https://sylius.com/plus/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.sylius_plus')
|
||||
->setLabelAttribute('icon', 'tabler:plus')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('browse_plugins')
|
||||
->setUri('https://store.sylius.com/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.browse_plugins')
|
||||
->setLabelAttribute('icon', 'tabler:plug')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('professional_services')
|
||||
->setUri('https://sylius.com/services/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.professional_services')
|
||||
->setLabelAttribute('icon', 'tabler:settings-2')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('find_a_partner')
|
||||
->setUri('https://sylius.com/find-a-partner/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.find_a_partner')
|
||||
->setLabelAttribute('icon', 'tabler:heart-handshake')
|
||||
;
|
||||
|
||||
$configuration
|
||||
->addChild('sylius_certification')
|
||||
->setUri('https://sylius.com/certification/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.sylius_certification')
|
||||
->setLabelAttribute('icon', 'tabler:certificate')
|
||||
;
|
||||
}
|
||||
|
||||
private function addAdministrationSubMenu(ItemInterface $menu): void
|
||||
{
|
||||
$administration = $menu
|
||||
->addChild('sylius.ui.administration')
|
||||
->setLabel('sylius.ui.administration')
|
||||
->setLabelAttribute('icon', 'tabler:lock')
|
||||
;
|
||||
|
||||
$administration
|
||||
->addChild('roles')
|
||||
->setUri('https://sylius.com/plus/?utm_source=product&utm_medium=placeholder&utm_campaign=rbac-placeholder')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.ui.roles')
|
||||
->setExtra('plus_logo', true)
|
||||
;
|
||||
return $this->factory->createItem('root');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
68
src/Sylius/Bundle/AdminBundle/Menu/MarketingMenuBuilder.php
Normal file
68
src/Sylius/Bundle/AdminBundle/Menu/MarketingMenuBuilder.php
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
final readonly class MarketingMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$marketing = $menu
|
||||
->addChild('marketing')
|
||||
->setLabel('sylius.menu.admin.main.marketing.header')
|
||||
->setLabelAttribute('icon', 'tabler:percentage')
|
||||
;
|
||||
|
||||
$marketing
|
||||
->addChild('promotions', ['route' => 'sylius_admin_promotion_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_promotion_create'],
|
||||
['route' => 'sylius_admin_promotion_update'],
|
||||
['route' => 'sylius_admin_promotion_coupon_index'],
|
||||
['route' => 'sylius_admin_promotion_coupon_create'],
|
||||
['route' => 'sylius_admin_promotion_coupon_update'],
|
||||
['route' => 'sylius_admin_promotion_coupon_generate'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.marketing.cart_promotions')
|
||||
->setLabelAttribute('icon', 'tabler:shopping-cart-down')
|
||||
;
|
||||
|
||||
$marketing
|
||||
->addChild('catalog_promotions', ['route' => 'sylius_admin_catalog_promotion_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_catalog_promotion_create'],
|
||||
['route' => 'sylius_admin_catalog_promotion_update'],
|
||||
['route' => 'sylius_admin_catalog_promotion_show'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.marketing.catalog_promotions')
|
||||
->setLabelAttribute('icon', 'tabler:bookmark')
|
||||
;
|
||||
|
||||
$marketing
|
||||
->addChild('product_reviews', ['route' => 'sylius_admin_product_review_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_product_review_update'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.marketing.product_reviews')
|
||||
->setLabelAttribute('icon', 'tabler:news')
|
||||
;
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
24
src/Sylius/Bundle/AdminBundle/Menu/MenuBuilderInterface.php
Normal file
24
src/Sylius/Bundle/AdminBundle/Menu/MenuBuilderInterface.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
interface MenuBuilderInterface
|
||||
{
|
||||
/**
|
||||
* @param array<string, mixed> $options
|
||||
*/
|
||||
public function createMenu(array $options): ItemInterface;
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
final readonly class OfficialSupportMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$officialSupport = $menu
|
||||
->addChild('official_support')
|
||||
->setLabel('sylius.menu.admin.main.official_support.header')
|
||||
->setLabelAttribute('icon', 'tabler:info-circle')
|
||||
;
|
||||
|
||||
$officialSupport
|
||||
->addChild('sylius_plus')
|
||||
->setUri('https://sylius.com/plus/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.sylius_plus')
|
||||
->setLabelAttribute('icon', 'tabler:plus')
|
||||
;
|
||||
|
||||
$officialSupport
|
||||
->addChild('browse_plugins')
|
||||
->setUri('https://store.sylius.com/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.browse_plugins')
|
||||
->setLabelAttribute('icon', 'tabler:plug')
|
||||
;
|
||||
|
||||
$officialSupport
|
||||
->addChild('professional_services')
|
||||
->setUri('https://sylius.com/services/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.professional_services')
|
||||
->setLabelAttribute('icon', 'tabler:settings-2')
|
||||
;
|
||||
|
||||
$officialSupport
|
||||
->addChild('find_a_partner')
|
||||
->setUri('https://sylius.com/find-a-partner/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.find_a_partner')
|
||||
->setLabelAttribute('icon', 'tabler:heart-handshake')
|
||||
;
|
||||
|
||||
$officialSupport
|
||||
->addChild('sylius_certification')
|
||||
->setUri('https://sylius.com/certification/')
|
||||
->setLinkAttribute('target', '_blank')
|
||||
->setLabel('sylius.menu.admin.main.official_support.sylius_certification')
|
||||
->setLabelAttribute('icon', 'tabler:certificate')
|
||||
;
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
62
src/Sylius/Bundle/AdminBundle/Menu/SalesMenuBuilder.php
Normal file
62
src/Sylius/Bundle/AdminBundle/Menu/SalesMenuBuilder.php
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Sylius package.
|
||||
*
|
||||
* (c) Sylius Sp. z o.o.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Sylius\Bundle\AdminBundle\Menu;
|
||||
|
||||
use Knp\Menu\ItemInterface;
|
||||
|
||||
final readonly class SalesMenuBuilder implements MenuBuilderInterface
|
||||
{
|
||||
public function __construct(
|
||||
private MenuBuilderInterface $menuBuilder,
|
||||
) {
|
||||
}
|
||||
|
||||
public function createMenu(array $options): ItemInterface
|
||||
{
|
||||
$menu = $this->menuBuilder->createMenu($options);
|
||||
|
||||
$sales = $menu
|
||||
->addChild('sales')
|
||||
->setLabel('sylius.menu.admin.main.sales.header')
|
||||
->setLabelAttribute('icon', 'tabler:shopping-bag')
|
||||
->setExtra('always_open', true)
|
||||
;
|
||||
|
||||
$sales
|
||||
->addChild('orders', ['route' => 'sylius_admin_order_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_order_update'],
|
||||
['route' => 'sylius_admin_order_show'],
|
||||
['route' => 'sylius_admin_order_history'],
|
||||
]]])
|
||||
->setLabel('sylius.menu.admin.main.sales.orders')
|
||||
->setLabelAttribute('icon', 'tabler:shopping-cart')
|
||||
;
|
||||
|
||||
$sales
|
||||
->addChild('payments', ['route' => 'sylius_admin_payment_index'])
|
||||
->setLabel('sylius.ui.payments')
|
||||
->setLabelAttribute('icon', 'tabler:credit-card-pay')
|
||||
;
|
||||
|
||||
$sales
|
||||
->addChild('shipments', ['route' => 'sylius_admin_shipment_index', 'extras' => ['routes' => [
|
||||
['route' => 'sylius_admin_shipment_show'],
|
||||
]]])
|
||||
->setLabel('sylius.ui.shipments')
|
||||
->setLabelAttribute('icon', 'tabler:truck')
|
||||
;
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
|
|
@ -13,7 +13,16 @@ declare(strict_types=1);
|
|||
|
||||
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Sylius\Bundle\AdminBundle\Menu\AdministrationMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\CatalogMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\ConfigurationMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\CustomersMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\DashboardMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\EventMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\MainMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\MarketingMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\OfficialSupportMenuBuilder;
|
||||
use Sylius\Bundle\AdminBundle\Menu\SalesMenuBuilder;
|
||||
|
||||
return static function (ContainerConfigurator $container) {
|
||||
$services = $container->services();
|
||||
|
|
@ -27,4 +36,78 @@ return static function (ContainerConfigurator $container) {
|
|||
])
|
||||
->tag('knp_menu.menu_builder', ['method' => 'createMenu', 'alias' => 'sylius_admin.main'])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.dashboard', DashboardMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: 9999)
|
||||
->args([
|
||||
service('.inner'),
|
||||
])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.catalog', CatalogMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: -100)
|
||||
->args([
|
||||
service('.inner'),
|
||||
])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.sales', SalesMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: -200)
|
||||
->args([
|
||||
service('.inner'),
|
||||
])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.customers', CustomersMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: -300)
|
||||
->args([
|
||||
service('.inner'),
|
||||
])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.marketing', MarketingMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: -400)
|
||||
->args([
|
||||
service('.inner'),
|
||||
])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.configuration', ConfigurationMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: -500)
|
||||
->args([
|
||||
service('.inner'),
|
||||
])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.official_support', OfficialSupportMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: -600)
|
||||
->args([
|
||||
service('.inner'),
|
||||
])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.administration', AdministrationMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: -700)
|
||||
->args([
|
||||
service('.inner'),
|
||||
])
|
||||
;
|
||||
|
||||
$services
|
||||
->set('sylius_admin.menu_builder.main.event', EventMenuBuilder::class)
|
||||
->decorate('sylius_admin.menu_builder.main', priority: -9999)
|
||||
->args([
|
||||
service('.inner'),
|
||||
service('knp_menu.factory'),
|
||||
service('event_dispatcher'),
|
||||
])
|
||||
;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue