From d85a1bcb863facc76d7db1776b4b3bbe92f483e2 Mon Sep 17 00:00:00 2001 From: "Javi H. Gil" Date: Thu, 28 Nov 2024 11:43:09 +0100 Subject: [PATCH] Update menus to support translatable bundle --- config/doctrine-mapping/model/MenuItem.orm.xml | 2 +- src/Form/Admin/Menu/MenuItemType.php | 8 ++++---- src/Model/MenuItem.php | 7 ++++--- src/Model/MenuItemInterface.php | 5 +++-- templates/forms/menus_theme.html.twig | 5 +++-- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/config/doctrine-mapping/model/MenuItem.orm.xml b/config/doctrine-mapping/model/MenuItem.orm.xml index e4e57d89..d753c572 100644 --- a/config/doctrine-mapping/model/MenuItem.orm.xml +++ b/config/doctrine-mapping/model/MenuItem.orm.xml @@ -11,7 +11,7 @@ - + diff --git a/src/Form/Admin/Menu/MenuItemType.php b/src/Form/Admin/Menu/MenuItemType.php index aa3f45c9..0b9748ff 100644 --- a/src/Form/Admin/Menu/MenuItemType.php +++ b/src/Form/Admin/Menu/MenuItemType.php @@ -3,8 +3,8 @@ namespace Softspring\CmsBundle\Form\Admin\Menu; use Doctrine\ORM\EntityManagerInterface; -use Softspring\CmsBundle\Form\Type\SymfonyRouteType; -use Softspring\CmsBundle\Form\Type\TranslatableType; +use Softspring\CmsBundle\Form\Type\LinkType; +use Softspring\CmsBundle\Form\Type\TranslationType; use Softspring\CmsBundle\Manager\MenuItemManagerInterface; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; @@ -33,11 +33,11 @@ public function configureOptions(OptionsResolver $resolver): void public function buildForm(FormBuilderInterface $builder, array $options): void { - $builder->add('text', TranslatableType::class, [ + $builder->add('text', TranslationType::class, [ 'constraints' => new NotBlank(), ]); - $builder->add('symfonyRoute', SymfonyRouteType::class, [ + $builder->add('symfonyRoute', LinkType::class, [ 'required' => false, ]); } diff --git a/src/Model/MenuItem.php b/src/Model/MenuItem.php index bea5c525..0a72b515 100644 --- a/src/Model/MenuItem.php +++ b/src/Model/MenuItem.php @@ -4,6 +4,7 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; +use Softspring\TranslatableBundle\Model\Translation; abstract class MenuItem implements MenuItemInterface { @@ -11,7 +12,7 @@ abstract class MenuItem implements MenuItemInterface protected ?int $type = MenuItemInterface::TYPE_ROUTE; - protected ?array $text = null; + protected array|Translation|null $text = null; protected ?array $options = null; @@ -49,12 +50,12 @@ public function setType(?int $type): void $this->type = $type; } - public function getText(): ?array + public function getText(): array|Translation|null { return $this->text; } - public function setText(?array $text): void + public function setText(array|Translation|null $text): void { $this->text = $text; } diff --git a/src/Model/MenuItemInterface.php b/src/Model/MenuItemInterface.php index 2068b1aa..12c988d7 100644 --- a/src/Model/MenuItemInterface.php +++ b/src/Model/MenuItemInterface.php @@ -3,6 +3,7 @@ namespace Softspring\CmsBundle\Model; use Doctrine\Common\Collections\Collection; +use Softspring\TranslatableBundle\Model\Translation; interface MenuItemInterface { @@ -20,9 +21,9 @@ public function setType(?int $type): void; public function getType(): ?int; - public function setText(?array $text): void; + public function setText(array|Translation|null $text): void; - public function getText(): ?array; + public function getText(): array|Translation|null; public function getSymfonyRoute(): ?array; diff --git a/templates/forms/menus_theme.html.twig b/templates/forms/menus_theme.html.twig index ea8b85ca..d59234da 100644 --- a/templates/forms/menus_theme.html.twig +++ b/templates/forms/menus_theme.html.twig @@ -50,7 +50,7 @@ {% endblock menu_item_collection_widget %} {% block menu_item_row %} -
+
{{ form.vars.name }}
{{ form_widget(form) }}{{ form_errors(form) }}
@@ -67,7 +67,8 @@
{{ form_label(form.text) }}
{{ form_widget(form.text) }}{{ form_errors(form.text) }}
-
{{ form_label(form.symfonyRoute) }}
+{#
{{ form_label(form.symfonyRoute) }}
#} +
{{ form_widget(form.symfonyRoute) }}
{{ form_rest(form) }}
{% endblock menu_item_widget %}