Синтаксис тегов в MODx Revolution
Рассмотрим основной синтаксис встроенных тегов MODx Revo. Все встроенные теги должны обрамлятся двумя квадратными скобками с левой и правой стороны, к примеру [[test]]. Ниже приведена таблица с возможными применениями синтаксиса:
Элемент | Синтаксис | Пример |
---|---|---|
Поля ресурса ( Resource Fields ) стандартные поля страниц, типа заголовка или контента | [[*field]] | [[*pagetitle]] выведет заголовок страницы |
TV-поле ( Template Variables ) дополнительные поля страниц | [[*templatevar]] | [[*tags]] выведет содержимое дополнительного поля tags |
Чанк ( Chunk ) отдельные кусочки html-кода | [[$chunk]] | [[$footer]] выведет содержимое чанка footer |
Сниппет ( Snippet ) отдельные скрипты php | [[snippet]] | [[getResources]] выведет закешированный результат работы сниппета getResources |
Плейсходер ( Placeholder ) подставляет результаты работы какого-нибудь сниппета | [[+placeholder]] | [[+modx.user.id]] выведет id текущего авторизированого пользователя |
Ссылка ( Link ) динамически генерирует ссылку до указанного документа по id | [[~link]] | [[~1]] Создаст ссылку до ресурса с id = 1 |
Настройки контекста ( System Settings ) выводит активный параметр используемого контекста | [[++system_setting]] | [[++site_url]] Выведет ссылку на сайт |
Комментарий ( Comment ) комментрий для используемого тега | [[tag?-comment]] | [[*id?-id текущей страницы]] носит описательный характер для разработчика |
Структура тегов
Каждый тег может содержать несколько частей, ниже тег разбит на возможные части:
В целом, как то так: [[!name:lcase?name=`Вася`-выводим приветствие]] - здесь мы обращаемся к сниппету с именемname, переводим регистр символов в нижний регистр с помощью phx ( lcase ), задаем параметр name равный "Вася" и комментируем для себя что это значит
Параметры
Параметры можно передавать не только в сниппеты, но и в чанки, например у нас есть чанк hello:
Привет, [[+name]]!
В шаблоне выведем чанк таким образом:
[[$hello?name=`мир`]]
Результат примера будет: Привет, мир!
При передаче параметра в снипет, данные записываются в массив $scriptProperties.
Self checking
Для автоматической проверки синтаксиса, можно установить плагин SyntaxChecker.