Основной синтаксис MODX Revo

синтаксис MODX Revo MODX Revo

Абсолютно для любого пользователя сайта на MODX, теги несут основополагающее значение, по причине того, что они являются основными рабочими элементами.

Указывая тот или иной тег, во время работы с сайтом, пользователь получает возможность вызвать интересующую его часть HTML, либо PHP кода, отрывок текста или какие-то переменные документы.

Различают следующие виды синтаксиса тегов MODX:

для полей и элементов;

Элемент Название элемента Пример вывода
Шаблоны
Поля ресурсов pagetitle [[*pagetitle]]
Дополнительные поля tags [[*tags]]
Чанки header [[$header]]
Сниппеты snippet [[snippet]]
Плагины

для вывода контента;

Элемент В Revolution Пример вывода
Плейсхолдеры [[+placeholder]] [[+modx.user.id]]
Ссылки [[~link]] [[~[[*id]]? &scheme=`full`]]
Системные настройки [[++system_setting]] [[++site_start]]
Языковые теги [[%language_string_key]]
Комментарии [[-this is a comment]]

для системных параметров парсера;

Описание Тэг
Выводит время потраченное на запросы к базе данных [^qt^]
Выводит количество запросов к базе данных [^q^]
Выводит время потраченное на работу PHP скриптов [^p^]
Выводит общее время потраченное на генерацию страницы [^t^]
Выводит источник содержимого (база данных или кэш) [^s^]

Последний вид является своеобразным упрощенным форматом.

Раньше функция анализирования каждого набора тегов носила самостоятельный характер, и осуществлялась в определенном строгом порядке: переходя от одного уровня вложенности к другому. Таким образом, выполнение обработки внутреннего тега всегда переносилась до момента следующего прохода. Сейчас же процесс обработки тегов совершенно не зависит от представляющих их типов элементов, и происходит мгновенно, то есть сразу с момента их появления. Обработка встроенных тегов осуществляется перед тегом, который именуется внешним. Другими словами, сложные теги обрабатываются изнутри. Благодаря такой особенности появилась возможность прописывания гораздо более сложных составных тегов.

Комментарии в дескрипторах (тегах).

Результатом изучения обсуждений, происходящих на форумах, стало получение информации о том, что довольно значительная часть пользователей испытывает потребность в комментариях. В момент обнаружения тега, представляющего из себя элемент, который не существует, парсер, при условии настройки по умолчанию, отбрасывает весь дескриптор. Использовав такую особенность поведения, можно осуществить добавление комментариев в шаблоны, поля ресурсов и чанки. При этом отображение комментария во фронтенде происходить не будет. Стоит отметить, что если тег будет составным, то осуществление обработки внутренних тегов произойдет до того как парсер отбросит значение

В MODX Revolution версии выше 2.2+ любой вид дескриптора, который начинается дефисом будет игнорироваться парсером. Все теги, находящиеся внутри такого комментария будут отброшены. За счет этого, можно не повлияв на нагрузку, вставить абсолютно любые составные теги в структуру комментария.

[[- Это комментарий. Он будет удален из вывода страницы. ]]

Составляющие части тегов

Структура любого тега, в не зависимости от его вида, имеет несколько частей.

[[                                      // открываем тег
    !                                   // указание, что тег НЕкешируемый (необязательно)
    elementToken                        // тип элемента $ - чанк, * - поле элемента или ТВ, + - плейсхолдер, и т. д.
    elementName                         // имя элемента
    @propertyset                        // можно указать набор параметров для этого элемента (необязательно)
    filterName=`modifier`               // один или несколько фильтров вывода (необязательно)
    ?                                   // указание того, что дальше идут параметры элемента (необязательно если параметры отсутствуют)
    &propertyName=`propertyValue`       // любой параметр элемента, начинающийся с &
    &propertyName2=`propertyValue2`     // параметров может быть сколько угодно, и все начинаются с &
]]                                      //закрываем тег

Они могут быть прописаны в линию, так: [[!pdoResourcesr? &parents='5,10,11' &limit='7']] или быть расположенными в столбик.

[[!pdoResources?
&parents='5,10,11'
&limit='7'
]]

Параметры

Всем тегам предоставлена гипотетическая возможность иметь параметры. К примеру, у нас есть чанк с именем zdravstvujte и со следующим содержимым внутри:

Здравствуйте, [[+name]]!

В данном чанке есть плейсхолдер ([[+name]]), и мы к примеру хотим задать ему какие-нибудь значения.

Раньше, для осуществления данного действия требовалось, использование сниппета, который выполнит установку значения, и это было обязательным условием. Но теперь все существенно изменилось. Сейчас достаточно просто указать интересующее значение в параметрах чанка, пример:

[[$zdravstvujte? &name=`Василий`]]

В итоге получим следующее:

Здравствуйте, Василий!

Кэширование

В случае возникновения необходимости, можно установить обработку тега после каждой операции по запросу страницы. Просто поставьте восклицательный знак после квадратных скобок, без пробела.

[[!+placeholder]]
[[!$chunk]]
[[!*template_var]]
[[!snippet]]

Плейсхолдеры

Вызвав не кэшируемый плейсхолдер, можно осуществить установку сниппетом, интересующего плейсхолдера.

[[!Profile]]
Привет, [[!+username]].

Проверка синтаксиса

Проверка корректного написания тегов можно осуществить при помощи плагина SyntaxChecker.

Аналогичную функцию может выполнить редактор Ace, отличительной особенностью которого является подсветка синтаксиса тегов MODX.

Весь список тегов доступных для MODX Revolution можно найти в официальном руководстве на сайте rtfm.modx.com

Синтаксис зубрить не обязательно, по ходу курса вы его выучите на автомате, т.к. он будет использоваться везде и не раз. В следующем уроке изучим стандартные модификаторы, которые помогут нам в дальнейшем делать шаблоны более гибкими.

Можно вообще не использовать стандартный синтаксис модекса, т.к. в самом попопулярном дополнении — PdoTools добавлен шаблонизатор fenom со своим синтаксисом и модификаторами (ознакомьтесь с ним). Многие бывалые разработчики пишут все на чистом fenom. Можно использоваться сразу и феном и синтаксис MODX. Буду показывать и то и другое.

Поделиться с друзьями
Алексей

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

Оцените автора
( 2 оценки, среднее 4.5 из 5 )
Web-Revenue.ru
Добавить комментарий