Сниппет предоставляет широкие возможности в плане сортировки. Если обратиться к официальной документации, можно увидеть, что сортировать выходные данные можно при помощи:
Параметра sort:
&sort=`[{"sortby":"age","sortdir":"DESC","sortmode":"numeric"},{"sortby":"name","sortdir":"ASC"}]`
Параметра randomize:
&randomize=`1`
Понятно как они работают, все довольно прозрачно, удобно и, казалось бы, можно реализовать вывод элементов в любой комбинации, однако почему-то отсутствует возможность вывода элементов в обратном порядке. Это кажется еще более странным при наличии возможности вывода в случайном порядке. На одном из проектов потребовалось выводить элементы MIGx как в прямом, так и в обратном порядке относительно их расположения в админке. Не найдя решения на странице с документацией, полез в код сниппета с целью добавить пару строчек. Однако, как оказалось, они там уже есть, хотя почему-то в документации об этом не упоминается:
$reverse = $modx->getOption('reverse', $scriptProperties, '0');
...
if (!empty($reverse)) {
$items = array_reverse($items);
}
То есть getImageList позволяет изменить порядок вывода элементов на обратный относительно того, как они забиты в админке при помощи параметра reverse:
&reverse=`1`
Надеюсь, для кого-то эта информация окажется полезной.
Михаил 17.01.2017 21:45 #
Олег 17.01.2017 22:02 #
sortdir есть как параметр параметра sort, но он применяется применительно к какому-то из полей, а не к порядку, в котором э. То есть его можно использовать, если завести уникальное поле id, например, но это костыль… К тому же, если в админке местами строки поменять в TV — id тоже переназначать надо… Как-то не вариант.
А reverse разворачивает именно относительно порядка, в котором в админке записи находятся.
Михаил 17.01.2017 22:51 #
Я не говорил, что у сниппета есть такой параметр.
> А reverse разворачивает именно относительно порядка, в котором в админке записи находятся.
Тогда ладно.
Осталось сообщить об этом автору.
Олег 17.01.2017 23:07 #
>Я не говорил, что у сниппета есть такой параметр.
Тогда ладно. )
>Осталось сообщить об этом автору.
Ага, сообщил.
Олег 17.01.2017 23:06 #
Павел 29.01.2017 12:22 #