Перед использованием чанка, вы должны создать его и придумать название, делается это в админке правой кнопкой мыши нажимаем на чанки и создаем новый чанк: Использование Для использования чанка вы пишете ссылку на него в ваших шаблонах или на странице сайта. Формат ссылки: Код: [[$chunkName]] Эта ссылка заменяется содержимым чанка. Также вы можете передавать свойства чанку. Скажем есть у вас чанк ‘intro’ с содержимым: Код: Привет, [[+name]]. У тебя [[+messageCount]] сообщений. Вы можете придать значения свойствам чанка следующим образом: Код: [[$intro? &name=`blabla` &messageCount=`12`]] На выходе будем иметь запись: Привет, blabla. У тебя 12 сообщений. Можно также немного пойти вперед и использовать переменную шаблона, которая позволяет пользователю определять имя ресурса. Код: [[!$intro? &name=`[[*usersName]]` &messageCount=`[[*messageCount]]`]] или в чанке самом по себе Код: Привет, [[*usersName]]. У вас [[*messageCount]] сообщений. Обработка чанка через API Чанки часто используются для форматирования вывода сниппетов. Чанк может быть образован из снипета с помощью функции process(); Например, возмем чанк ‘rowTpl’: Код: <tr class="[[+rowCls]]" id="row[[+id]]"> <td>[[+pagetitle]]</td> <td>[[+introtext]]</td> </tr> следующий снипет извлекает его и обрабатывает вместе с массивом свойств для всех опубликованых ресурсов и возвращает отформатированные в виде таблицы результаты устанавливая класс «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 '<table><tbody>'.$output.'</tbody></table>'; Изменение чанка с помощью API Чанками можно манипулировать с помощью MODx API: Код: <?php /* create a new chunk, give it some content and save it to the database */ $chunk = $modx->newObject('modChunk'); $chunk->set('name','NewChunkName'); $chunk->setContent('<p>This is my new chunk!</p>'); $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('<p>This is my existing chunks new content!</p>'); $chunk->save(); } /* get an existing chunk and delete it from the database */ $chunk = $modx->getObject('modChunk', array('name' => 'MyObsoleteChunk')); if ($chunk) $chunk->remove(); ?>