Базовые принципы в
- Информация
- Описание
- Базовые принципы
Базовые принципы в
Любой, кто начнет разбираться в MODX столкнется с новыми терминами. Все довольно просто запоминается. А чтобы не приходилось запоминать, что и как пишется, мы все отметим здесь.
Также здесь мы отметим небольшие моменты, которые периодически можно подсматривать.
Терминология
Шаблон - содержит общую верстку страницы со структурой и дизайном. Также в нем определяются места для вывода динамического содержимого. Для каждого документа можно выбрать свой шаблон.
Параметры (TV) - дополнительные параметры, которые подключаются к шаблону. Параметры могут быть разных типов (текст, ссылка, файл, дата, число и т.д.). Более подробно о типах ждите в следующих статьях.
Чанк - маленький шаблон, который может использоваться как просто для вывода какого-то содержимого (телефона на всех страницах), так и для обработки (шаблон отправляемого письма eForm, шаблон каталога выводимого Ditto и т.д.). Таким образом, вид (представление) информации отделяется от места обработки и легко управляется.
Сниппет - код для обработки информации. Анализируют полученную информацию (например, сообщение пользователя) и предоставляют результат (например, отправляют сообщение по почте, а пользователю показывают сообщение о результате). Сниппеты формируют меню (Wayfinder), выводят списки статей с разбиением на страницы (Ditto), строят формы (eForm). Для вывода используют Чанки.
Плагин - код, который запускается при наступлении какого-то события. Например, подсвечивает искомые слова (Search Highlighting) при переходе со страницы поиска. Событий много и их рассмотрение стоит отдельной статьи.
Специальные теги
Для вывода динамических данных используются специальные теги.
Системные
[(site_name)] - название сайта
[(base_url)] или [(site_url)] - адрес сайта (https://modx-gu.ru/)
[(modx_charset)] - используемая кодировка
0,0000 s - время на запросы к базе данных
0 - запросов к базе данных
0,0000 s - время на работу PHP скриптов
0,4764 s - общее время на генерацию страницы
cache - источник содержимого (база или кэш)
Стандартные
[*pagetitle*] - заголовок документа
[*longtitle*] - расширенный заголовок документа
[*description*] - описание документа
[*introtext*] - аннотация документа
[*content*] - содержимое документа
[*alias*] - псевдоним документа
[*id*] - идентификатор (номер) документа
[*pub_date*] - дата публикации дкоумента
[*unpub_date*] - дата завершения публикации
[*createdby*] - Идентификатор пользователя создавшего документ
[*createdon*] - Дата создания документа
[*editedby*] - Идентификатор пользователя редактировавшего документ
[*editedon*] - Дата редактирования документа
[~идентификатор~] - URL указанного документа
Дополнительные
[*type*] - вариант (документ, папка или ссылка)
[*contentType*] - тип содержимого (например, text/html)
[*published*] - опубликован ли документ (1|0)
[*parent*] - номер (ID) родительского документа
[*isfolder*] - является ли документа папкой (1|0)
[*richtext*] - используется ли при редактировании документа визуальный редактор
[*template*] - номер (ID) используемого шаблона для документа
[*menuindex*] - порядковый номер отображения в меню
[*searchable*] - доступен ли документ для поиска (1|0)
[*cacheable*] - Кэшируется ли документ (1|0)
[*deleted*] - Документ удален (1|0)
[*deletedby*] - Идентификатор пользователя удалившего документ
[*menutitle*] - Заголовок меню. Если не используется, то заголовок документа
[*donthit*] - Слежение за количеством посещений отключено (1|0)
[*haskeywords*] - Документ содержит ключевые слова (1|0)
[*hasmetatags*] - Документ имеет метатеги (1|0)
[*privateweb*] - Документ входит в частную группу пользовательских документов (1|0)
[*privatemgr*] - Документ входит в частную группу менеджерских документов (1|0)
[*content_dispo*] - Вариант выдачи содержимого (1 - для отображения | 0 - для скачивания)
[*hidemenu*] - Документ не отображается в меню (1|0)
Параметры TV, сниппеты и чанки
[*НазваниеПараметраTV*] - выводит значение параметра в документе.
{{НазваниеЧанка}} - возвращает содержимое чанка.
- возвращает результат работы сниппета. Также можно передавать сниппету дополнительные параметры, перечисляя их при вызове -
[+НазваниеПеременной+] - встречается в чанках, которые используются для обработки (Ditto, eForm и т.д.). После обработки вместо них вставляются значения. Таким образом, это тоже вроде мини-языка, но для сниппетов.
Нюансы
1) На самом деле есть два варианта вызова сниппета:
- кэшируемый вызов сниппета
[!НазваниеСниппета!] - некэшируемый вызов сниппета
2) При использовании дополнительных параметров в сниппете нужно убедиться, что запись не разбивается переносом строки. Если это так, то сниппет откажется работать.
Где использовать
Все очень гармонично используется друг с другом.
В шаблонах можно использовать параметры TV, сниппеты и чанки.
В чанках можно вызывать сниппеты, параметры TV и другие чанки.
В сниппетах можно вызывать вообще все, но через PHP.
В конечном счете вам вернется итоговый результат обработки всех сниппетов/чанков/параметровTV.