Как отсортировать пункты меню из разных ресурсов?
Приветствую
Есть дерево ресурсов:
Надо чтобы порядок пунктов меню был такой:
Иными словами — нужно отсортировать вывод пунктов меню из разных родителей, включая их самих через pdoMenu. Битый час пытаюсь настроить. Подскажите пожалуйста возможно ли настроить порядок пунктов меню таким образом через pdoMenu? Если возможно, то как это сделать?
Есть дерево ресурсов:
Ресурс 1
- Ресурс 2
- Ресурс 3
- Ресурс 4
Ресурс 5
- Ресурс 6
- Ресурс 7
- Ресурс 8
Ресурс 9
- Ресурс 10
- Ресурс 11
- Ресурс 12
Надо чтобы порядок пунктов меню был такой:
Ресурс 12
Ресурс 5
Ресурс 2
Ресурс 9
Ресурс 1
Иными словами — нужно отсортировать вывод пунктов меню из разных родителей, включая их самих через pdoMenu. Битый час пытаюсь настроить. Подскажите пожалуйста возможно ли настроить порядок пунктов меню таким образом через pdoMenu? Если возможно, то как это сделать?
Комментарии: 16
Сделайте у ресурсов TV, где указывайте нужный порядок и сортируйте по нему.
Прокатит ли такой вариант?
Пробовал сортировку через menuindex, вроде, разницы быть не должно, но через menuindex не сортирует в нужном порядке, какая-то несостыковочка с родительских пунктов и вложенных.
Пробовал сортировку через menuindex, вроде, разницы быть не должно, но через menuindex не сортирует в нужном порядке, какая-то несостыковочка с родительских пунктов и вложенных.
Прокатит ли такой вариант?
Пробовал сортировку через menuindex, вроде, разницы быть не должно, но через menuindex не сортирует в нужном порядке, какая-то несостыковочка с родительских пунктов и вложенных.
Да, этот вариант не работает.
Пробовал сортировку через menuindex, вроде, разницы быть не должно, но через menuindex не сортирует в нужном порядке, какая-то несостыковочка с родительских пунктов и вложенных.
Да, этот вариант не работает.
[[pdoMenu?
&level=`0`
&parents=`0`
&resources=`12,5,2,9,1`
&includeTVs=`my_sort_menu`
&sortby=`my_sort_menu`
]]
Вот так попробуйте:
[[pdoMenu?
&level=`0`
&parents=`0`
&resources=`12,5,2,9,1`
&includeTVs=`my_sort_menu`
&sortby=`ids`
]]
Не, не пашет. Отсортировать на одном уровне можно, но когда в дело включаются вложенные уровни, складывается ощущение, что вложенные уровни не могут быть перемешаны с родительскими уровнями.
Проверил у себя — все пашет.
Структура и вызов:
Результат:
Структура и вызов:
Результат:
А вы вставьте в 23 ресурс пару вложенных пунктов (100,101,102, к примеру) и попробуйте вывести один из них в начале списка, а второй в конце списка.
100,41,55,101,20,19,102
Вот ваша структура:
Попробуйте так:
19
20
21
72
23
41
100
101
102
51
52
55
56
Попробуйте так:
100,51,23,20,101,72,102
Вернет нужный порядок?
Сделайте pdoResources:
Результат:
Результат:
Спрашиваю про pdoMenu, а не про pdoResources — вот в чем вопрос! С pdoResources дело ясное — выборка и порядок работают корректно, а вот с pdoMenu что-то другое…
Если Вам нужно меню с определенными ресурсами, почему именно на pdoMenu свет клином сошелся?
Можно вообще на MIGX сделать и добавлять, что угодно и в каком угодно порядке )).
Можно вообще на MIGX сделать и добавлять, что угодно и в каком угодно порядке )).
Потому что в pdoMenu есть замечательная штука — активный класс пункта меню.
В любом случае, спасибо за попытки.
Вопрос открыт.
Можно вообще на MIGX сделатьА можно вообще на HTML+JS или на PHP/Сниппете зафигачить, но хочется понять как это сделать в pdoMenu без плясок вокруг других расширений.
В любом случае, спасибо за попытки.
Вопрос открыт.
Если дело только в классе, то помечать и в pdoResources без проблем. И menutite выводить тоже:
А через pdoField можно вообще всю цепочку пометить )).
Вы бы всю задачу подробнее описали — может, действительно проще будет собственным сниппетом сделать, чем пытаться плясать вокруг pdoMenu.
PS
Кстати, про MIGX Вы зря. Если нужно сделать меню, абсолютно не привязанное к дереву, с произвольными анкорами, порядком, индивидуальным видом пунктов, настраиваемым выводом подменю, да при этом еще и легко управляемое из админки, то MIGX — именно то, что нужно.
<a href="[[+uri]]" class="[[*id:is=`[[+id]]`:then=`active`]][[*parent:is=`[[+id]]`:then=`active`]]">
[[+menutitle:default=`[[+pagetitle]]`]]
</a>
А через pdoField можно вообще всю цепочку пометить )).
Вы бы всю задачу подробнее описали — может, действительно проще будет собственным сниппетом сделать, чем пытаться плясать вокруг pdoMenu.
PS
Кстати, про MIGX Вы зря. Если нужно сделать меню, абсолютно не привязанное к дереву, с произвольными анкорами, порядком, индивидуальным видом пунктов, настраиваемым выводом подменю, да при этом еще и легко управляемое из админки, то MIGX — именно то, что нужно.
Да, Павел чуть опередил, то же самое хотел написать, вот конкретный пример, только без присоединения TV полей:
[[pdoResources?
&parents=`0`
&resources=`12,5,2,9,1`
&tpl=`tpl.Menu`
&tplWrapper=`@INLINE <ul>[[+output]]</ul>`
&sortby=`resources`
]]
tpl.Menu (вариант с Fenom){if $id == ''|resource:'id'}
{set $active = 'active'}
{/if}
<li class="{$active}"><a class="{$active}" href="{$uri}">{$pagetitle}</a></li>
Павал, Klike, спасибо за помощь!
Пожалуйста, а ещё спасибо можно плюсиками ставить )
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.