Сортировка по tv pdoMenu

Добрый день.
Сайт имеет достаточно разветвленную структуру. В верхнее меню нужно вытащить особо важные элементы и расставить их в нужно порядке, не по menuindex.
Для этого создал 2 tv:
  1. in-mainmenu — checkbox определяющий нахождение ресурса в главном меню
  2. menuorder — числовое значение определяющее сортировку в меню
Вывод меню такой
[[!pdoMenu?
    &parents=`0`
    &level=`0`
    &includeTVs=`menuorder,in-mainmenu`
    &prepareTVs=`1`
    &processTVs=`1`
    &where = `{"in-mainmenu:=":"1"}`
    &sortby=`menuorder`
    &sortdir=`DESC`
    &tpl=`@INLINE <li [[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]] {[[+menuorder]]}</a>[[+wrapper]]</li>`
]]
Проблема заключается в том, что при параметре
&sortdir=`DESC`
пункты выводятся в нужном, но обратном порядке (картинка 1), а если установить
&sortdir=`ASC`
, то идут так, как выбираются по menuindex (картинка 2).

&sortdir=`DESC`

&sortdir=`ASC`

Что я упускаю из виду, буду очень признателен за помощь.

PS. ModX — 2.7.3, pdoTools — 2.12.6
Александр Быковский
16 июня 2020, 10:01
modx.pro
155
0

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

Наумов Алексей
16 июня 2020, 11:29
0
Обычно меню статичные и крайне редко меняются…
Просто укажите в параметре resources нужные ресурсы, а сортировку уберите. В этом случае 2 TV поля будут не нужны.
Максим
16 июня 2020, 18:17
0
Я в подобных случаях создаю меню через MIGX. Там и сортировку могут сделать как хотят и заказчик сам изменить пункты может и доп обработки при выводе можно повесить, если потребуется.
    Станислав
    16 июня 2020, 19:46
    0
    [[!pdoMenu?
        &parents=`0`
        &level=`0`
        &includeTVs=`menuorder,in-mainmenu`
        &prepareTVs=`1`
        &processTVs=`1`
        &where = `{"in-mainmenu:=":"1"}`
        &sortby=`{"menuorder":"ASC"}`
        &sortdir=`DESC`
        &tpl=`@INLINE <li [[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]] {[[+menuorder]]}</a>[[+wrapper]]</li>`
    ]]
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4