diff --git a/src/new/composer.json b/src/new/composer.json index 0fb0d4faa..2537d9c55 100755 --- a/src/new/composer.json +++ b/src/new/composer.json @@ -29,6 +29,7 @@ "doctrine/doctrine-bundle": "2.7.*", "doctrine/mongodb-odm-bundle": "^4", "doctrine/orm": "^2.7", + "dunglas/doctrine-json-odm": "^1.4", "gabrielbull/ups-api": "dev-master", "gregwar/captcha-bundle": "^2.2", "guzzlehttp/guzzle": "^6", diff --git a/src/new/composer.lock b/src/new/composer.lock index 9d4df81d2..e5e523b61 100755 --- a/src/new/composer.lock +++ b/src/new/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3d55fa7eafce4cc315d4e02dd640ec78", + "content-hash": "da8eba6c1fa5f895ee29628551ab79ce", "packages": [ { "name": "azuyalabs/yasumi", @@ -2339,6 +2339,90 @@ }, "time": "2025-01-24T11:45:48+00:00" }, + { + "name": "dunglas/doctrine-json-odm", + "version": "v1.4.2", + "source": { + "type": "git", + "url": "https://github.com/dunglas/doctrine-json-odm.git", + "reference": "c76280318ffb60aecceaf7f178298727c3dc35a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dunglas/doctrine-json-odm/zipball/c76280318ffb60aecceaf7f178298727c3dc35a5", + "reference": "c76280318ffb60aecceaf7f178298727c3dc35a5", + "shasum": "" + }, + "require": { + "doctrine/orm": "^2.6.3 || ^3.0.0", + "php": ">=8.1", + "symfony/property-access": "^5.4 || ^6.0 || ^7.0", + "symfony/property-info": "^5.4 || ^6.0 || ^7.0", + "symfony/serializer": "^5.4 || ^6.0 || ^7.0" + }, + "require-dev": { + "doctrine/annotations": "^1.0 || ^2.0.0", + "doctrine/dbal": "^2.7 || ^3.3 || ^4.0.0", + "doctrine/doctrine-bundle": "^1.12.13 || ^2.2", + "symfony/finder": "^5.4 || ^6.0 || ^7.0", + "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^6.0 || ^7.0", + "symfony/uid": "^5.4 || ^6.0 || ^7.0", + "symfony/validator": "^5.4 || ^6.0 || ^7.0" + }, + "suggest": { + "scienta/doctrine-json-functions": "To add support for JSON functions in DQL.", + "symfony/framework-bundle": "To use the provided bundle." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dunglas\\DoctrineJsonOdm\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "kevin@dunglas.fr", + "homepage": "https://dunglas.fr" + } + ], + "description": "An object document mapper for Doctrine ORM using JSON types of modern RDBMS.", + "homepage": "https://dunglas.fr", + "keywords": [ + "database", + "json", + "mysql", + "odm", + "orm", + "postgresql", + "rdbms" + ], + "support": { + "issues": "https://github.com/dunglas/doctrine-json-odm/issues", + "source": "https://github.com/dunglas/doctrine-json-odm/tree/v1.4.2" + }, + "funding": [ + { + "url": "https://github.com/dunglas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/dunglas/doctrine-json-odm", + "type": "tidelift" + } + ], + "time": "2024-11-26T13:57:21+00:00" + }, { "name": "egulias/email-validator", "version": "4.0.3", diff --git a/src/new/src/PSC/Shop/NewsBundle/Controller/Backend/EditController.php b/src/new/src/PSC/Shop/NewsBundle/Controller/Backend/EditController.php index 8a3b15b3b..b36212784 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Controller/Backend/EditController.php +++ b/src/new/src/PSC/Shop/NewsBundle/Controller/Backend/EditController.php @@ -118,6 +118,7 @@ class EditController extends AbstractController /** @var News $news */ $news = $entityManager ->getRepository('PSC\Shop\NewsBundle\Entity\News')->findOneBy(array('uid' => $uid, 'shop' => $selectedShop)); + dump($news); $form = $this->createForm(NewsType::class, $news); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { diff --git a/src/new/src/PSC/Shop/NewsBundle/Entity/News.php b/src/new/src/PSC/Shop/NewsBundle/Entity/News.php index 4fb2c2858..a72888e7b 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Entity/News.php +++ b/src/new/src/PSC/Shop/NewsBundle/Entity/News.php @@ -87,6 +87,7 @@ class News #[ORM\Column(name: 'to_date', type: 'datetime')] protected ?\DateTime $toDate; + #[ORM\Column(name: 'media', type: 'json')] public $media = []; /** * enable diff --git a/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig b/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig index 5628af257..34a4ce8fd 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig +++ b/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig @@ -20,120 +20,11 @@ {% block body %}
- {{ form_start(form, {attr: {class: ''}}) }} -
- -
-
-
- {{ 'General'|trans }} -
- - -
-
- {{ form_row(form.title) }} -
-
- {{ form_row(form.url) }} -
-
-
-
- {{ form_widget(form.enable)}} -
-
- {{ form_row(form.sortDate)}} -
-
- {{ form_row(form.language)}} -
-
-
-
- {{ form_row(form.fromDate)}} -
-
- {{ form_row(form.toDate)}} -
-
-
- {{ form_row(form.introduction)}} -
-
- - - {% for customGroup in customGroups %} -
- {% for customField in customFields %} - {% if customField.group == customGroup.id and customField.getTemplate %} - {{ include(customField.getTemplate, {form: form}) }} - {% endif %} - {% endfor %} -
- {% endfor %} -
-
-
- {{ form_widget(form.save, {attr: {class: 'psc-button-save'}}) }} -
- {{ form_end(form) }} + {{ component('NewsForm', { + form: form, + news: news, + customGroups: customGroups + }) }}

