getChunk - подменяет параметры в чанке. Помимо этого в чанке так же обработаются вызванные сниппеты.
ВАЖНО - если вы не используете вызовы других сниппетов в обрабатываемом чанке, то лучше
использовать метод parseChunk, это сэкономит ресурсы потому что parseChunk не обрабатывает вложенные сниппеты.
Пример использования:
Создаем чанк "WelcomeChunk" с содержимым:
Привет [[+name]]!
Помещаем в сниппет:
<?php
$output = $modx->getChunk('WelcomeChunk',array(
'name' => 'Петя',
));
return $output;
Каждый ключ переданный в ассоциативном массиве будет обработан методом и в результате мы получим
Привет Петя!
Описание метода:
string getChunk (string $chunkName, [array $properties = array ()])
$chunkName - название чанка
$properties - обычный ассоциативный массив который будет обработан в качестве заполнителя для чанка.
<?php
$properties = array('key' => 'value');
Так же ассоциативный массив $properties может быть многомерным:
<?php
$properties = array(
'user' => array('id' => 1),
'document' => array('id' => 27)
);
// or:
$properties['user']['id'] = 1;
$properties['document']['id'] = 27;
В случае с ассоциативным массивом мы сможем получить данные с помощью следующих ключей [[+user.id]] и [[+document.id]].
Парсим строку:
Иногда может потребоваться разбить сроку на параметры и вывести результат. Этот вариант не использует getChunk, но он тестно с ним связан. И хотя такой вариант будет работать медленне чем разбор с помощью str_replace, но он намного удобнее.
<?php
$tpl = 'Привет мое имя [[+name]]';
// Свойства
$props = array('name' => 'Павел');
// Создаем чанк налету
$uniqid = uniqid();
$chunk = $modx->newObject('modChunk', array('name' => "{tmp}-{$uniqid}"));
$chunk->setCacheable(false);
$output = $chunk->process($props, $tpl);