Синтаксис тэгов
Синтаксис тэгов MODx Revolution.
Оглавление
Теги — это основные рабочие элементы MODx для пользователя сайта.
Указывая теги на странице, вы можете вызвать какой-то кусок HTML или PHP кода, текст из словаря, или переменные документа.
Для упрощения логики работы парсера, увеличения производительности и избежания путаницы с составными тегами синтаксис тегов разных элементов сведен к одному принципу: все теги объявляются в квадратных скобках, а тип тега определяется символом перед наименованием.
Теги в MODx
В MODx присутствует удобный массив тегов, различаемых токеном или набором токенов.
Для элементов и полей
Элемент | Токен | Пример | Использование |
Поля ресурсов | * |
[[*pagetitle]] |
Выводит значение поля текущего ресурса. |
Дополнительные поля (TV) | * |
[[*tvName]] |
Выводит значение дополнительного поля ресурса. |
Чанки | $ |
[[$header]] |
Определяет статический фрагмент кода. |
Сниппеты | [[snippetName]] |
Определяет выполняемый сниппет с PHP кодом. |
Для вывода контента
Элемент | Токен | Пример | Использование |
Плейсхолдеры | + |
[[+modx.user.id]] |
Определяет плейсхолдер для вывода результатов значений. |
Ссылки | ~ |
[[~link]] |
Возвращает ссылку. |
Системные настройки | ++ |
[[++site_start]] |
Выводит значение системной настройки, в качестве имени настройки используется её ключ. |
Лексиконы/словари | % |
[[%language]] |
Выводит значение лексиона по его имени. Текущий язык определяется в системной настройке cultureKey . |
Комментарии | - |
[[- Это комментарий]] |
Определяет неразобранный комментарий. Этот комментарий не будет отображен во фронтенде. |
Теги обрабатываются по мере их появления, независимо от типов элементов, которые они представляют, и встроенные теги обрабатываться перед внешним тегом (то есть обработка сложных тегов идет изнутри), что позволяет прописывать гораздо более сложные составные теги.
Для системных значений парсера MODx
Описание | тег |
Выводит время потраченное на запросы к базе данных. | [^qt^] |
Выводит количество запросов к базе данных. | [^q^] |
Выводит время потраченное на работу PHP скриптов. | [^p^] |
Выводит общее время потраченное на генерацию страницы. | [^t^] |
Выводит источник содержимого (база данных или кэш). | [^s^] |
Разбор тега MODx
Тег MODX может быть расширен за счет дополнительных индикаторов и свойств. Приведенная ниже таблица полностью разбирает тег MODx и иллюстрирует, как и где можно использовать эти необязательные индикаторы и свойства.
Тип | Использование |
[[ |
Определяет открытие тега MODx. |
! |
Необязательный флаг, указывает что тег вызван некэшируемым. |
Token |
Необязательный флаг. Определяет тип элемента.
Смотрите выше для большего количества вариантов токенов. |
Name |
Имя значения запрашиваемого элемента. |
@propertyset |
Определяет набор свойств. |
:modifier=`value` |
Определяет выходной фильтр или модификатор, который будет использоваться. Например: :gt=`0`:then=`Now available!` |
? |
Указывает MODx, что в вызове содержаться параметры. |
&property=`value` |
Определяет параметр и его значение, которое будет использоваться в вызове. Каждый набор свойств разделен амперсандом (& ).Например: &prop1=`1` &prop2=`2` |
]] |
Определяет закрытие тега MODx. |
Построение тега MODx
Эти теги могут прописываться в одну линию или располагаться на нескольких строках для удобства. Оба варианта однозначны:
[[!getResources? &parents=`123` &limit=`5`]]
[[!getResources?
&parents=`123`
&limit=`5`
]]
Параметры тегов
Все теги (а не только сниппеты) могут иметь параметры. Например, у нас есть чанк Hello
:
Привет, [[+name]]!
В чанке есть плейсхолдер. Мы хотим задать значение для этого плейсхолдера. Раньше нужно было использовать сниппет, который установит это значение. Но не теперь. Просто укажите нужное значение в параметрах чанка:
[[$Hello? &name=`Сергей`]]
На выходе мы получим:
Привет, Сергей!
Кэширование
Мы можем указать, что тег нужно обрабатывать после каждого запроса страницы (иными словами — не кэшировать). Для этого нужно просто поставить восклицательный знак сразу после открывающихся квадратных скобок:
[[!snippet]]
[[!$chunk]]
[[!+placeholder]]
[[!*template_var]]
Время запросов: 0,1342 s
Количество запросов: 24
Источник: cache