Небольшое руководство к старту на 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. Документация тут.