Руководство к быстрому старту MODX Revolution

11 февраля 2023 Для начинающих

Небольшое руководство к старту на MODX. Часто приходится в MODX заглядывать другим разработчикам и они врываются в чат с вопросами "а где что и как?". Будем разбираться с иерархией.

Ресурсы - это первая вкладка и в общем-то первая отправная точка, которая представляет из себя страницу у которой есть готовый набор полей, она открывается по пути который записывается в alias и uri - текущий алиас страници и полный URL соответственно. Имеет собственную таблицу site_content. К ресурсу привязывается шаблон.

Шаблоны - это то место где пишется только html код из которого формируется страница. Здесь программист по сути собирает внешний вид будущей страницы, которая покажется пользователю. Шаблон не разрывно связан с ресурсом и подхватывается следом после определения его. Т.к. в Шаблоне пишется код html с разметкой для парсера MODX или Fenom, то на перед скажу что для помощи в оформлении страницы уже идут следующие сущности (обьекты, части называйте как хотите):

  • Чанки - По природе своей это тоже только html части кода, которые вставляются в шаблон на прямую или через сниппет.
  • Сниппеты - являются собой кодом php. Напоминают собой функции в php. А в функции мы можем передавать данные и получать ответ от них. Таким образом механизм такой: в сниппет передаются какие-то параметры и в зависимости от них он возвращает как правило html. Но может возвращать все что угодно - Json, csv, строку, массив и т.д. Сниппеты не зависят от чего либо и вызываются в чанках, шаблонах как самостоятельные единицы. Параметры или данные которые передаются в сниппет могут быть тоже любые. Например id ресурса, id шаблона, имя чанка, имя дополнительных полей, чтобы вытащить из них данные и т.п. 
  • Дополнительные поля - дополнительные данные которые зависят от Шаблона, есть место где настраивается принадлежность каждого дополнительного поля Шаблону. А уже в ресурсе эти поля заполняются данными в зависимости от Шаблона к которому привязаны конкретные TV. А по сути эти TV представляют собой поля в которые обычно вписывают еще какие-то отдельные данные для ресурса, например имя автора, свойства товара, дополнительное текстовое описание и прочее.) Получается такой "пирог" зависимостей.

Отдельная сущность - Плагины. Из названия понятно что это код php который срабатывает в зависимости от события, которое наступило в системе. Этих событий очень много их можно встраивать и в сниппеты. Примеры событий - запрос в систему, инициализация modx, сохранение ресурса, сохранение Шаблона и т.п. И в каждом плагине в зависимости от его назначения доступны будут какие-то переменные php, обычно они описаны в документации к пакету или самой системе MODX.

Парсер MODX.

Их называют плейсхолдерами. По сущности это переменные. Могут быть глобальными и не глобальным. Выглядят так: 

Руководство к быстрому старту MODX Revolution, [[+description]].

Есть системные плейсхолдеры (это так называемые настройки системы) вызываются с 2я плюсиками: ModxPlace - blog

Подробнее о том какой синтаксис имеет парсер можно посмотреть вот тут.

Парсер Fenom.

Не встоен в ядро MODX. А встроен в бесплатный пакет pdoTools. После установки пакета и включения настройки pdotools_fenom_parser в ДА, в системе можно использовать шаблонизатор fenom на полную катушку. По синтаксису похож на smarty. Документация тут.