pdoTools — файловые элементы

pdoTools - файловые элементы MODX Revo
Начиная с версии 2.5.0 pdoTools (наша движущая сила - основной компонент сайта) стал улучшено поддерживать файловые элементы: из файлов можно грузить не только оформление, но и запускать PHP код. Это позволяет вынести в них почти все элементы системы: шаблоны, чанки, плагины и сниппеты.

pdoTools — файловые элементы

Все элементы по умолчанию загружаются из директории, указанной в системной настройке pdotools_elements_path.

Если вы хотите использовать файловые элементы — то нужно создать её самостоятельно (сделаем в одном из следующих уроков).

Дальше можно загружать сниппеты и чанки через методы pdoTools:

if ($pdoTools = $modx->getService('pdoTools')) {
    $chunk = $pdoTools->getChunk('@FILE chunks/my_chunk.tpl', array('placeholder' => 'value'));

    $snippet = $pdoTools->runSnippet('@FILE snippets/my_snippet.php', array('param' => 'value'));
}

Fenom может делать это двумя способами:

{$_modx->getChunk('@FILE chunks/my_chunk.tpl', ['placeholder' => 'value'])}
{'@FILE chunks/my_chunk.tpl' | chunk : ['placeholder' => 'value']}

{$_modx->runSnippet('@FILE snippets/my_snippet.php', ['param' => 'value'])}
{'@FILE snippets/my_snippet.php' | snippet : ['param' => 'value']}

Так как Fenom изначально рассчитан на работу с файловыми шаблонами, теперь можно использовать его родной провайдер файлов как file:

{include 'file:chunks/my_chunk.tpl'}

А расширение как и раньше, только с указанием file:

{extends 'file:chunks/my_chunk.tpl'}

{block 'myblock'}
    Hello world!
{/block}

Это рекомендуемый способ загрузки файлов из Fenom.

Обычные чанки, которые хранятся в БД, грузятся примерно так же:

{include 'my_chunk'}

Кэширование всех скомпилированных шаблонов включается настройкой pdotools_fenom_cache. Кэш обычных чанков из БД хранится с помощью MODX, а кэшем для file: рулит сам Fenom.

Именно поэтому для файлов в Fenom лучше использовать его собственные методы — он сможет проверить изменения и перегенерировать кэш без обращения к MODX.

Чтобы почистить этот кэш нужно удалить директорию core/cache/default/pdotools или сбросить весь кэш сайта.

Настройка pdoTools для работы на Fenom

Идем в системные настройки (шестеренка в правом углу) и переключаем настройки чисто для PdoTools.

Меняем значение настройки: Путь к элементам (pdotools_elements_path) с {core_path}elements/ на template/tpl/

И включаем настройки (ставим да) у: Разрешить MODX в Fenom (pdotools_fenom_modx); Использовать Fenom на страницах (pdotools_fenom_parser); Разрешить PHP в Fenom (pdotools_fenom_php) и Сохранять ошибки (pdotools_fenom_save_on_errors). В конечном итоге должно получиться так.

Настройки pdotools

Теперь нужно создать в корне сайта директории template (создали в прошлом уроке) поддиректорию tpl.

Создание подкаталогов из админки MODX

И давайте сразу создадим все самые необходимые поддиректории для хранения файлв шаблонов:

В подкаталоге «tpl» создаем еще 4 каталога: «chunks» — для хранения файловых чанков, «plugins» — для хранения плагинов, «snippets» — для хранения сниппетов и «templates» — для хранения шаблонов.

В конечном итоге должно получиться следующее (вместе с директориями созданными в прошлом уроке).

Структура созданных каталогов и подкаталогов

Заключение

С помощью pdoTools и Fenom можно вынести основные элементы в файлы, подключить к ним Git и применять изменения просто выгрузкой на сервер. Ну или подключить редактор кода и работать с ПК не заходя в админку.

Например, создаём шаблон и назначаем его ресурсу. Внутрь пишем

{include 'file:templates/base.tpl'}

Нужно включить системную настройку pdotools_fenom_parser, чтобы Fenom обработал этот шаблон и загрузил его из файла. Дальше мы уже рулим всем оформлением прямо в этом файле.

Домашнее задание (так как документация к Fenom написана очень хорошо) – изучите синтаксис Fenomтеги и его основные операторы.

В следующем уроке настроим бесплатный редактор кода VS Code.

Понравилась статья? Можно поблагодарить автора: отправив ему донат на
YooMoney
или
Qiwi
. Либо поделившись статьей ☟
Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( Пока оценок нет )
Web-Revenue.ru
Добавить комментарий