diff --git a/src/new/src/PSC/Shop/NewsBundle/Resources/views/components/NewsForm.html.twig b/src/new/src/PSC/Shop/NewsBundle/Resources/views/components/NewsForm.html.twig new file mode 100644 index 000000000..4aa1da9c0 --- /dev/null +++ b/src/new/src/PSC/Shop/NewsBundle/Resources/views/components/NewsForm.html.twig @@ -0,0 +1,118 @@ +
+ {{ form_start(form, {attr: {class: ''}}) }} +
+
+
+ + + + + + + {{ 'General'|trans }} + + + + + + {{ 'Text'|trans }} + + + + {{ 'Media'|trans }} + {% if customGroups is defined %} + {% for customGroup in customGroups %} + + + + + {{ customGroup.title }} + {% endfor %} + {% endif %} +
+
+
+
+ {{ 'General'|trans }} +
+ + +
+
+ {{ form_row(form.title) }} +
+
+ {{ form_row(form.url) }} +
+
+
+
+ {{ form_widget(form.enable)}} +
+
+ {{ form_row(form.sortDate)}} +
+
+ {{ form_row(form.language)}} +
+
+
+
+ {{ form_row(form.fromDate)}} +
+
+ {{ form_row(form.toDate)}} +
+
+
+ {{ form_row(form.introduction)}} +
+
+ + + {% if customGroups is defined %} + {% for customGroup in customGroups %} +
+ {% for customField in customFields %} + {% if customField.group == customGroup.id and customField.getTemplate %} + {{ include(customField.getTemplate, {form: form}) }} + {% endif %} + {% endfor %} +
+ {% endfor %} + {% endif %} +
+
+
+ {{ form_widget(form.save, {attr: {class: 'psc-button-save'}}) }} +
+ {{ form_end(form) }} +
diff --git a/src/new/src/PSC/Shop/NewsBundle/Twig/NewsForm.php b/src/new/src/PSC/Shop/NewsBundle/Twig/NewsForm.php new file mode 100644 index 000000000..518fe05b7 --- /dev/null +++ b/src/new/src/PSC/Shop/NewsBundle/Twig/NewsForm.php @@ -0,0 +1,32 @@ +createForm( + NewsType::class, + $this->news + ); + } +} diff --git a/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250313154423.php b/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250313154423.php index 257788215..b65d19d19 100644 --- a/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250313154423.php +++ b/src/new/src/PSC/System/UpdateBundle/Migrations/Version20250313154423.php @@ -8,5 +8,6 @@ class Version20250313154423 extends Base { $this->entityManager->getConnection()->exec("ALTER TABLE news ADD from_date datetime NULL DEFAULT null"); $this->entityManager->getConnection()->exec("ALTER TABLE news ADD to_date datetime NULL DEFAULT null"); + $this->entityManager->getConnection()->exec("ALTER TABLE news ADD media json NULL DEFAULT null"); } } diff --git a/src/new/symfony.lock b/src/new/symfony.lock index a65ecc906..1ac49b8c5 100755 --- a/src/new/symfony.lock +++ b/src/new/symfony.lock @@ -97,6 +97,15 @@ "doctrine/sql-formatter": { "version": "1.2.x-dev" }, + "dunglas/doctrine-json-odm": { + "version": "1.4", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "0.1", + "ref": "c2ab78f625df0c89af5908d50a28602ff8c4919f" + } + }, "egulias/email-validator": { "version": "2.1.18" },