From 062a23995a08c5c625086f70be7beb855f8c2a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20R?= Date: Thu, 2 May 2019 14:57:40 +0200 Subject: [PATCH 1/7] [Feature] Be able to init legacy settings for testing use --- INSTALL.md | 4 +- bundle/Command/LegacyInitCommand.php | 93 ++++++++++++++++--- .../init_ini/override/ezoe.ini.append.php | 9 ++ .../init_ini/override/site.ini.append.php | 90 ++++++++++++++++++ .../legacy_admin/content.ini.append.php | 7 ++ .../contentstructuremenu.ini.append.php | 8 ++ .../legacy_admin/dashboard.ini.append.php | 9 ++ .../legacy_admin/ezoe.ini.append.php | 5 + .../legacy_admin/ezxml.ini.append.php | 5 + .../legacy_admin/icon.ini.append.php | 6 ++ .../legacy_admin/override.ini.append.php | 38 ++++++++ .../legacy_admin/site.ini.append.php | 33 +++++++ .../legacy_admin/toolbar.ini.append.php | 26 ++++++ .../init_ini/siteaccess/site/site.ini | 9 ++ 14 files changed, 325 insertions(+), 17 deletions(-) create mode 100644 bundle/Resources/init_ini/override/ezoe.ini.append.php create mode 100644 bundle/Resources/init_ini/override/site.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/content.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/contentstructuremenu.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/dashboard.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/ezoe.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/ezxml.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/icon.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/override.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/site.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/legacy_admin/toolbar.ini.append.php create mode 100644 bundle/Resources/init_ini/siteaccess/site/site.ini diff --git a/INSTALL.md b/INSTALL.md index b00cc963..c67f0bf6 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -35,13 +35,13 @@ _TIP:_ The Legacy Backoffice requires the `legacy_mode` option to be enabled. -This can be done in app/config/config.yml or app/config/ezplatform.yml, where `site_admin` is the name of the admin +This can be done in `app/config/config.yml` or `app/config/ezplatform.yml`, where `legacy_admin` is the name of the admin siteaccess: ``` ez_publish_legacy: system: - site_admin: + legacy_admin: legacy_mode: true ``` diff --git a/bundle/Command/LegacyInitCommand.php b/bundle/Command/LegacyInitCommand.php index d76f1186..43fa1d65 100644 --- a/bundle/Command/LegacyInitCommand.php +++ b/bundle/Command/LegacyInitCommand.php @@ -10,6 +10,7 @@ use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\ConsoleOutputInterface; @@ -24,6 +25,7 @@ protected function configure() new InputArgument('src', InputArgument::OPTIONAL, 'The src directory for legacy files', 'src/legacy_files'), ] ) + ->addOption('ini', null, InputOption::VALUE_NONE, 'Inits basic INI settings for scenarios where adding legacy bridge to platform (mainly for testing use)') ->setDescription('Inits Platform installation for legacy usage') ->setHelp( <<updateComposeJson($output); $this->enableBundles($output); $this->enableRoutes($output); + $this->generateINI($input, $output); $output->writeln(<<<'EOT' -All steps completed! +All steps completed! You can now check changes done and start to move over any legacy files (see above). One done you can run the following command to setup symlinks, dump assets, (...): - composer symfony-scripts +- git add src/legacy_files + EOT ); } @@ -222,28 +227,86 @@ protected function enableBundles(OutputInterface $output) protected function enableRoutes(OutputInterface $output) { - $errOutput = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output; - if (!$text = file_get_contents('app/config/routing.yml')) { + if (!$this->appendConditionally( + 'app/config/routing.yml', + 'resource: @EzPublishLegacyBundle/Resources/config/routing.yml', + <<<'EOT' + +# NOTE: ALWAYS keep this at the end of your routing rules so native symfony routes have precedence +# To avoid legacy REST pattern overriding possible eZ Platform REST routes and so on. +_ezpublishLegacyRoutes: + resource: '@EzPublishLegacyBundle/Resources/config/routing.yml' + +EOT + )) { + $errOutput = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output; $errOutput->writeln('Error: Unable to load app/config/routing.yml'); + } + } + protected function generateINI(InputInterface $input, OutputInterface $output) + { + if (!$input->getOption('ini')) { return; } - $changed = false; - if (stripos($text, 'resource: @EzPublishLegacyBundle/Resources/config/routing.yml') === false) { - // Add routes to the end of routes file - $text .= <<<'EOT' + /** + * @var \Symfony\Component\Filesystem\Filesystem + */ + $filesystem = $this->getContainer()->get('filesystem'); + $srcArg = rtrim($input->getArgument('src'), '/'); + $filesystem->mirror( + __DIR__ . '/../Resources/init_ini', + "$srcArg/settings" + ); -# NOTE: ALWAYS keep this at the end of your routing rules so native symfony routes have precedence -# To avoid legacy REST pattern overriding possible eZ Platform REST routes and so on. -_ezpublishLegacyRoutes: - resource: '@EzPublishLegacyBundle/Resources/config/routing.yml' -EOT; - $changed = true; + if (!$this->appendConditionally( + 'app/config/ezplatform.yml', + 'legacy_mode: true', + <<<'EOT' + +# To use legacy_admin, make sure it's also present in siteaccess.list & siteaccess.groups.site_group above +ez_publish_legacy: + system: + legacy_admin: + legacy_mode: true +# Example of setting view and module layout settings +# site: +# templating: +# view_layout: "@ezdesign/view_pagelayout.html.twig" +# module_layout: "@ezdesign/module_pagelayout.html.twig" + +EOT + )) { + $errOutput = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output; + $errOutput->writeln('Error: Unable to load app/config/ezplatform.yml'); } - if ($changed) { - file_put_contents('app/config/routing.yml', $text); + $output->writeln('To use legacy_admin, add it to siteaccess.list and siteaccess.groups.site_group in `ezplatform.yml` '); + + } + + /** + * Append $config to $file if ot does not have $contains. + * + * @param string $file + * @param string $contains + * @param string $config + * + * @return bool False if file was not found + */ + private function appendConditionally($file, $contains, $config) + { + if (!$text = file_get_contents($file)) { + return false; + } + + // Unless file already contains $test, append $config to the file content + if (stripos($text, $contains) === false) { + $text .= $config; + file_put_contents($file, $text); } + + return true; } } diff --git a/bundle/Resources/init_ini/override/ezoe.ini.append.php b/bundle/Resources/init_ini/override/ezoe.ini.append.php new file mode 100644 index 00000000..8c2b38bf --- /dev/null +++ b/bundle/Resources/init_ini/override/ezoe.ini.append.php @@ -0,0 +1,9 @@ + diff --git a/bundle/Resources/init_ini/override/site.ini.append.php b/bundle/Resources/init_ini/override/site.ini.append.php new file mode 100644 index 00000000..72fb5f6b --- /dev/null +++ b/bundle/Resources/init_ini/override/site.ini.append.php @@ -0,0 +1,90 @@ + diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/content.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/content.ini.append.php new file mode 100644 index 00000000..39b9269f --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/content.ini.append.php @@ -0,0 +1,7 @@ + diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/contentstructuremenu.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/contentstructuremenu.ini.append.php new file mode 100644 index 00000000..0638864a --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/contentstructuremenu.ini.append.php @@ -0,0 +1,8 @@ + diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/dashboard.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/dashboard.ini.append.php new file mode 100644 index 00000000..19fb7ab0 --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/dashboard.ini.append.php @@ -0,0 +1,9 @@ + diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/ezoe.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/ezoe.ini.append.php new file mode 100644 index 00000000..e75ca676 --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/ezoe.ini.append.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/ezxml.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/ezxml.ini.append.php new file mode 100644 index 00000000..d105dad9 --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/ezxml.ini.append.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/icon.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/icon.ini.append.php new file mode 100644 index 00000000..678583bf --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/icon.ini.append.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/override.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/override.ini.append.php new file mode 100644 index 00000000..8b6be35b --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/override.ini.append.php @@ -0,0 +1,38 @@ + diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/site.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/site.ini.append.php new file mode 100644 index 00000000..d36b9530 --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/site.ini.append.php @@ -0,0 +1,33 @@ + diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/toolbar.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/toolbar.ini.append.php new file mode 100644 index 00000000..fe43ce1d --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/toolbar.ini.append.php @@ -0,0 +1,26 @@ + diff --git a/bundle/Resources/init_ini/siteaccess/site/site.ini b/bundle/Resources/init_ini/siteaccess/site/site.ini new file mode 100644 index 00000000..244eb8bf --- /dev/null +++ b/bundle/Resources/init_ini/siteaccess/site/site.ini @@ -0,0 +1,9 @@ +[DesignSettings] +SiteDesign=myproject +AdditionalSiteDesignList[] +#AdditionalSiteDesignList[]=ezdemo +#AdditionalSiteDesignList[]=ezflow +AdditionalSiteDesignList[]=base + +#[ExtensionSettings] +#ActiveAccessExtensions[]=myproject From 7c92069c593b966a12d2f435c088f74111478ab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20R?= Date: Thu, 2 May 2019 20:14:38 +0200 Subject: [PATCH 2/7] Fix bug in init, create AppBundle/ezpublish_legacy in right folder --- bundle/Command/LegacyInitCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundle/Command/LegacyInitCommand.php b/bundle/Command/LegacyInitCommand.php index 43fa1d65..0f60e2cd 100644 --- a/bundle/Command/LegacyInitCommand.php +++ b/bundle/Command/LegacyInitCommand.php @@ -80,9 +80,9 @@ protected function createDirectories(InputInterface $input, OutputInterface $out $filesystem = $this->getContainer()->get('filesystem'); $filesystem->mkdir([ + "src/AppBundle/ezpublish_legacy", $srcArg, "$srcArg/design", - "$srcArg/AppBundle/ezpublish_legacy", "$srcArg/settings", "$srcArg/settings/override", "$srcArg/settings/siteaccess", From b61f895f96a8cc43cfa2f72decd2d43d89ef0eca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20R?= Date: Fri, 3 May 2019 08:21:17 +0200 Subject: [PATCH 3/7] CS --- bundle/Command/LegacyInitCommand.php | 2 +- .../init_ini/siteaccess/legacy_admin/ezoe.ini.append.php | 2 +- .../init_ini/siteaccess/legacy_admin/ezxml.ini.append.php | 2 +- .../init_ini/siteaccess/legacy_admin/icon.ini.append.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bundle/Command/LegacyInitCommand.php b/bundle/Command/LegacyInitCommand.php index 0f60e2cd..da0b5aec 100644 --- a/bundle/Command/LegacyInitCommand.php +++ b/bundle/Command/LegacyInitCommand.php @@ -287,7 +287,7 @@ protected function generateINI(InputInterface $input, OutputInterface $output) } /** - * Append $config to $file if ot does not have $contains. + * Append $config to $file if it does not have $contains. * * @param string $file * @param string $contains diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/ezoe.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/ezoe.ini.append.php index e75ca676..5de56ee2 100644 --- a/bundle/Resources/init_ini/siteaccess/legacy_admin/ezoe.ini.append.php +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/ezoe.ini.append.php @@ -2,4 +2,4 @@ [EditorSettings] SkinVariant=silver -*/ ?> \ No newline at end of file +*/ ?> diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/ezxml.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/ezxml.ini.append.php index d105dad9..f92c1b2c 100644 --- a/bundle/Resources/init_ini/siteaccess/legacy_admin/ezxml.ini.append.php +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/ezxml.ini.append.php @@ -2,4 +2,4 @@ [TagSettings] TagPresets[mini]=Simple formatting -*/ ?> \ No newline at end of file +*/ ?> diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/icon.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/icon.ini.append.php index 678583bf..2e1bbe75 100644 --- a/bundle/Resources/init_ini/siteaccess/legacy_admin/icon.ini.append.php +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/icon.ini.append.php @@ -3,4 +3,4 @@ [IconSettings] Theme=crystal-admin Size=normal -*/ ?> \ No newline at end of file +*/ ?> From 9feec4d14eb272f7ee1073a140f7962d3b8816db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20R?= Date: Fri, 3 May 2019 08:26:51 +0200 Subject: [PATCH 4/7] Smaller fixes --- bundle/Command/LegacyInitCommand.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bundle/Command/LegacyInitCommand.php b/bundle/Command/LegacyInitCommand.php index da0b5aec..c57e6a95 100644 --- a/bundle/Command/LegacyInitCommand.php +++ b/bundle/Command/LegacyInitCommand.php @@ -25,7 +25,7 @@ protected function configure() new InputArgument('src', InputArgument::OPTIONAL, 'The src directory for legacy files', 'src/legacy_files'), ] ) - ->addOption('ini', null, InputOption::VALUE_NONE, 'Inits basic INI settings for scenarios where adding legacy bridge to platform (mainly for testing use)') + ->addOption('ini', null, InputOption::VALUE_NONE, 'Inits basic INI settings for scenarios where adding legacy bridge to existing platform setup (mainly for testing use)') ->setDescription('Inits Platform installation for legacy usage') ->setHelp( <<composer symfony-scripts - git add src/legacy_files @@ -229,7 +229,7 @@ protected function enableRoutes(OutputInterface $output) { if (!$this->appendConditionally( 'app/config/routing.yml', - 'resource: @EzPublishLegacyBundle/Resources/config/routing.yml', + '@EzPublishLegacyBundle/Resources/config/routing.yml', <<<'EOT' # NOTE: ALWAYS keep this at the end of your routing rules so native symfony routes have precedence @@ -282,7 +282,8 @@ protected function generateINI(InputInterface $input, OutputInterface $output) $errOutput->writeln('Error: Unable to load app/config/ezplatform.yml'); } - $output->writeln('To use legacy_admin, add it to siteaccess.list and siteaccess.groups.site_group in `ezplatform.yml` '); + $output->writeln(''); + $output->writeln('INI generated: To use legacy_admin, add it to siteaccess.list and siteaccess.groups.site_group in `app/config/ezplatform.yml`'); } From 66ad18e4f82fa74b8aede64553b54e69dba5d3a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20R?= Date: Fri, 3 May 2019 12:43:57 +0200 Subject: [PATCH 5/7] Update site.ini.append.php --- .../init_ini/siteaccess/legacy_admin/site.ini.append.php | 1 - 1 file changed, 1 deletion(-) diff --git a/bundle/Resources/init_ini/siteaccess/legacy_admin/site.ini.append.php b/bundle/Resources/init_ini/siteaccess/legacy_admin/site.ini.append.php index d36b9530..3e2186f1 100644 --- a/bundle/Resources/init_ini/siteaccess/legacy_admin/site.ini.append.php +++ b/bundle/Resources/init_ini/siteaccess/legacy_admin/site.ini.append.php @@ -8,7 +8,6 @@ RequireUserLogin=true RelatedSiteAccessList[] RelatedSiteAccessList[]=site -#RelatedSiteAccessList[]=admin RelatedSiteAccessList[]=legacy_admin ShowHiddenNodes=true From bca97aa76b4d72a822ad9cb9bbdaad2a7c77f0b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20R?= Date: Fri, 10 May 2019 09:10:37 +0200 Subject: [PATCH 6/7] CS --- .php_cs | 1 + bundle/Command/LegacyInitCommand.php | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.php_cs b/.php_cs index c87f050d..11199d3c 100644 --- a/.php_cs +++ b/.php_cs @@ -29,6 +29,7 @@ return PhpCsFixer\Config::create() ->exclude([ 'vendor', 'ezpublish_legacy', + 'bundle/Resources/init_ini', ]) ->files()->name('*.php') ) diff --git a/bundle/Command/LegacyInitCommand.php b/bundle/Command/LegacyInitCommand.php index c57e6a95..3c4fc204 100644 --- a/bundle/Command/LegacyInitCommand.php +++ b/bundle/Command/LegacyInitCommand.php @@ -80,7 +80,7 @@ protected function createDirectories(InputInterface $input, OutputInterface $out $filesystem = $this->getContainer()->get('filesystem'); $filesystem->mkdir([ - "src/AppBundle/ezpublish_legacy", + 'src/AppBundle/ezpublish_legacy', $srcArg, "$srcArg/design", "$srcArg/settings", @@ -284,7 +284,6 @@ protected function generateINI(InputInterface $input, OutputInterface $output) $output->writeln(''); $output->writeln('INI generated: To use legacy_admin, add it to siteaccess.list and siteaccess.groups.site_group in `app/config/ezplatform.yml`'); - } /** From aa823bacb62d283fb4cffcd318863253ae4f424e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20R?= Date: Mon, 13 May 2019 15:53:28 +0200 Subject: [PATCH 7/7] [Travis] tweaks to config --- .travis.yml | 4 +--- composer.json | 10 +++++----- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index fb7d1662..a8ff758d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,10 +31,8 @@ before_script: # Disable xdebug and remove memory limit to speed things up - phpenv config-rm xdebug.ini - echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - # Setup github key to avoid api rate limit (pure auth read only key, no rights, for use in ezsystems repos only) - - composer config -g github-oauth.github.com "d0285ed5c8644f30547572ead2ed897431c1fc09" # Install packages using composer - - travis_retry composer install --dev --prefer-dist --no-interaction --no-progress $COMPOSER_FLAGS + - travis_retry composer install --prefer-dist --no-interaction --no-progress $COMPOSER_FLAGS # execute phpunit as the script command script: diff --git a/composer.json b/composer.json index f5164ee7..de5fe401 100644 --- a/composer.json +++ b/composer.json @@ -12,17 +12,17 @@ "minimum-stability": "stable", "require": { "ezsystems/ezpublish-legacy-installer": "^2.0.4", - "ezsystems/ezpublish-legacy": "^2017.12", - "ezsystems/ezpublish-kernel": "^6.13.4", + "ezsystems/ezpublish-legacy": "~2017.12.4", + "ezsystems/ezpublish-kernel": "~6.13.4", "ezsystems/ezplatform-xmltext-fieldtype": "^1.7", - "sensio/distribution-bundle": "^3.0.36 | ^4.0.40 | ^5.0.22", + "sensio/distribution-bundle": "^3.0.36 | ^4.0.41 | ^5.0.24", "twig/twig": "^1.35 | ^2.5" }, "require-dev": { "friendsofphp/php-cs-fixer": "v2.14.2", - "matthiasnoback/symfony-dependency-injection-test": "^1.1", + "matthiasnoback/symfony-dependency-injection-test": "^1.2", "phpunit/phpunit": "^5.7.27", - "mikey179/vfsStream": "~1.1.0" + "mikey179/vfsstream": "~1.1.0" }, "autoload": { "psr-4": {