From 8b4b6fa1662c43b87a855d30f7b61b9f42667cfc Mon Sep 17 00:00:00 2001 From: Awilum Date: Wed, 8 Jan 2020 20:48:31 +0300 Subject: [PATCH] feat(core): Load Shortcodes extensions based on settings.shortcodes.extensions array #352 --- flextype/bootstrap.php | 13 ++++++++++--- flextype/config/settings.yaml | 6 ++++++ ...lShortcode.php => BaseUrlShortcodeExtension.php} | 0 ...sShortcode.php => EntriesShortcodeExtension.php} | 0 ...Shortcode.php => RegistryShortcodeExtension.php} | 0 ...Shortcode.php => SnippetsShortcodeExtension.php} | 0 6 files changed, 16 insertions(+), 3 deletions(-) rename flextype/shortcodes/{BaseUrlShortcode.php => BaseUrlShortcodeExtension.php} (100%) rename flextype/shortcodes/{EntriesShortcode.php => EntriesShortcodeExtension.php} (100%) rename flextype/shortcodes/{RegistryShortcode.php => RegistryShortcodeExtension.php} (100%) rename flextype/shortcodes/{SnippetsShortcode.php => SnippetsShortcodeExtension.php} (100%) diff --git a/flextype/bootstrap.php b/flextype/bootstrap.php index d3753cec..c276ff43 100755 --- a/flextype/bootstrap.php +++ b/flextype/bootstrap.php @@ -158,10 +158,17 @@ if ($flextype['registry']->get('settings.errors.display')) { date_default_timezone_set($flextype['registry']->get('settings.timezone')); /** - * Get and Include default shortcodes + * Init shortocodes + * + * Load Flextype Shortcodes extensions from directory /flextype/shortcodes/ based on settings.shortcodes.extensions array */ -foreach (Filesystem::listContents(ROOT_DIR . '/flextype/shortcodes') as $shortcode) { - include_once $shortcode['path']; +$shortcodes_extensions = $flextype['registry']->get('settings.shortcodes.extensions'); + +foreach($shortcodes_extensions as $shortcodes_extension) { + $shortcodes_extension_file_path = ROOT_DIR . '/flextype/shortcodes/' . $shortcodes_extension . 'ShortcodeExtension.php'; + if (file_exists($shortcodes_extension_file_path)) { + include_once $shortcodes_extension_file_path; + } } /** diff --git a/flextype/config/settings.yaml b/flextype/config/settings.yaml index af06e298..1e70268f 100644 --- a/flextype/config/settings.yaml +++ b/flextype/config/settings.yaml @@ -231,3 +231,9 @@ slugify: # - driver: gd or imagick image: driver: gd + +# Shortcodes +# +# - extensions: Flextype Shortcodes Extension to load. +shortcodes: + extensions: ['BaseUrl', 'Entries', 'Registry', 'Snippets'] diff --git a/flextype/shortcodes/BaseUrlShortcode.php b/flextype/shortcodes/BaseUrlShortcodeExtension.php similarity index 100% rename from flextype/shortcodes/BaseUrlShortcode.php rename to flextype/shortcodes/BaseUrlShortcodeExtension.php diff --git a/flextype/shortcodes/EntriesShortcode.php b/flextype/shortcodes/EntriesShortcodeExtension.php similarity index 100% rename from flextype/shortcodes/EntriesShortcode.php rename to flextype/shortcodes/EntriesShortcodeExtension.php diff --git a/flextype/shortcodes/RegistryShortcode.php b/flextype/shortcodes/RegistryShortcodeExtension.php similarity index 100% rename from flextype/shortcodes/RegistryShortcode.php rename to flextype/shortcodes/RegistryShortcodeExtension.php diff --git a/flextype/shortcodes/SnippetsShortcode.php b/flextype/shortcodes/SnippetsShortcodeExtension.php similarity index 100% rename from flextype/shortcodes/SnippetsShortcode.php rename to flextype/shortcodes/SnippetsShortcodeExtension.php