Той, хто почне розбиратися з Evolution, зіткнеться з новими термінами.
Тут ми відзначимо невеликі моменти, які періодично можна підглядати.
Шаблон - містить загальну верстку сторінки зі структурою і дизайном. Також, в ньому визначаються місця для виведення динамічного вмісту. Для кожного документа можна вибрати свій шаблон.
Параметри (TV) - додаткові параметри, які підключаються до шаблону. Параметри можуть бути різних типів (текст, посилання, файл, дата, число тощо). Більш докладно про типи чекайте в наступних статтях.
Чанк - маленький шаблон, який може використовуватися як просто для виведення якогось вмісту (телефону на всіх сторінках), так і для обробки (шаблон листа eForm, шаблон каталогу Ditto тощо). Таким чином, вид (подання) інформації відділяється від місця обробки і легко управляється.
Сніпет - код для обробки інформації. Аналізує отриману інформацію (наприклад, повідомлення користувача) і надають результат (наприклад, відправляють повідомлення поштою, а користувачеві показують повідомлення про результат). Сніпети формують меню (Wayfinder), виводять списки статей з розбивкою на сторінки (Ditto), будують форми (eForm). Для виведення використовують Чанки.
Плагін - код, який запускається при настанні якоїсь події. Наприклад, підсвічує шукані слова (Search Highlighting) при переході зі сторінки пошуку. Подій багато і їх розгляд вартий окремої статті.
Для виведення динамічних даних використовуються спеціальні теги.
[\*НазваПараметраTV\*] - виводить значення параметра в документі.
{{НазваЧанка}} - повертає вміст чанка.
[[назва сніпета]] - повертає результат роботи сніпета.
Можна передавати сніпету додаткові параметри, перераховуючи їх при виклику. Припустимо, якщо ми хочемо отримати id поточного документа і обробити його в сніпеті, то виклик може бути схожий на цей:
[[назва сніпета?docId=`[+id+]`]]
[+НазваЗмінної+] - плейсхолдер - зустрічається в чанках, які використовуються для обробки результатів роботи сніпетів. Після обробки замість них вставляються значення. В наведеному вище прикладі ви бачите, як в параметр docId для сніпета ми підставили системний плейсхолдер [+id+], в якому буде id поточного документа. Плейсхолдери можна створювати самому.
Нюанси
Насправді є два варіанти виклику сніпета: 1.[[НазваСніпета]] - Кешований виклик сніпета 2.[!НазваСніпета!] - Некешований виклик сніпета
Де використовувати
Все дуже гармонійно використовується одне з одним. В шаблонах можна використовувати параметри 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*] буде виведено вміст сторінки, заданий з адмінки.