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). В конечном итоге должно получиться так.
Теперь нужно создать в корне сайта директории template (создали в прошлом уроке) поддиректорию tpl.
И давайте сразу создадим все самые необходимые поддиректории для хранения файлв шаблонов:
В подкаталоге «tpl» создаем еще 4 каталога: «chunks» — для хранения файловых чанков, «plugins» — для хранения плагинов, «snippets» — для хранения сниппетов и «templates» — для хранения шаблонов.
В конечном итоге должно получиться следующее (вместе с директориями созданными в прошлом уроке).
Заключение
С помощью pdoTools и Fenom можно вынести основные элементы в файлы, подключить к ним Git и применять изменения просто выгрузкой на сервер. Ну или подключить редактор кода и работать с ПК не заходя в админку.
Например, создаём шаблон и назначаем его ресурсу. Внутрь пишем
{include 'file:templates/base.tpl'}
Нужно включить системную настройку pdotools_fenom_parser, чтобы Fenom обработал этот шаблон и загрузил его из файла. Дальше мы уже рулим всем оформлением прямо в этом файле.
Домашнее задание (так как документация к Fenom написана очень хорошо) – изучите синтаксис Fenom, теги и его основные операторы.
В следующих уроках настроим бесплатный редактор кода VS Code (который поможет вам при работе с файловыми элементами). И разберем альтернативный способ: работу с файловыми элементами PdoTools через админку MODX.