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?
Благодарю.
Александр
26 января 2016, 11:17
modx.pro
2
2 508
0

Комментарии: 1

Илья Уткин
26 января 2016, 15:33
1
+2
Можно вместо 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)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1