Сортировка pdoPage (категории по menuindex)
        Доброго дня!
Есть дерево ресурсов:
Каталог
-Категория 1
--Товар 1
--Товар 2
-Категория 2
--Товар 3
--Товар 4
-Категория 3
--Товар 5
--Товар 6
Как сделать чтобы при перемещении в админке категории 2 выше категории 1, сначала бы выводились товары категории 2, а потом с категории 1: Товар 3, Товар 4, Товар 1, Товар 2, Товар 5, Товар 6.
Сейчас вызов такой:
Порядок вывода товаров из категорий правильный (menuindex).
А порядок вывода категорий не меняется, при перемещении их в админке.
Буду очень благодарен за помощь
    
    
                                                                                
            Есть дерево ресурсов:
Каталог
-Категория 1
--Товар 1
--Товар 2
-Категория 2
--Товар 3
--Товар 4
-Категория 3
--Товар 5
--Товар 6
Как сделать чтобы при перемещении в админке категории 2 выше категории 1, сначала бы выводились товары категории 2, а потом с категории 1: Товар 3, Товар 4, Товар 1, Товар 2, Товар 5, Товар 6.
Сейчас вызов такой:
[[!pdoPage? 
    &element=`msProducts` 
    &limit=`24` 
    &parents=`[[*id]]` 
    &sortby=`{"parent":"ASC","menuindex":"ASC"}`
]]Порядок вывода товаров из категорий правильный (menuindex).
А порядок вывода категорий не меняется, при перемещении их в админке.
Буду очень благодарен за помощь
Комментарии: 7
                Правильно, вы ж сортируете их вначале по id родителя, а потом по menuindex товара. А при изменении menuindex у родителя его id же не меняется. 
Сначала получайте родителей, сортируя по menuindex, потом в чанке шаблона еще один вызов сниппета, уже для получения товаров.
                    Сначала получайте родителей, сортируя по menuindex, потом в чанке шаблона еще один вызов сниппета, уже для получения товаров.
                точно, спасибо!!!            
                    
                Логика на первый взгляд правильная была, но что делать с пагинацией?
Сначала как понимаю должен вызваться pdoResources, который вытаскивает правильный порядок категорий, а в чанке pdoResources вызывается pdoPage для каждой категории отдельно. В этом случае получается несколько блоков пагинаций (сколько категорий)
Ежели сначала pdoPage вызвать, то пагинация будет на количество категорий, а не товаров.((
                    Сначала как понимаю должен вызваться pdoResources, который вытаскивает правильный порядок категорий, а в чанке pdoResources вызывается pdoPage для каждой категории отдельно. В этом случае получается несколько блоков пагинаций (сколько категорий)
Ежели сначала pdoPage вызвать, то пагинация будет на количество категорий, а не товаров.((
                Решил так:
ID шаблона категорий — 3
ID шаблона товаров — 4
В шаблоне категории:
Чанк category_id:
Чанк category_id_tpl:
                    ID шаблона категорий — 3
ID шаблона товаров — 4
В шаблоне категории:
[[!pdoPage? 
&element=`msProducts` 
&limit=`24` 
&parents=`[[*id]]` 
&resources=`[[pdoResources?&element=`msProducts`&tpl=`category_id`&limit=`0`&parents=`[[*id]]`&sortby=`menuindex`&sortdir=`ASC`&where=`{"template":3}`]]`
&sortby=``
&sortdir=`ASC`
&where=`{"template":4}`
]]
[[!+page.nav]]Чанк category_id:
[[!pdoPage? 
        &element=`msProducts` 
        &tpl=`category_id_tpl` 
        &limit=`0` 
        &parents=`[[+id]]` 
        &includeTVs=`1`
        &sortby=`{"parent":"ASC","menuindex":"ASC"}`
        &where=`{"template":4}`
]] Чанк category_id_tpl:
[[+id]],            
                Да, если нужна пагинация, перечислить ресурсы хорошая мысль. В pdoResources можно указывать &return=`ids`, чтобы не мудрить с шаблонами.            
                    
                Спасибо)            
                    
                Сделал таким же методом, но немного по другому. Может кому пригодится.
Ключевая фраза в сортировке
                    Ключевая фраза в сортировке
&sortby=`FIELD(parent, [[+ids]])` т.е. сортируем по родителям и передаем список родителей.[[!pdoResources?
    &parents=`275`
    &return=`ids`
    &limit=`0`
    &where=`{"template":3}`
    &sortby=`{"menuindex":"ASC"}`
    &toPlaceholder=`ids`
]]
[[!pdoResources?
    &parents=`[[+ids]]`
    &tpl=`products_tpl`
    &limit=`0`
    &hideContainers=`1`
    &sortby=`FIELD(parent, [[+ids]])`
    &sortdir=`ASC`
    &limit=`0`
]]            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.