Чанки |
- Statistics
- Participants
- Translate into Russian
- Translation result
- Translated in draft, editing and proof-reading required.
Чанки предназначены для многократного использования блоков HTML-кода внутри сайта. Чанки не могут содержать логических выражений, однако они могут содержать вызовы сниппетов, которые, в свою очередь, могут содержать логические выражения.
Использование
[[$chunkName]]
Кроме того, вы можете передавать значения при вызове чанка. Например, у вас есть чанк «intro» с таким содержимым:
Здравствуйте, [[+name]]. У вас [[+messageCount]] сообщений.
Вы можете заполнить эти значения следующим образом:
[[$intro? &name=`Вова` &messageCount=`12`]]
В результате вы получите:
Здравствуйте, Вова. У вас 12 сообщений.
Обработка чанка методами API
Чанки могут обрабатываться сниппетами с помощью функции process(); например, это код получает чанк «rowTpl»:
<tr class="[[+rowCls]]" id="row[[+id]]">
<td>[[+pagetitle]]</td>
<td>[[+introtext]]</td>
</tr>
и, используя массив свойств всех опубликованных ресурсов, переводит его в таблицу, устанавливая класс "alt" для чётных строк:
$modx->getCollection('modResource',array('published'));
$chunk = $modx->getChunk('rowTpl');
$i = 0;
$output = '';
foreach ($resources as $resource) {
$properties = $resource->toArray();
$properties['rowCls'] = $i % 2 ? '' : 'alt';
8.
$output .= $rowChunk->process($properties);
$i++;
}
return '<table><tbody>'.$output.'</tbody></table>';
Изменение чанка методами API
Чанками можно манипулировать с помощью MODx API:
<?php
/* создаём новый чанк, присваиваем ему некоторое содержимое и сохраняем в базу данных */
$chunk = $modx->newObject('modChunk');
$chunk->set('name','Мой новый чанк');
$chunk->setContent('<p>Это мой новый чанк!</p>');
$chunk->save();
//
/* получаем существующий чанк, изменяем его содержимое и сохраняем изменения в базу данных */
$chunk = $modx->getObject('modChunk', array('name' => 'MyExistingChunk'));
if ($chunk) {
$chunk->setContent('<p>Это новое содержимое для моего чанка!</p>');
$chunk->save();
}
//
/* получаем существующий чанк и удаляем его из базы данных */
$chunk = $modx->getObject('modChunk', array('name' => 'Устаревший'));
if ($chunk) $chunk->remove();
?>
