From 7eddc66a502bae7c85aab420a92a8dbb1c79ad4e Mon Sep 17 00:00:00 2001 From: "Javi H. Gil" Date: Tue, 24 Mar 2026 11:59:59 +0100 Subject: [PATCH 1/2] Migrate and refactor data import/export --- composer.json | 1 + config/services/data_plugin_services.yaml | 8 ++++++++ config/services/services.yaml | 5 +---- src/Data/EntityTransformer/ArticleEntityTransformer.php | 6 +++--- src/DependencyInjection/SfsCmsBlogExtension.php | 5 +++++ 5 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 config/services/data_plugin_services.yaml diff --git a/composer.json b/composer.json index 4586dbe..e09ab4d 100644 --- a/composer.json +++ b/composer.json @@ -11,6 +11,7 @@ "symfony/translation": "^6.4 || ^7.4 || ^8.0" }, "require-dev": { + "softspring/cms-data-plugin": "^6.0@dev", "ergebnis/composer-normalize": "^2.50", "friendsofphp/php-cs-fixer": "^3.94", "guzzlehttp/guzzle": "^7.8.2", diff --git a/config/services/data_plugin_services.yaml b/config/services/data_plugin_services.yaml new file mode 100644 index 0000000..27c8592 --- /dev/null +++ b/config/services/data_plugin_services.yaml @@ -0,0 +1,8 @@ +services: + _defaults: + autowire: true + autoconfigure: true + public: false + + Softspring\CmsBlogPlugin\Data\: + resource: '../../src/Data/*' diff --git a/config/services/services.yaml b/config/services/services.yaml index a7f9c85..ffdc333 100644 --- a/config/services/services.yaml +++ b/config/services/services.yaml @@ -16,9 +16,6 @@ services: resource: '../../src/Form/*' tags: ['form.type'] - Softspring\CmsBlogPlugin\Data\: - resource: '../../src/Data/*' - Softspring\CmsBlogPlugin\Manager\: resource: '../../src/Manager/*' @@ -26,4 +23,4 @@ services: arguments: $superclassList: '%sfs_cms_blog.convert_superclass_list%' tags: - - { name: doctrine.event_listener, event: loadClassMetadata, priority: 500 } \ No newline at end of file + - { name: doctrine.event_listener, event: loadClassMetadata, priority: 500 } diff --git a/src/Data/EntityTransformer/ArticleEntityTransformer.php b/src/Data/EntityTransformer/ArticleEntityTransformer.php index 5cd7e56..98d97dd 100644 --- a/src/Data/EntityTransformer/ArticleEntityTransformer.php +++ b/src/Data/EntityTransformer/ArticleEntityTransformer.php @@ -4,9 +4,9 @@ use DateTime; use Softspring\CmsBlogPlugin\Model\ArticleContentInterface; -use Softspring\CmsBundle\Data\EntityTransformer\ContentEntityTransformer; -use Softspring\CmsBundle\Data\Exception\InvalidElementException; -use Softspring\CmsBundle\Data\ReferencesRepository; +use Softspring\CmsDataPlugin\Data\EntityTransformer\ContentEntityTransformer; +use Softspring\CmsDataPlugin\Data\Exception\InvalidElementException; +use Softspring\CmsDataPlugin\Data\ReferencesRepository; use Softspring\CmsBundle\Model\ContentInterface; class ArticleEntityTransformer extends ContentEntityTransformer diff --git a/src/DependencyInjection/SfsCmsBlogExtension.php b/src/DependencyInjection/SfsCmsBlogExtension.php index fad1373..4fa20e5 100644 --- a/src/DependencyInjection/SfsCmsBlogExtension.php +++ b/src/DependencyInjection/SfsCmsBlogExtension.php @@ -7,6 +7,7 @@ use Scienta\DoctrineJsonFunctions\Query\AST\Functions\Mysql\JsonSearch; use Softspring\CmsBlogPlugin\Entity\ArticleContent; use Softspring\CmsBlogPlugin\Model\ArticleContentInterface; +use Softspring\CmsDataPlugin\SfsCmsDataPlugin; use Symfony\Component\Config\Definition\Processor; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -31,6 +32,10 @@ public function load(array $configs, ContainerBuilder $container): void // load services $loader->load('services.yaml'); + + if (class_exists(SfsCmsDataPlugin::class)) { + $loader->load('data_plugin_services.yaml'); + } } protected function processDataClasses(ContainerBuilder $container): void From ecefd5af5e3537c649ee3b54ff68d5ac70f7ef18 Mon Sep 17 00:00:00 2001 From: "Javi H. Gil" Date: Tue, 24 Mar 2026 22:10:11 +0100 Subject: [PATCH 2/2] Import/export buttons only present if routes defined --- cms/contents/article/admin/list.html.twig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cms/contents/article/admin/list.html.twig b/cms/contents/article/admin/list.html.twig index 8f655e4..99053af 100644 --- a/cms/contents/article/admin/list.html.twig +++ b/cms/contents/article/admin/list.html.twig @@ -17,8 +17,11 @@ {{ ('admin_'~content_type~'.list.actions.create.link')|trans }} {% endif %} - {% if not content_config.admin.import.is_granted or is_granted(content_config.admin.import.is_granted) %} - {{ ('admin_'~content_type~'.list.actions.import.link')|trans }} + {% if route_defined('sfs_cms_admin_content_'~content_type~'_import') %} + {# TODO make this configurable and extensible for plugins #} + {% if not content_config.admin.import.is_granted or is_granted(content_config.admin.import.is_granted) %} + {{ ('admin_'~content_type~'.list.actions.import.link')|trans }} + {% endif %} {% endif %}