ВК
версия для слабовидящих

Чанки, сниппеты и tv-поля.

В прошлом уроке мы добавили вёрстку в шаблон модэкса. В этом поговорим о добавлении в шаблон тегов модэкса и для чего они применяются.

Чанк — кусок чистого html кода, который может включать в себя теги MODX. Он является своеобразным "кирпичом" для дизайна сайта. В него помещаются повторяющиеся части кода для вызова в разных шаблонах. Помогает быстро редактировать код.

Сниппет — кусок чистого php кода, не включает в себя теги MODX.

Плагин — кусок чистого php кода, можно сказать сниппет, который вызывается при разных системных событиях. Его нельзя вызвать вручную в шаблоне или чанке, он вызывается системой при определенном событии.

TV — дополнительное поле ресурса, расположенное в отдельной таблице базы данных. Помогает расширять шаблон для каждого ресурса. Например: поле "цена" в интернет-магазине.

Категория — это группа.

Теги MODX

  • — тег поля ресурса, например заголовка или содержимого страницы. Это всегда значение текущей страницы.
  • — плейсхолдер, предназначенный для заполнения какими-то данными при работе сниппета, например вывод дочерних ресурсов. Это всегда значение не текущей страницы, а чего-то другого, что вы берете для наполнения.
  • — запись из системного словаря, меняет свое значение в зависимости от языка сайта.
  • — ссылка на страницу, принимает id этой самой страницы.
  • — комбинированный плейсхолдер, то есть поле страницы вложено в ссылку и мы получаем ссылку на текущую страницу.
  • — данные из системных настроек, например название сайта, кодировка, или язык.
  • — некэшированный тег, он откладывается парсером в сторонку обрабатывается в последнюю очередь. К любому тегу можно приставить восклицательный знак и сделать его.
  • — отключенный тег, не обрабатывается движком. К любому тегу нужно приставить тире.
  • — хитрые теги FastField, которых нет в MODX по умолчанию, для них нужно установить pdoTools или FastField. Применяются когда например необходимо взять информацию (для примера содержимое поля content определенной страницы) и вывести ее в конкретном месте.

Итак, в получившийся на прошлом уроке шаблон необходимо добавить эти теги. Начнем с чанков. Код шаблонов имеет одинаковые куски кода. Например шапка, меню или подвал сайта. Их можно поместить в чанк и вызывать в остальных шаблонах нашего сайта.

 

Для примера рассмотрим как можно поместить содержимое HTML-тега header в чанк. Я полностью вырезаю содержимое и правой кнопкой мыши всплывающим окном создаю новый чанк. В него пишу название и вставляю код. Название я придумываю самостоятельно, так чтобы не только я мог его понять и найти. Имя чанка пишу на английском без пробелов. Теперь в любом другом шаблоне на сайте я могу вызвать этот чанк и мне не нужно заново писать его код. Ещё один вариант использования этого тега - шаблоны вывода для сниппета. Например, в пакете AjaxForm есть готовые чанки, которыми можно сразу вывести форму заявки. Также есть возможность назначить свой.

Параметры чанков

Любой чанк может иметь параметры своего вызова. Их можно использовать различными способами. 

 

Условия

Мы можем использовать условия вывода того или иного чанка в зависимости от того, что нам нужно.

Пример 1. Необходимо вызвать чанк chunk1 на одной странице. А во всех остальных страницах, использующих этот же шаблон использовать chunk2.

Вводим условие с проверкой idстраницы.

 

В 

Пример 2.

Необходимо вызвать определенный чанк в зависимости от родителя. Это часто необходимо в различных магазинах при выводе акций или условий предоставления.

 

Сниппеты

Плавно переходим к самим сниппетам. Если раньше мы говорили про статичный код html с тегами самой cms, то тут у нас php.