monsieurbiz/sylius-menu-plugin

此插件允许您管理菜单。

安装次数: 36,746

依赖项: 1

建议者: 0

安全: 0

星标: 9

关注者: 6

分支: 20

开放问题: 2

类型:sylius-plugin

v1.4.1 2024-09-05 12:44 UTC

README

Banner of Sylius Menu plugin

Sylius 菜单插件

Menu Plugin license Tests Status Recipe Status Security Status

此插件允许您管理您的菜单。

兼容性

安装

如果您想使用我们的食谱,可以通过运行以下命令配置您的 composer.json:

composer config --no-plugins --json extra.symfony.endpoint '["https://api.github.com/repos/monsieurbiz/symfony-recipes/contents/index.json?ref=flex/master","flex://defaults"]'
composer require monsieurbiz/sylius-menu-plugin

将您的 config/bundles.php 文件更改以添加插件的行

<?php

return [
    //..
    MonsieurBiz\SyliusMenuPlugin\MonsieurBizSyliusMenuPlugin::class => ['all' => true],
];

然后在 config/packages/monsieurbiz_sylius_menu_plugin.yaml 中创建配置文件

imports:
    - { resource: "@MonsieurBizSyliusMenuPlugin/Resources/config/config.yaml" }

twig:
    form_themes: ['@MonsieurBizSyliusMenuPlugin/Admin/Browser/Form/_theme.html.twig']

最后在 config/routes/monsieurbiz_sylius_menu_plugin.yaml 中导入路由

monsieurbiz_menu_admin:
    resource: "@MonsieurBizSyliusMenuPlugin/Resources/config/routes/admin.yaml"
    prefix: /%sylius_admin.path_name%

然后运行它

bin/console doctrine:migrations:migrate

自定义菜单

如果您想自定义菜单,例如添加图片,可以通过覆盖 MenuItem 实体来实现(有关在 Sylius 文档中覆盖实体的更多信息,请参阅 覆盖实体)。

添加 URL 提供者

URL 选择器允许您从一组 URL 中选择一个 URL。它为

  • 分类
  • 产品

您可以通过创建一个实现 MonsieurBiz\SyliusMenuPlugin\Provider\UrlProviderInterface 接口的自定义类来添加您自己的自定义提供者。

demo.mov

菜单示例

管理员表单索引

Admin form view

菜单前端视图

前端视图与默认视图完全相同。

自定义前端视图

菜单的外观可能会因显示位置而大不相同,因此您通常需要为菜单项创建自己的宏。一个不错的起点是这里的主菜单模板:src/Resources/views/Layout/Header/_menu.html.twig,其中我们定义了菜单项的宏,并在模板中直接使用它们。

要获取菜单的第一个项目,您可以调用我们的自定义 Twig 函数 menu_first_level('main'),其中 main 是我们想要检索的菜单的代码。

贡献

如果您想,可以打开一个问题或拉取请求!😘
谢谢!