From 763bdb3e423a7a84a6d6a774ae6a109d7e573794 Mon Sep 17 00:00:00 2001 From: Thomas Hunziker Date: Tue, 11 Feb 2020 08:12:52 +0100 Subject: [PATCH] [4.0] Load presets from component directory (#27869) * Move component specific presets to component folder * Move preset language strings from lib to components * Dynamically load presets from component folders instead of using hardcoded list. * Name of preset is without ".xml" * Move language strings use din presets to respective component --- .../presets/content.xml | 20 +++++----- .../com_menus/Helper/MenusHelper.php | 39 +++++++++++++++---- .../com_menus/presets/alternate.xml | 32 +++++++-------- .../components/com_menus/presets/default.xml | 32 +++++++-------- .../presets/users.xml | 18 ++++----- .../language/en-GB/com_content.sys.ini | 13 +++++++ .../language/en-GB/com_menus.sys.ini | 6 +++ .../language/en-GB/com_users.sys.ini | 15 +++++++ administrator/language/en-GB/lib_joomla.ini | 9 ----- administrator/language/en-GB/mod_menu.ini | 25 ------------ language/en-GB/lib_joomla.ini | 9 ----- 11 files changed, 116 insertions(+), 102 deletions(-) rename administrator/components/{com_menus => com_content}/presets/content.xml (82%) rename administrator/components/{com_menus => com_users}/presets/users.xml (81%) diff --git a/administrator/components/com_menus/presets/content.xml b/administrator/components/com_content/presets/content.xml similarity index 82% rename from administrator/components/com_menus/presets/content.xml rename to administrator/components/com_content/presets/content.xml index 2e8b1da8f0b..83d2a95c9d5 100644 --- a/administrator/components/com_menus/presets/content.xml +++ b/administrator/components/com_content/presets/content.xml @@ -5,31 +5,31 @@ xsi:schemaLocation="urn:joomla.org menu.xsd" > getLanguage(); + + foreach ($components as $component) + { + if (!$component->enabled) + { + continue; + } + + $folder = JPATH_ADMINISTRATOR . '/components/' . $component->option . '/presets/'; + + if (!Folder::exists($folder)) + { + continue; + } + + $lang->load($component->option . '.sys', JPATH_ADMINISTRATOR) + || $lang->load($component->option . '.sys', JPATH_ADMINISTRATOR . '/components/' . $component->option); + + $presets = Folder::files($folder, '.xml'); + + foreach ($presets as $preset) + { + $name = File::stripExt($preset); + $title = strtoupper($component->option . '_MENUS_PRESET_' . $name); + static::addPreset($name, $title, $folder . $preset); + } + } // Load from template folder automatically $app = Factory::getApplication(); diff --git a/administrator/components/com_menus/presets/alternate.xml b/administrator/components/com_menus/presets/alternate.xml index b79106a42d8..bbcfacb7609 100644 --- a/administrator/components/com_menus/presets/alternate.xml +++ b/administrator/components/com_menus/presets/alternate.xml @@ -48,14 +48,14 @@