Любой, кто начнет разбираться в Evolution, столкнется с новыми терминами.
Здесь мы отметим небольшие моменты, которые периодически можно подсматривать.
Шаблон - содержит общую верстку страницы со структурой и дизайном. Также в нем определяются места для вывода динамического содержимого. Для каждого документа можно выбрать свой шаблон.
Параметры (TV) - дополнительные параметры, которые подключаются к шаблону. Параметры могут быть разных типов (текст, ссылка, файл, дата, число и т.д.). Более подробно о типах ждите в следующих статьях.
Чанк - маленький шаблон, который может использоваться как просто для вывода какого-то содержимого (телефона на всех страницах), так и для обработки (шаблон отправляемого письма eForm, шаблон каталога выводимого Ditto и т.д.). Таким образом, вид (представление) информации отделяется от места обработки и легко управляется.
Сниппет - код для обработки информации. Анализируют полученную информацию (например, сообщение пользователя) и предоставляют результат (например, отправляют сообщение по почте, а пользователю показывают сообщение о результате). Сниппеты формируют меню (Wayfinder), выводят списки статей с разбиением на страницы (Ditto), строят формы (eForm). Для вывода используют Чанки.
Плагин - код, который запускается при наступлении какого-то события. Например, подсвечивает искомые слова (Search Highlighting) при переходе со страницы поиска. Событий много и их рассмотрение стоит отдельной статьи.
Для вывода динамических данных используются специальные теги.
[\*НазваниеПараметраTV\*] - выводит значение параметра в документе.
{{НазваниеЧанка}} - возвращает содержимое чанка.
[[название сниппета]] - возвращает результат работы сниппета.
Можно передавать сниппету дополнительные параметры, перечисляя их при вызове. Допустим, если мы хотим получить id текущего документа и обработать его в сниппете, то вызов может быть похож на этот:
[[название сниппета?docId=`[+id+]`]]
[+НазваниеПеременной+] - плейсхолдер - встречается в чанках, которые используются для обработки результатов работы сниппетов. После обработки вместо них вставляются значения. В примере выше вы видите, как в параметр docId для сниппета мы подставили системный плейсхолдер [+id+], в котором будет id текущего документа. Плейсхолдеры можно создавать самому.
Нюансы
На самом деле есть два варианта вызова сниппета:
Где использовать
Все очень гармонично используется друг с другом. В шаблонах можно использовать параметры TV, сниппеты и чанки. В чанках можно вызывать сниппеты, параметры TV и другие чанки. В сниппетах можно вызывать вообще все, но через PHP. В конечном счете вам вернется итоговый результат обработки всех сниппетов/чанков/параметровTV. На эту информацию опирается все остальное.
<!DOCTYPE html>
<html lang="[(lang_code)]">
{{head_tags}}
<body>
[*content*]
</body>
</html>
где head_tags это чанк со следующим содержимым:
<head>
<base href="[(site_url)]" />
<meta charset="[(modx_charset)]" />
<title>[*pagetitle*] / [(site_name)]</title>
</head>
А в поле [*content*] будет выведено содержимое страницы, заданное из админки.