Shaffle parents

Привет.

Как мне перемешать в случайном пордяке $parents с сохранением index при вызове getResources?
Понимаю что надо использовать shuffle, но не могу заставить работать…

{var $parents = $_modx->getResources(
    ['published' => 1, 'deleted' => 0, 'isfolder' => 1],
    ['select' => 'id,longtitle','parents' => 24,'limit' => 7])}

{foreach $parents as $parent index=$index}



{var $childs = $_modx->getResources(
    ['published' => 1, 'deleted' => 0, 'parent' => $parent.id], 
    ['select' => 'id,longtitle,introtext', 'sortby' => 'rand()','limit' => 1,'includeTVs' => 'img','tvPrefix' => '','processTVs' => 1])}

        {if $childs}
			{foreach $childs as $child}
******
			
{/foreach}			

{/foreach}
По сути: мне нужно вывести из 8 разделов (parents) по одному потомку (child) в случайном порядке, при этом рандомно и разделы и потомков
Григорий
18 апреля 2021, 10:50
modx.pro
509
0

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

Артур Шевченко
18 апреля 2021, 10:58
+1
Почему бы ни использовать pdoResources и sortby=RAND().
    Григорий
    18 апреля 2021, 11:14
    0
    sortby=RAND()
    выдает мне разное количество, а мне нужно вывести строго точно число анонсов.
      Артур Шевченко
      18 апреля 2021, 14:02
      0
      Возможно getResources и выдает разное количество, pdoResources выводит ровно столько ресурсов сколько указана в limit.
      Григорий
      18 апреля 2021, 11:21
      0
      Задачка нетривиальная: нужно вывести из 8 разделов (parents) по одному потомку (child) в случайном порядке, при этом рандомно и разделы и потомков.
        Роман
        19 апреля 2021, 08:57
        0
        GROUP BY parents
      Артур Шевченко
      19 апреля 2021, 21:39
      0
      Я думаю тут только кастомный сниппет поможет, который будет выбирать случайным образом 8 родителей, а потом в цикле 8 потомков. Если бы можно было бы 8 потомков выбрать так чтобы от одного родителя было скажем 2, а от другого ни одного, тогда можно и без цикла.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6