pdoMenu сортировка ресурсов по порядку
Приветствую!
Id ресурсов для вывода указываю в системной настройке set_col_menu, например 11,3,8. Ресурсы нужно выводить из нескольких родителей.
Как сделать вывод пунктов меню в таком порядке, как в системной настройке?
Id ресурсов для вывода указываю в системной настройке set_col_menu, например 11,3,8. Ресурсы нужно выводить из нескольких родителей.
{'pdoMenu'|snippet: [
'parents' => '0,2,3',
'level' => '1',
'resources' => $_modx->config.set_col_menu,
'tplOuter' => '@INLINE <ul class="mar">{$wrapper}</ul>',
'tpl' => '@INLINE <li><a href="{$link}"]>{$pagetitle}</a></li>',
]}Если оставить пустым 'sortby' => '', то все равно выводит в разнобой.Как сделать вывод пунктов меню в таком порядке, как в системной настройке?
Комментарии: 15
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
&sortby='menuindex',
&sortdir='ASC' или 'DESC'
Нужно вывести в таком порядке: Причем ресурсы из разных контейнеров.
По идее должно работать, я уже это проходил
Но если я вывожу ресурсы из разных контейнеров и сами контейнеры, то не получатся.
Действительно, как указано в документации:
«Направление сортировки: по убыванию или возрастанию. Если оставить параметры &sortby и &sortdir пустыми, то сортировка будет идти по порядку ресурсов в &resources.»
Видимо это справедливо если в списке ресурсов указаны страницы одного уровня, иначе получается:
Структура:
1
23
3
—19
14
—5
—11
—12
&resources=`1,23,3,5,11,12,19`
Выводит: 1, 23, 3, 19, 5, 11, 12
1) выводить ресурсы на один уровень
2) писать свой шаблон для первого и второго уровня
3) делать статическое меню
Впервые вижу возможность задавать orderby в таком виде.
Всегда приходилось извращятся, переводить строку с идентификаторами в массив, циклом проходить по нему, вызывая на каждой итерации getResource($id)
вместо orderby следует указывать sortby.
Иногда нужно писать не id, а modResource.id — может зависеть от сниппета который используется.
3, 4, 5, ,15, 16, 17, 18
ресурсы 15, 16, 17, 18 второй уровень вложенности