Используем шаблонизатор Fenom в MODX

Чтобы начать его использовать ставим приложение pdoTools от Безумкина.

Заходим в системные настройки и включаем опцию pdotools_fenom_parser: «Использовать Fenom на страницах». Но скорей всего после этого он у вас не заработает, ведь на страницах все ещё есть включения открывающей скобки в CSS и JavaScript {. Помещаем их в {ignore}{/ignore}, инлайновый (внедрённый) CSS-код выносим в файл (по опыту, в данном случае игнорирование их парсером pdoParser не помогает).

Перед включением Fenom не забудьте сделать резервную копию всех файлов!!! К примеру, наткнулся на дичайший баг с удалением всех файлов из папки assets при обычном включении Fenom, если файлы у вас подключены как статичные. (пруф)

Ниже приведена таблица соответствия классического синтаксиса MODX с Fenom.

Content ElementsMODX RevolutionFenom (pdoTools)
Templatesno tag representation 
Resource Fields[[*field]]
[[*id]]
{$_modx->resource.pagetitle}
{$_modx->resource.content}
{$_modx->resource.id}
Template Variables[[*templatevar]]{$_modx->resource.tv_param}
Chunks[[$chunk]]{$_modx->getChunk('chunk')}
{include 'chunk'}
 [[$Hello?name=`George`]] 
Snippets[[snippet]]
[[pdoResources?
&limit=`5`
&tpl=`ListRowTpl`
]]
{$_modx->runSnippet('pdoResources', [
'limit' => 5,
'tpl' => 'ListRowTpl',
])}
Pluginsno tag representation 
Modulesdoes not exist in Revolution, use CMPs 
Content Tags  
Placeholders[[+placeholder]]
[[+page.nav]]
{$_modx->getPlaceholder('page.nav')}
Links[[~link]]
[[~15]]
[[~[[+id]]]]
{$_modx->makeUrl(15)}
{$_modx->makeUrl($id)}
{$id|url}
System Settings[[++system_setting]]{$_modx->config.site_name}
Language[[%language_string_key]]{$_modx->lexicon('language_string_key')}
Comment[[-this is a comment]]{* this is a comment *}
Template Variable[[+tv.image]]{$_pls['tv.image']}
If[[+tv_param:is=`1`:then=`
Yes
`:else=`
No
`]]

 

Snippet:
return $modx->resource->get('longtitle') ? $modx->resource->get('longtitle') : $modx->resource->get('pagetitle');

{if $_modx->resource.tv_param}
Yes
{else}
No
{/if}

 

{$_modx->resource.longtitle?:$_modx->resource.pagetitle}

https://docs.modx.pro/komponentyi/pdotools/parser
https://github.com/fenom-template/fenom/blob/master/docs/ru/readme.md

Update: рекомендую вам вместо использования этого «рогатого зайца» MODX с Fenom и переключиться на современные CMS с нормальными шаблонизаторами, такие как October CMS.

Update 2: Fenom стал стандартом для MODX. Если вы всё ещё его используете, то просто обязаны отказаться от стандартного шаблонизатора в пользу Fenom. Если вы клиент, то проследите, чтобы в коде шаблонов (Элементы — Шаблоны) не использовались квадратные скобки [[.

Комментарии читателей

Добавить комментарий