В мае 2018 года у сниппета pdoResources нет стандартной возможности разбить вывод на 2 равные части. Но зато у нас есть возможность написать простой сниппет для реализации наших необузданных желаний!
[[!pdoResources?
....
&toSeparatePlaceholders=`column_item_`
]]
[[!printColumnItem?
&placeholderName=`column_item_`
&colums=`2`
&wrapperTpl=`blog_colum_wr`
]]
Пишем сниппет printColumnItem:
$phn = $placeholderName;
$colums = (int)$colums ? (int)$colums : 2;
if(empty($wrapperTpl)){
echo "Для сниппета printColumnItem не указан параметр wrapperTpl";
}
if(empty($placeholderName)){
echo "Для сниппета printColumnItem не указан параметр placeholderName";
return;
}
foreach ($modx->placeholders as $key => $ph) {
if (strpos($key, $phn) === 0 && $key != $phn."log") {
$placeholders[$key] = $ph;
}
}
$output = "";
foreach(array_chunk($placeholders, count($placeholders) / $colums) as $column){
$data = "";
foreach($column as $v){
$data .= $v;
}
$output .= $modx->getChunk($wrapperTpl,array('output' => $data));
}
return $output;
Пример чанка blog_colum_wr:
<div class="col-sm-12 col-md-6">[[+output]]</div>
Скажите, а как в этом случае ограничить количество записей в блоке?
<?php $phn = $placeholderName; $colums = (int)$colums ? (int)$colums : 2; $cols = array(); if(empty($placeholderName)){ echo "Для сниппета printColumnItem не указан параметр placeholderName"; return; } foreach ($modx->placeholders as $key => $ph) { if (strpos($key, $phn) === 0 && $key != $phn."log") { $placeholders[$key] = $ph; } } $qw = 0; foreach(array_chunk($placeholders, count($placeholders) / $colums) as $column){ $data = ""; foreach($column as $v){ $data .= $v; } $cols['column'.(++$qw)] = $data; } $modx->setPlaceholders($cols); return;В вызове mFilter2
Делаю все по инструкции, но при использовании toSeparatePlaceholders сыпятся ошибки
'parents' => '1',
'limit' => '10',
'sortby' => 'pagetitle'
'toSeparatePlaceholders' => 'column_item_'
]}