Шпаргалка по Fenom

MODX Fenom Описание
[[+pagetitle]] {$pagetitle} Заголовок
[[*pagetitle]] {$modx->resource->pagetitle} Заголовок
[[%lexicon]] {$modx->lexicon('lexicon')} вывод словарей
[[~[[+id]]]] {$modx->makeUrl($id)} укл на страницу
[[++site_url]] {$modx->config.site_url} настройки modx
[[$chunkName]] {$pdoTools->getChunk('chunkName')} или {include 'chunkName'} чанк
[[!snippetName]] {$modx->runSnippet("pdoResources", ['parents' => 0])} сниппет
[[*id:is=`1`:then=``:else=``]] {if $id = 1}{else}{/if} if else
[[+pagetitle:modificator]] {$pagetitle | modificator} модификатор
[[+pagetitle:modificator]] {$_modx->placeholders} массив с системными плейсхолдерами

Другие параметры

Fenom Описание
{$_modx->placeholders} массив с системными плейсхолдерами
{$_modx->config} массив с системными настройками
{$_modx->context} массив (не объект!) с текущим контекстом
{$_modx->user} массив (не объект!) с текущим пользователем
{$_modx->resource} массив (не объект!) с текущим ресурсом
{$_modx->lexicon} служба загрузки лексиконов
{$_modx->lexicon()} функция для вывода строки из лексикона
{$_modx->runSnippet()} запуск сниппета
{$_modx->runProcessor()} запуск процессора
{$_modx->getChunk()} вывод чанка
{$_modx->runSnippet('!pdoResources')} не кэшируемый
{$.get.test} GET
{$.post.test} POST
{$date|date:"Y"} текущий год

Подключение наборов параметров

Fenom Описание
{$_modx->getChunk('Name@PropertySet')} для чанка
{include 'Name@PropertySet'}
{$_modx->runSnippet('NameName@PropertySet')} для сниппетов
{include 'template:TemplateName@PropertySet'}

Подключение шаблона

Fenom Описание
{include 'template:имя шаблона'} подключение шаблока
{include 'имя чанка'} подключение чанка
{block 'content'}контект{/block} растановка блоков

Примеры работы

    // загрукзка ресурсов
    {$_modx->runSnippet('pdoResources', [
        'parents' => 19,
        'depth' => 0,
        'where' => ['isfolder' => 0],
        'showLog' => 1,
    ])}

    // загрукзка меню
    {$_modx->runSnippet('pdoMenu', [
        'parents' => 0,
        'level' => 2
    ])}

    <p>
    {$_modx->lexicon->load('ms2gallery:default')}
        Проверка словарей ms2Gallery: {$_modx->lexicon('ms2gallery_err_gallery_exists')}
    </p>

    <p>
    {if $_modx->isAuthenticated('web')}
        Привет, {$_modx->user.fullname}!
    {else}
        Вам нужно авторизоваться =(
    {/if}
    </p>
    <p>Текущий контекст: {$_modx->context.key}</p>

Создание значения из переменной с добавление префикса

set $lexicon = "ms2_product_{$field}"}
('ms2_product_' ~ $name) | lexicon}

Тег {foreach}

Тег foreach предоставляет простой способ перебора массивов. Foreach работает только с массивами, объектами и интервалами.

{foreach $list [as [$key =>] $value] [index=$index] [first=$first] [last=$last]}
   {* ...code... *}
   {break}
   {* ...code... *}
   {continue}
   {* ...code... *}
{foreachelse}
   {* ...code... *}
{/foreach}

{foreach}

Перебор значений массива $list:

{foreach $list as $value}
 <div>{$value}</div>
{/foreach}

{foreach 1..7 as $value} {* так же хорошо работает и с интервалами *}
 <div>№{$value}</div>
{/foreach}

Перебор ключей и значений массива $list:

{foreach $list as $key => $value}
 <div>{$key}: {$value}</div>
{/foreach}

Получение номера (индекса) итерации, начиная с 0

{foreach $list as $value}
 <div>№{$value@index}: {$value}</div>
{/foreach}

или

{foreach $list as $value index=$index}
 <div>№{$index}: {$value}</div>
{/foreach}

Определение первой итерации:

{foreach $list as $value}
 <div>{if $value@first} first item {/if} {$value}</div>
{/foreach}

или

{foreach $list as $value first=$first}
 <div>{if $first} first item {/if} {$value}</div>
{/foreach}

Переменная $value@first будет иметь значение TRUE, если текущая итерация является первой. Определение последней интерации:

{foreach $list as $value}
 <div>{if $value@last} last item {/if} {$value}</div>
{/foreach}

или

{foreach $list as $value last=$last}
 <div>{if $last} last item {/if} {$value}</div>
{/foreach}

Переменная $value:last будет иметь значение TRUE, если текущая итерация является последней.

Замечание: Использование last требует от $list быть countable.

{break}

Тег {break} используется для выхода из цикла до достижения последней итерации. Если в цикле встречается тег {break}, цикл завершает свою работу, и далее, выполняется код, следующий сразу за блоком цикла

{continue}

Тег {continue} используется для прерывания текущей итерации. Если в цикле встречается тег {continue}, часть цикла, следующая после тега, не выполняется, и начинается следующая итерация. Если текущая итерация была последней, цикл завершается.

{foreachelse}

Тег {foreachelse} ограничивает код, который должен быть выполнен, если итерируемый объект пуст.

{var $list = []}
{foreach $list as $value}
 <div>{if $last} last item {/if} {$value}</div>
{foreachelse}
 <div>empty</div>
{/foreach}

В блоке {foreachelse}...{/foreach} использование {break}, {continue} выбросит исключение Fenom\CompileException при компиляции

12 июня 2017, 17:03    9325



Наверх