Создание чанка

Перед использованием чанка, вы должны создать его и придумать название, делается это в админке правой кнопкой мыши нажимаем на чанки и создаем новый чанк:

Создание чанка в MODx Revolution

Использование

Для использования чанка вы пишете ссылку на него в ваших шаблонах или на странице сайта. Формат ссылки:

[[$chunkName]] Эта ссылка заменяется содержимым чанка. Также вы можете передавать свойства чанку. Скажем есть у вас чанк ‘intro’ с содержимым:

Привет, [[+name]]. У тебя [[+messageCount]] сообщений. Вы можете придать значения свойствам чанка следующим образом:

[[$intro? &name=Жора &messageCount=12]] На выходе будем иметь запись:

Привет, Жора. У тебя 12 сообщений.

Можно также немного пойти вперед и использовать **переменную шаблона, **которая позволяет пользователю определять имя ресурса.

[[!$intro? &name=[[*usersName]] &messageCount=[[*messageCount]]]] или в чанке самом по себе

Привет, [[*usersName]]. У вас [[*messageCount]] сообщений. Офтоп: мне это напомнило Привет, %username% из д3, а вам?

Обработка чанка через API

Чанки часто используются для форматирования вывода сниппетов. Чанк может быть образован из снипета с помощью функции process(); Например, возмем чанк ‘rowTpl’:

[[+pagetitle]] [[+introtext]] следующий снипет извлекает его и обрабатывает вместе с массивом свойств для всех опубликованых ресурсов и возвращает отформатированные в виде таблицы результаты устанавливая класс «alt» для парных строк:

$resources = $modx->getCollection(‘modResource’,array(‘published’ => true)); $i = 0; $output = ‘’; foreach ($resources as $resource) { $properties = $resource->toArray(); $properties[‘rowCls’] = $i % 2 ? ’’ : ‘alt’; $output .= $modx->getChunk(‘rowTpl’,$properties); $i++; } return ‘

’.$output.’
’;

Изменение чанка с помощью API

Чанками можно манипулировать с помощью MODx API:

newObject('modChunk'); $chunk->set('name','NewChunkName'); $chunk->setContent('

This is my new chunk!

'); $chunk->save(); /* get an existing chunk, modify the content and save changes to the database */ $chunk = $modx->getObject('modChunk', array('name' => 'MyExistingChunk')); if ($chunk) { $chunk->setContent('

This is my existing chunks new content!

'); $chunk->save(); } /* get an existing chunk and delete it from the database */ $chunk = $modx->getObject('modChunk', array('name' => 'MyObsoleteChunk')); if ($chunk) $chunk->remove(); ?>

Теги используемые по умолчанию для вывода контента

В MODx Revolution каждая страница всегда имеет следующие поля для вывода контента, которые вы можете использовать при создании своих шаблонов. Кроме как для ID источников (ресурсов) и полей предка, они задаются пользователем при редактировании ресурса и могут быть просто пустыми если пользователь их не заполнил:

ТегОписаниеПримеры использования

*[[id]] ID ресурса страницы (устанавливается MODx при создании страницы) Часто используется в сочетании с ссылкой: Ссылка на эту страницу!

*[[pagetitle]] Название страницы

[[*pagetitle]]

*[[longtitle]] Длинное название страницы

[[*longtitle]]

*[[alias]] Псевдоним (алиас) страницы. Используется для создания URL страницы

*[[description]] Описание страницы.

*[[introtext]] Аннотация страницы. Часто используется сниппетами для аннотирования постов, например, Ditto 

[[*introtext]]

*[[parent]] ID страницы-предка (если таковая существует). Устанавливается MODx при создании страницы. Может быть изменена пользователем. Часто используется вместе с ссылкой, синтаксис Вверх к родительской странице

[[menutitle]] Название страницы в меню. *Чаще всего используется такими сниппетами, как*Wayfinder* *когда необходимо создать динамическое меню. *

*[[content]] Содержимое страницы.

[[*content]]

Другие теги

Эти теги представляют собой системные настройки, которые можно отрегулировать через меню Система (System)  -> Настройки системы (****System Settings).

ТегОписаниеПример использовани

[[++site_url]] Содержит URL вашего сайта, например http://www.yoursite.com/ Со многими CMS, которые опираются на разработки Apache является общей практикой включать базовый тег в хед страницы: 

[[++site_name]] Название сайта

[[++site_name]] | [[*pagetitle]]

[[++site_start]] Содержит ID станицы, определенной как «Главная» Часто используется в синтаксисе сочетания со ссылкой 

[[$chunk]] Это вызов чанка по имени. Чанки – это повторяемые части контента. Обычно чанками могут выступать хедер или футер.**

[[~link]] Используйте такой синтаксис для построения ссылок к страницам по их уникальному id (которые можно увидеть в родительских ресурсах возле имени страницы в дереве ресурсов). Эти ссылки не ломаются, даже если страницы передвигаются или переименовываются.