Чанки

modxcms.com, “Chunks”, public translation into Russian from English More about this translation.

Translate into another language.

Чанки предназначены для многократного использования блоков 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();

?>

Original (English): Chunks

Translation: © elastic, MWM, vovanbo, igor23, alc, salodar .

translated.by crowd

Like this translation? Share it or bookmark!