Приступаємо до найцікавішого - натяжки шаблонів на 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 оптимізації - дуже раджу.