1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-13 08:34:19 +02:00

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`
This commit is contained in:
Awilum
2020-03-07 22:00:53 +03:00
parent f957d1d382
commit 170264e56d
10 changed files with 56 additions and 54 deletions

View File

@@ -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:

View File

@@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
/**
* Flextype (http://flextype.org)
* Founded by Sergey Romanenko and maintained by Flextype Community.
*/
namespace Flextype;
use Slim\Http\Environment;
use Slim\Http\Uri;
// Shortcode: [url]
$flextype['shortcodes']->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();
}
});

View File

@@ -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();
}
}
}

View File

@@ -41,17 +41,17 @@
{% set index = loop.index0 %}
<tr
id="file_{{ index }}"
data-direct-link="{{ site_url() }}/site/uploads/entries/{{ id }}/{{ filesystem_basename(file) }}"
data-direct-link="{{ url() }}/site/uploads/entries/{{ id }}/{{ filesystem_basename(file) }}"
{% if (filesystem_ext(file) in allowed_image_files) %}
data-delivery-images-api-link-state="true"
data-delivery-images-api-link="{{ site_url() }}/api/delivery/images/{{ id }}/{{ filesystem_basename(file) }}?token={{ registry.flextype.api.images.default_token }}"
data-delivery-images-api-link="{{ url() }}/api/delivery/images/{{ id }}/{{ filesystem_basename(file) }}?token={{ registry.flextype.api.images.default_token }}"
{% endif %}>
<td style="height: 64px;">
{{ filesystem_basename(file) }}
</td>
<td class="text-center flex justify-center" style="height: 64px;">
{% if (filesystem_ext(file) in allowed_image_files) %}
<img src="{{ site_url() }}/api/delivery/images/{{ id }}/{{ filesystem_basename(file) }}?w=64&q=70&dpr=2&token={{ registry.flextype.api.images.default_token }}" alt="" class="border-2 rounded border-gray-200" style="height: 50px;">
<img src="{{ url() }}/api/delivery/images/{{ id }}/{{ filesystem_basename(file) }}?w=64&q=70&dpr=2&token={{ registry.flextype.api.images.default_token }}" alt="" class="border-2 rounded border-gray-200" style="height: 50px;">
{% endif %}
</td>
<td class="text-right" style="height: 64px;">

View File

@@ -15,8 +15,8 @@
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
{% 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 @@
<i class="icon icon--white">{{ icon('fas fa-bars') }}</i>
</a>
<div id="dropdown-flextype-menu" class="dropdown">
<a class="dropdown__item" target="_blank" href="{{ site_url() }}">
<a class="dropdown__item" target="_blank" href="{{ url() }}">
<i class="icon icon--white mr-3">{{ icon('fas fa-globe') }}</i>
{{ tr('admin_view_site') }}</a>
<a class="dropdown__item" href="{{ path_for('admin.settings.index') }}">
@@ -62,21 +62,21 @@
</li>
{% for key, item in registry.plugins.admin.navigation.content %}
<li>
<a data-tippy-content="{{ item.title|raw }}" href="{{ site_url() }}{{ item.link|raw }}" class="js-nav navigation__item {% if key == menu_item %}navigation__item--active{% endif %}">
<a data-tippy-content="{{ item.title|raw }}" href="{{ url() }}{{ item.link|raw }}" class="js-nav navigation__item {% if key == menu_item %}navigation__item--active{% endif %}">
<i class="icon icon--white">{{ icon(item.icon) }}</i>
</a>
</li>
{% endfor %}
{% for key, item in registry.plugins.admin.navigation.extends %}
<li>
<a data-tippy-content="{{ item.title|raw }}" href="{{ site_url() }}{{ item.link|raw }}" class="js-nav navigation__item {% if key == menu_item %}navigation__item--active{% endif %}">
<a data-tippy-content="{{ item.title|raw }}" href="{{ url() }}{{ item.link|raw }}" class="js-nav navigation__item {% if key == menu_item %}navigation__item--active{% endif %}">
<i class="icon icon--white">{{ icon(item.icon) }}</i>
</a>
</li>
{% endfor %}
{% for key, item in registry.plugins.admin.navigation.system %}
<li>
<a data-tippy-content="{{ item.title|raw }}" href="{{ site_url() }}{{ item.link|raw }}" class="js-nav navigation__item {% if key == menu_item %}navigation__item--active{% endif %}">
<a data-tippy-content="{{ item.title|raw }}" href="{{ url() }}{{ item.link|raw }}" class="js-nav navigation__item {% if key == menu_item %}navigation__item--active{% endif %}">
<i class="icon icon--white">{{ icon(item.icon) }}</i>
</a>
</li>
@@ -288,7 +288,7 @@
</div>
</main>
{% 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') %}

View File

@@ -4,7 +4,7 @@
{% set flatpickr_locale = registry.flextype.locale|lower|slice(0, 2) %}
{% endif %}
{% if flatpickr_locale != 'en' %}
<script type="text/javascript" src="{{ site_url() }}/site/plugins/admin/assets/dist/lang/flatpickr/l10n/{{ flatpickr_locale }}.js "></script>
<script type="text/javascript" src="{{ url() }}/site/plugins/admin/assets/dist/lang/flatpickr/l10n/{{ flatpickr_locale }}.js "></script>
{% endif %}
<script>
flatpickr(".js-datetimepicker", {

View File

@@ -4,10 +4,10 @@
{% set trumbowyg_locale = registry.flextype.locale|lower|slice(0, 2) %}
{% endif %}
{% if trumbowyg_locale != 'en' %}
<script type="text/javascript" src="{{ site_url() }}/site/plugins/admin/assets/dist/lang/trumbowyg/langs/{{ trumbowyg_locale }}.min.js "></script>
<script type="text/javascript" src="{{ url() }}/site/plugins/admin/assets/dist/lang/trumbowyg/langs/{{ trumbowyg_locale }}.min.js "></script>
{% endif %}
<script>
$.trumbowyg.svgPath = '{{ site_url() }}/site/plugins/admin/assets/dist/fonts/trumbowyg/icons.svg';
$.trumbowyg.svgPath = '{{ url() }}/site/plugins/admin/assets/dist/fonts/trumbowyg/icons.svg';
$('.js-html-editor').trumbowyg({
btnsDef: {
// Customizables dropdowns

View File

@@ -98,22 +98,6 @@ class SiteController extends Controller
return $this->view->render($response, $path, ['entry' => $this->entry, 'query' => $query, 'uri' => $uri]);
}
/**
* Get Site URL
*
* @return string
*
* @access public
*/
public function getSiteUrl()
{
if ($this->registry->has('plugins.site.site_url') && $this->registry->get('plugins.site.site_url') != '') {
return $this->registry->get('plugins.site.site_url');
} else {
return Uri::createFromEnvironment(new Environment($_SERVER))->getBaseUrl();
}
}
/**
* Error404 page
*

View File

@@ -1,15 +0,0 @@
<?php
declare(strict_types=1);
/**
* Flextype (http://flextype.org)
* Founded by Sergey Romanenko and maintained by Flextype Community.
*/
namespace Flextype;
// Shortcode: [site_url]
$flextype['shortcodes']->addHandler('site_url', static function () use ($flextype) {
return $flextype->SiteController->getSiteUrl();
});

View File

@@ -19,7 +19,7 @@
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,500,500i,700,700i,900,900i&display=swap&subset=cyrillic,cyrillic-ext,latin-ext" rel="stylesheet">
{% set build_css = site_url() ~ '/site/themes/' ~ registry.flextype.theme ~ '/assets/dist/css/build.min.css' %}
{% set build_css = url() ~ '/site/themes/' ~ registry.flextype.theme ~ '/assets/dist/css/build.min.css' %}
{% do
assets.add('css', build_css, 'site', 1) %}
{% for assets_site in assets.get('css', 'site') %}
@@ -39,7 +39,7 @@
<div class="w-full lg:w-2/12
text-center lg:text-left
float-left text-white py-2 uppercase tracking-wide">
<a href="{{ site_url() }}" class="w-full lg:w-2/12 text-center text-base no-underline">{{ registry.plugins.site.title|e('html') }}</a>
<a href="{{ url() }}" class="w-full lg:w-2/12 text-center text-base no-underline">{{ registry.plugins.site.title|e('html') }}</a>
</div>
<div class="w-full float-right lg:w-9/12 font-noirpro-semibold">
<div class="text-right p-2">
@@ -51,7 +51,7 @@
}) %}
{% if item.menu_item_title %}
<a
href="{{ site_url() }}/{{ item.menu_item_url }}"
href="{{ url() }}/{{ item.menu_item_url }}"
class="uppercase
relative
block