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:
@@ -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:
|
||||
|
22
flextype/shortcodes/UrlShortcodeExtension.php
Normal file
22
flextype/shortcodes/UrlShortcodeExtension.php
Normal 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();
|
||||
}
|
||||
});
|
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
@@ -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;">
|
||||
|
@@ -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') %}
|
||||
|
@@ -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", {
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
*
|
||||
|
@@ -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();
|
||||
});
|
@@ -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
|
||||
|
Reference in New Issue
Block a user