From 170264e56df799eebdd7af9f96dc02dc61349e78 Mon Sep 17 00:00:00 2001 From: Awilum Date: Sat, 7 Mar 2020 22:00:53 +0300 Subject: [PATCH] feat(core): add Application URL into the common settings #405 Affected: - core - admin-plugin - site-plugin - default-theme BREAKING CHANGES - shortcode [site_url] renamed to [url] - twig function site_url() renamed to url() - new setting added `flextype.url` instead of `plugins.site.url` --- flextype/config/settings.yaml | 9 ++++++-- flextype/shortcodes/UrlShortcodeExtension.php | 22 +++++++++++++++++++ .../twig/UrlTwigExtension.php | 16 +++++++++----- .../templates/content/entries/media.html | 6 ++--- .../admin/templates/partials/base.html | 14 ++++++------ .../partials/modules/datetimepicker.html | 2 +- .../templates/partials/modules/trumbowyg.html | 4 ++-- .../site/app/Controllers/SiteController.php | 16 -------------- .../shortcodes/SiteUrlShortcodeExtension.php | 15 ------------- .../default/templates/partials/base.html | 6 ++--- 10 files changed, 56 insertions(+), 54 deletions(-) create mode 100644 flextype/shortcodes/UrlShortcodeExtension.php rename site/plugins/site/twig/SiteUrlTwigExtension.php => flextype/twig/UrlTwigExtension.php (52%) delete mode 100644 site/plugins/site/shortcodes/SiteUrlShortcodeExtension.php diff --git a/flextype/config/settings.yaml b/flextype/config/settings.yaml index bfdbca01..c52fa681 100644 --- a/flextype/config/settings.yaml +++ b/flextype/config/settings.yaml @@ -23,6 +23,11 @@ theme: default # Available locales to use: flextype/config/locales.yaml locale: en_US +# Application URL +# +# Define custom application url +url: '' + # Valid date format # # - date_format: Valid date format @@ -187,7 +192,7 @@ twig: cache: true debug: false charset: "UTF-8" - extensions: ['Cache', 'Entries', 'Emitter', 'Flash', 'I18n', 'Json', 'Yaml', 'Parser', 'Markdown', 'Filesystem', 'Date', 'Assets', 'Csrf', 'Shortcodes', 'Snippets', 'GlobalVars'] + extensions: ['Cache', 'Entries', 'Emitter', 'Flash', 'I18n', 'Json', 'Yaml', 'Parser', 'Markdown', 'Filesystem', 'Date', 'Assets', 'Csrf', 'Shortcodes', 'Snippets', 'GlobalVars', 'Url'] # Slugify # @@ -230,7 +235,7 @@ image: # # - extensions: Flextype Shortcodes Extension to load. shortcodes: - extensions: ['BaseUrl', 'Entries', 'Registry', 'Snippets'] + extensions: ['BaseUrl', 'Entries', 'Registry', 'Snippets', 'Url'] # API's api: diff --git a/flextype/shortcodes/UrlShortcodeExtension.php b/flextype/shortcodes/UrlShortcodeExtension.php new file mode 100644 index 00000000..91e5a3dd --- /dev/null +++ b/flextype/shortcodes/UrlShortcodeExtension.php @@ -0,0 +1,22 @@ +addHandler('url', static function () use ($flextype) { + if ($this->flextype['registry']->has('flextype.url') && $this->flextype['registry']->get('flextype.url') != '') { + return $this->flextype['registry']->get('flextype.url'); + } else { + return Uri::createFromEnvironment(new Environment($_SERVER))->getBaseUrl(); + } +}); diff --git a/site/plugins/site/twig/SiteUrlTwigExtension.php b/flextype/twig/UrlTwigExtension.php similarity index 52% rename from site/plugins/site/twig/SiteUrlTwigExtension.php rename to flextype/twig/UrlTwigExtension.php index d7b4c888..ed40ccdd 100644 --- a/site/plugins/site/twig/SiteUrlTwigExtension.php +++ b/flextype/twig/UrlTwigExtension.php @@ -11,8 +11,10 @@ namespace Flextype; use Twig_Extension; use Twig_SimpleFunction; +use Slim\Http\Environment; +use Slim\Http\Uri; -class SiteUrlTwigExtension extends Twig_Extension +class UrlTwigExtension extends Twig_Extension { /** * Flextype Dependency Container @@ -35,15 +37,19 @@ class SiteUrlTwigExtension extends Twig_Extension public function getFunctions() : array { return [ - new Twig_SimpleFunction('site_url', [$this, 'site_url'], ['is_safe' => ['html']]) + new Twig_SimpleFunction('url', [$this, 'url'], ['is_safe' => ['html']]) ]; } /** - * Get Site URL + * Get App URL */ - public function site_url() : string + public function url() : string { - return $this->flextype->SiteController->getSiteUrl(); + if ($this->flextype['registry']->has('flextype.url') && $this->flextype['registry']->get('flextype.url') != '') { + return $this->flextype['registry']->get('flextype.url'); + } else { + return Uri::createFromEnvironment(new Environment($_SERVER))->getBaseUrl(); + } } } diff --git a/site/plugins/admin/templates/content/entries/media.html b/site/plugins/admin/templates/content/entries/media.html index 58638ad0..1a7ec68b 100644 --- a/site/plugins/admin/templates/content/entries/media.html +++ b/site/plugins/admin/templates/content/entries/media.html @@ -41,17 +41,17 @@ {% set index = loop.index0 %} {{ filesystem_basename(file) }} {% if (filesystem_ext(file) in allowed_image_files) %} - + {% endif %} diff --git a/site/plugins/admin/templates/partials/base.html b/site/plugins/admin/templates/partials/base.html index 822512b3..2be84ae3 100644 --- a/site/plugins/admin/templates/partials/base.html +++ b/site/plugins/admin/templates/partials/base.html @@ -15,8 +15,8 @@ - {% set vendor_build_css = site_url() ~ '/site/plugins/admin/assets/dist/css/vendor-build.min.css' %} - {% set admin_panel_build_css = site_url() ~ '/site/plugins/admin/assets/dist/css/admin-panel-build.min.css' %} + {% set vendor_build_css = url() ~ '/site/plugins/admin/assets/dist/css/vendor-build.min.css' %} + {% set admin_panel_build_css = url() ~ '/site/plugins/admin/assets/dist/css/admin-panel-build.min.css' %} {% do assets.add('css', vendor_build_css, 'admin', 1) %} {% do @@ -44,7 +44,7 @@ {{ icon('fas fa-bars') }} - {% set admin_panel_build_js = site_url() ~ '/site/plugins/admin/assets/dist/js/admin-panel-build.min.js' %} + {% set admin_panel_build_js = url() ~ '/site/plugins/admin/assets/dist/js/admin-panel-build.min.js' %} {% do assets.add('js', admin_panel_build_js, 'admin', 1) %} {% for assets_admin in assets.get('js', 'admin') %} diff --git a/site/plugins/admin/templates/partials/modules/datetimepicker.html b/site/plugins/admin/templates/partials/modules/datetimepicker.html index b8e1f926..e229168d 100644 --- a/site/plugins/admin/templates/partials/modules/datetimepicker.html +++ b/site/plugins/admin/templates/partials/modules/datetimepicker.html @@ -4,7 +4,7 @@ {% set flatpickr_locale = registry.flextype.locale|lower|slice(0, 2) %} {% endif %} {% if flatpickr_locale != 'en' %} - + {% endif %} + {% endif %}