MIGX. getImageList группировка по полю
Приветствую.
Вывожу данные из MIGX используя getImageList.
Данные в таком формате:
Хотелось бы на выходе получать:
То есть сгруппировать по полю id.
Вообще в итоге это таблица, и хотелось бы сгруппировать строки с одинаковым значением id. Пока пришёл к решению задавать строкам класс:
и js группировать, но такой способ несёт за собой много проблем.
Можно ещё разбирать migx своим сниппетом и как душе угодно уже выводить, но может есть вариант решения стандартным getImageList?
Благодарю.
Вывожу данные из MIGX используя getImageList.
Данные в таком формате:
name | migx_id
------------
слон_1 | 10
слон_2 | 9
слон_3 | 9
слон_4 | 10
Хотелось бы на выходе получать:
10 => слон_1 | слон_4
9 => слон_2 | слон_3
То есть сгруппировать по полю id.
Вообще в итоге это таблица, и хотелось бы сгруппировать строки с одинаковым значением id. Пока пришёл к решению задавать строкам класс:
<tr class="group_[[+migx_id]]">...
и js группировать, но такой способ несёт за собой много проблем.
Можно ещё разбирать migx своим сниппетом и как душе угодно уже выводить, но может есть вариант решения стандартным getImageList?
Благодарю.
Комментарии: 1
Можно вместо getImageList написать свой сниппет gropMIGXList
[[*groups:gropMIGXList]]
<?php
if (!$input) return '';
if (!$list = $modx->fromJSON($input)) return '';
$groupped = array();
foreach ($list as $item) {
$groupped[$item['migx_id']][] = $item;
}
$output = array();
foreach ($groupped as $migx_id => $items) {
$rows = array();
foreach($items as $item) {
$rows[] = $modx->getChunk('tpl.row', $row);
}
$output[] = $modx->getChunk('tpl.wrapper', array('rows' => implode(PHP_EOL, $rows)));
}
return implode(PHP_EOL, $output)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.