1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-08 14:16:46 +02:00

Flextype Core: Load twig extensions based on settings.twig.extensions array #351

This commit is contained in:
Awilum
2020-01-08 19:54:10 +03:00
parent 64b1a7781a
commit 4e4be81c4f
2 changed files with 12 additions and 44 deletions

View File

@@ -186,11 +186,14 @@ http_version: '1.1'
# - charset: The charset used by the templates.
#
# - cache: Set false to disable caching.
#
# - extensions Flextype Twig Extension to load.
twig:
auto_reload: true
cache: true
debug: false
charset: "UTF-8"
extensions: ['Cache', 'Entries', 'Emitter', 'Flash', 'I18n', 'Json', 'Yaml', 'Parser', 'Markdown', 'Filesystem', 'Date', 'Assets', 'Csrf', 'Shortcodes', 'Snippets', 'GlobalVars']
# Slugify
#

View File

@@ -253,53 +253,18 @@ $flextype['view'] = static function ($container) {
// Add Twig Debug Extension
$view->addExtension(new DebugExtension());
// Add Cache Twig Extension
$view->addExtension(new CacheTwigExtension($container));
// Load Flextype Twig extensions from directory /flextype/twig/ based on settings.twig.extensions array
$twig_extensions = $container['registry']->get('settings.twig.extensions');
// Add Entries Twig Extension
$view->addExtension(new EntriesTwigExtension($container));
foreach($twig_extensions as $twig_extension) {
// Add Emitter Twig Extension
$view->addExtension(new EmitterTwigExtension($container));
$twig_extension_class_name = $twig_extension . 'TwigExtension';
$twig_extension_class_name_with_namespace = 'Flextype\\' . $twig_extension . 'TwigExtension';
// Add Flash Twig Extension
$view->addExtension(new FlashTwigExtension($container));
// Add I18n Twig Extension
$view->addExtension(new I18nTwigExtension());
// Add Json Twig Extension
$view->addExtension(new JsonTwigExtension($container));
// Add Yaml Twig Extension
$view->addExtension(new YamlTwigExtension($container));
// Add Parser Twig Extension
$view->addExtension(new ParserTwigExtension($container));
// Add Markdown Twig Extension
$view->addExtension(new MarkdownTwigExtension($container));
// Add Filesystem Twig Extension
$view->addExtension(new FilesystemTwigExtension());
// Add Date Twig Extension
$view->addExtension(new DateTwigExtension());
// Add Assets Twig Extension
$view->addExtension(new AssetsTwigExtension());
// Add Csrf Twig Extension
$view->addExtension(new CsrfTwigExtension($container->get('csrf')));
// Add Global Vars Twig Extension
$view->addExtension(new GlobalVarsTwigExtension($container));
// Add Global Shortcodes Twig Extension
$view->addExtension(new ShortcodesTwigExtension($container));
// Add Global Snippets Twig Extension
$view->addExtension(new SnippetsTwigExtension($container));
if (file_exists(ROOT_DIR . '/flextype/twig/' . $twig_extension_class_name . '.php')) {
$view->addExtension(new $twig_extension_class_name_with_namespace($container));
}
}
// Return view
return $view;