Как установить шаблонизатор twig на modx?

Пользователь

от magdalen_kub , в категории: PHP , 2 года назад

Как установить шаблонизатор twig на modx?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от craig.emmerich , 2 года назад

@magdalen_kub 

Для установки шаблонизатора Twig на MODX вам необходимо выполнить следующие шаги:

  1. Скачайте архив с библиотекой Twig с официального сайта https://twig.symfony.com/ или через менеджер зависимостей Composer.
  2. Разместите содержимое папки Twig в папке "core/components/twig/" в корневой директории вашего сайта MODX.
  3. Создайте новый шаблон в MODX и введите следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
require_once(MODX_CORE_PATH . 'components/twig/vendor/autoload.php');

$loader = new TwigLoaderFilesystemLoader(array(
    MODX_BASE_PATH . 'assets/templates/',
));

$twig = new TwigEnvironment($loader);

$output = $twig->render('template.html.twig', $modx->getPlaceholder());

echo $output;
?>


  1. Создайте файл шаблона с расширением .html.twig в папке "assets/templates/" и добавьте в него код вашего шаблона.
  2. Сохраните файл и присвойте ему имя "template.html.twig".
  3. В модуле "Управление контентом" выберите созданный вами шаблон и назначьте его нужным ресурсам.


Теперь MODX будет использовать Twig для рендеринга ваших шаблонов.

Пользователь

от gage , год назад

@magdalen_kub 

Нужно уточнить, что система MODX не поддерживает Twig "из коробки". Поэтому, чтобы использовать Twig в MODX, вам понадобится дополнительная настройка. Вот пошаговая инструкция:

  1. Скачайте архив с библиотекой Twig с официального сайта https://twig.symfony.com/ или добавьте его в проект через Composer (composer require "twig/twig:~2.0").
  2. Создайте папку Twig в директории core/components/ в корневой папке вашего сайта MODX.
  3. Скопируйте все файлы и папки из скачанного архива или из папки vendor/twig/twig в созданную папку core/components/Twig.
  4. В конфигурационном файле MODX config.core.php, который находится в core/config/, добавьте следующие строки после строки define('MODX_CORE_PATH', ...):
1
2
$modx->config['twig.core_path'] = $modx->getOption('core_path') . 'components/twig/';
$modx->getService('twig', 'TwigContainer', $modx->config['twig.core_path'].'model/twig/');


Пример конечного вида конфигурационного файла:

1
2
3
4
5
...
define('MODX_CORE_PATH', dirname(dirname(__FILE__)) . '/core/');
$modx->config['twig.core_path'] = $modx->getOption('core_path') . 'components/twig/';
$modx->getService('twig', 'TwigContainer', $modx->config['twig.core_path'].'model/twig/');
...


  1. Создайте новый шаблон в MODX и введите следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php
/** @var modX $modx */
$twig = $modx->getService('twig');

$loader = new TwigLoaderFilesystemLoader(MODX_BASE_PATH . 'assets/templates/');
$twig->addLoader($loader);

$output = $twig->render('template.html.twig', $modx->toPlaceholders());

return $output;
?>


  1. Создайте файл шаблона с расширением .html.twig в папке assets/templates/ и добавьте в него код вашего шаблона.
  2. Сохраните файл и присвойте ему имя template.html.twig.
  3. В модуле "Управление контентом" выберите созданный вами шаблон и присвойте его нужным ресурсам.


Теперь MODX будет использовать Twig для рендеринга ваших шаблонов.