Принципи шаблонізаціі modx

Приступаємо до найцікавішого - натяжки шаблонів на MODx. Для того, щоб почати, спочатку потрібно зрозуміти, як працює парсер MODx. Раніше, коли сайти тільки починали робити динамічними, коди HTML, JS, CSS і PHP були упереміш, що ускладнювало розуміння роботи системи і код був вкрай нечитабельним (насправді з тих часів не багато що змінилося, подивіться на код шаблонів Wordpress або Joomla! ). Наприклад, було ось так:

Логіка ж MODx розбиває контролер і відображення, тобто якщо в коді у нас PHP, то коду HTML там бути не повинно.

Робота MODx парсеру дуже проста - він шукає в шаблонах і чанка своєрідні теги і замінює їх на конкретні значення. Якщо уявити приклад на PHP, то вийде приблизно такий код:

Ресурс - це абстракція MODx. В основному сторінки сайту, але також вони можуть бути TXT-документами, XML-документами. Вміст ресурсу може містити теги MODx.

Шаблон - це HTML-код, який може містити теги MODx. Шаблон прив'язується до ресурсу, ресурс виводиться саме так, як зроблена розмітка в шаблоні. Так що коли будете створювати ресурси і переглядати їх, а у відповідь будете бачити, наприклад, головну сторінку, то варто перевірити чи вірний шаблон стоїть біля ресурсу.

Чанк - шматок HTML-коду, який містить теги MODx.

Сніппет - шматок PHP-коду. Не містить теги MODx.

Плагін - шматок PHP-коду, які виконуються по настанню будь-якого системного події. Не містить теги MODx.

ТВ-параметр - дослівно, змінна шаблону. Це додаткове поле ресурсу.

ТегMODx - це будь-який тег, укладений в дужки # 91; # 91; і # 93; # 93;

У шаблонах і чанка парсер MODx шукає такі ключові слова:

  • # 91; # 91; * tag # 93; # 93; - тег поля ресурсу, наприклад заголовка (# 91; # 91; * pagetitle # 93; # 93;) або вмісту сторінки (# 91; # 91; * content # 93; # 93;). Це завжди значення поточної сторінки.
  • # 91; # 91; + tag # 93; # 93; - плейсхолдер, заповнюється результатом роботи кокого-небудь сниппета або плагіна.
  • # 91; # 91;% tag # 93; # 93; - тег словника.
  • # 91; # 91;

Важливо пам'ятати, що парсер MODx - штучка рекурсивна, вона буде працювати до тих пір поки на виході не зникнуть всі теги MODx. Тому не слід робити викликів більш 3-го ступеня вкладеності. В іншому випадку, сайт буде помітно гальмувати.

Стандартний шаблон MODx, до недавнього часу, виглядав ось так:

Інтегруємо базові шаблони з нашого архіву

Тепер необхідно завантажити файли шаблону на сервер (або скопіювати їх в директорію з сайтом, якщо ви робите сайт локально). Для цього копіюємо все, що знаходиться в папці / assets / шаблону в папку / assets / MODx.

  • Шапка сайту (чанк header)
  • Футер (чанк footer)
  • Скрипти (їх не видно, але вони для всіх шаблонів будуть одні - чанк scripts)
  • Вміст між тегами (Чанк meta)

Ось який код чанка у мене вийшов:

Тепер створимо чанк "header". У нього ми помістимо весь код від тега

до
. Код громіздкий, публікувати його не буду.

Створюємо чанк "footer". У нього поміщаємо все від тега

до тега
. Код громіздкий, публікувати його не буду.

І створюємо чанк "scripts". У нього поміщаємо всі скрипти:

Таким чином, ми розбили шаблон на частини. Тепер на місця того коду, який ми прибрали в чанкі, вставляємо теги MODX, які будуть повідомляти системі, що на ці місця потрібно вставити код з чанкі. Теги будуть наступні:

  • Blog.html (шаблон "Статті")
  • Blog-post.html (шаблон "Пост")

Ось, власне, і все, що я хотів описати в даному уроці. Сподіваюся, у вас все вийшло!

Оцініть статтю:

Вітаю! Робив все по вашій інструкції. Все виходило, ось виникла проблема. Коли я натискаю статтю, там шаблон не змінюється на шаблон статті, він на вигляд як шаблон «головна сторінка» Я все перевірив, не можу зрозуміти в чому проблема, всюди вказав правильні шаблони і все створив, але все одно щоб не натиснув, завжди шаблон показує на сайті вони і той же, що в статті, що в блозі, що на головній ... Допоможіть будь ласка, в чому може бути проблема?

Здравствуйте! Підкажіть будь ласка, як зробити чанк meta. таким чином щоб можна було для кожної сторінки сайту заповнювати мета-теги унікальним контентом. Це ж необхідно для оптимізації сайту. Я поки на жаль дуже мало знайома з CMS modX, до цього моменту більше оптимізацією займалася) Також ВИ не уточните, чи є в modX проблема з дублями сторінок? І також може ВИ зможете порадити, як краще реалізувати пошук на сайті, щоб уникнути дублів сторінок з використанням модулів modX.Чуть не забула. Сайт планую робити на modX Revolution.

Мета-теги реалізуються за допомогою TV-параметрів. Проблема з дублями є як і у будь-який інший CMS, вирішується проблема прописування 301 редиректів. Пошук можна реалізувати як за допомогою платного mSearch2, так і безкоштовного SimpleSearch. В цілому MODx дуже гнучка система як в плані масштабування, так і в плані SEO оптимізації - дуже раджу.