pdoMenu не выводит с параметром resourses. Modx pdomenu
pdoMenu не выводит с параметром resourses / modx.pro
[[pdoMenu? &resources=`1,2,3,4` &tpl=`@INLINE <li[[+classes]]><a href=«domainName.ru/[[+link]]» [[+attributes]]>[[+menutitle]][[+wrapper]]` &showLog=`1` ]]
лог: 0.0073810: pdoTools loaded 0.0000422: xPDO query object created 0.0004258: Added selection of <b>modResource</b>: <small>`id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`</small> 0.0007050: Processed additional conditions 0.0012012: Added where condition: <b>modResource.id:IN(1,2,3,4), modResource.parent:IN(1), modResource.published=1, modResource.hidemenu=0, modResource.deleted=0, modResource.context_key=web</b> 0.0001261: Sorted by <b>modResource.menuindex</b>, <b>ASC</b> 0.0003860: SQL prepared <small>"SELECT `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties` FROM `r7bc8_site_content` AS `modResource` WHERE ( `modResource`.`id` IN (1,2,3,4) AND `modResource`.`parent` IN (1) AND `modResource`.`published` = 1 AND `modResource`.`hidemenu` = 0 AND `modResource`.`deleted` = 0 AND `modResource`.`context_key` = 'web' ) ORDER BY modResource.menuindex ASC "</small> 0.0001640: SQL executed 0.0000122: Rows fetched 0.0000129: Returning raw data 0.0000019: Tree was built 0.0099359: <b>Total time</b> 4 194 304: <b>Memory usage</b>
при этом через parents все работает
версия pdoTools: 2.11.1-pl структура ресурсов на скрине
modx.pro
pdoMenu / Сниппеты / pdoTools / docs.modx.pro
- Параметры
- Примеры
Сниппет генерации меню. Может заменять Wayfinder, и позволяет более гибко указывать параметры.
Например, умеет строить меню сразу из нескольких родителей, отображая их как вместе, так и отдельными ветками.
Существенный прирост скорости дает только при первом запуске, дальше Wayfinder не особо уступает, благодаря грамотному кэшированию.
Параметры
&parents | Текущий ресурс | Список родителей, через запятую, для поиска результатов. Если поставить 0 - выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключаются из выборки. |
&level | 0 (не ограниченно) | Уровень генерируемого меню. |
&resources | Список ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки. | |
&templates | Список шаблонов, через запятую, для фильтрации результатов. Если id шаблона начинается с дефиса, ресурсы с ним исключается из выборки. | |
&where | Массив дополнительных параметров выборки, закодированный в JSON. | |
&displayStart | 0 | Включить показ начальных узлов меню. Полезно при указании более одного «parents». |
&context | Ограничение выборки по контексту ресурсов. | |
&showHidden | 0 | Показывать ресурсы, скрытые в меню. |
&showUnpublished | 0 | Показывать неопубликованные ресурсы. |
&previewUnpublished | 0 | Включить показ неопубликованных документов, если у пользователя есть на это разрешение. |
&hideSubMenus | 0 | Спрятать неактивные ветки меню. |
&select | Список полей для выборки, через запятую. Можно указывать JSON строку с массивом, например {"modResource":"id,pagetitle,content"}. | |
&sortby | menuindex | Любое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре &includeTVs, например {"tvname":"ASC", "pagetitle":"DESC"}. Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите «RAND()» |
&sortdir | ASC | Направление сортировки: по убыванию или возрастанию. Если оставить параметры &sortby и &sortdir пустыми, то сортировка будет идти по порядку ресурсов в &resources. |
&limit | 0 | Ограничение количества результатов выборки. Можно использовать «0». |
&offset | 0 | Пропуск результатов от начала. Необходимо использовать вместе с явно указанным &limit |
&checkPermissions | Укажите, какие разрешения нужно проверять у пользователя при выводе документов. Например &checkPermissions=`list`. | |
&countChildren | 0 | Точный подсчет количества дочерних ресурсов каждой категории и вывод их в плейсхолдер [[+children]]. Делает дополнительные запросы в БД, поэтому по умолчанию отключен. |
&toPlaceholder | Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем вместо вывода на экран. | |
&plPrefix | wf. | Префикс для выставляемых плейсхолдеров |
&showLog | 0 | Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контекcте «mgr». |
&fastMode | 0 | Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т.п.) будут вырезаны. |
&cache | 0 | Кэширование результатов работы сниппета. |
&cacheTime | 3600 | Время актуальности кэша, в секундах. |
&scheme | -1 | Схема формирования url, передаётся в modX::makeUrl(), поэтому возможные варианты нужно смотреть здесь. Особый тип uri подставляет значение uri ресурса, без запуска функции. |
&useWeblinkUrl | 1 | Генерировать ссылку с учетом класса ресурса. |
&rowIdPrefix | Префикс для выставления идентификатора в чанк. | |
&hereId | Id документа, текущего для генерируемого меню. Нужно указывать только если скрипт сам его неверно определяет, например при выводе меню из чанка другого сниппета. | |
&includeTVs | Список ТВ параметров для выборки, через запятую. Например: «action,time» дадут плейсхолдеры [[+action]] и [[+time]]. | |
&tvPrefix | Префикс для ТВ параметров. |
Параметры шаблонов
Эти параметры устанавливают чанки, которые содержат шаблоны для генерации меню.
&tplOuter | Чанк обертка всего блока меню. По умолчанию: @INLINE <ul[[+classes]]>[[+wrapper]]</ul> |
&tpl | Имя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран. По умолчанию: @INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li> |
&tplParentRow | Чанк оформления контейнера с потомками |
&tplParentRowHere | Чанк оформления текущей категории |
&tplHere | Чанк текущего документа |
&tplInner | Чанк обертки внутренних пунктов меню. Если пуст - будет использовать &tplOuter |
&tplInnerRow | Чанк обертка внутреннего пункта меню |
&tplInnerHere | Чанк обертка активного пункта меню |
&tplParentRowActive | Чанк оформления активной категории |
&tplCategoryFolder | Специальный чанк оформления категории. Категория - это документ с «isfolder = 1» и или нулевым шаблоном, или с атрибутом "rel=category" |
&tplStart | Чанк оформления корневого пункта, при условии, что включен &displayStart. По умолчанию: @INLINE <h3[[+classes]]>[[+menutitle]]</h3>[[+wrapper]] |
Параметры CSS классов
Эти параметры задают значение плейсхолдера [[+classes]] для различных элементов меню.
&firstClass | Класс для первого пункта меню. По умолчанию: first |
&lastClass | Класс последнего пункта меню. По умолчанию: last |
&hereClass | Класс для активного пункта меню. По умолчанию: active |
&parentClass | Класс категории меню. |
&rowClass | Класс одной строки меню. |
&outerClass | Класс обертки меню. |
&innerClass | Класс внутренних ссылок меню. |
&levelClass | Класс уровня меню. Например, если укажите «level», то будет «level1», «level2» и т.д. |
&selfClass | Класс текущего документа в меню. |
&webLinkClass | Класс документа-ссылки. |
Примеры
Обычный вывод меню из корня сайта в один уровень:
[[pdoMenu? &parents=`0` &level=`1` ]]Вывод с исключением определенных родителей и проверкой разрешений пользователя:
[[pdoMenu? &parents=`-10,-15` &level=`2` &checkPermissions=`load,list,view` ]]Вывод меню сразу из двух родителей, с показом корневых точек:
[[pdoMenu? &parents=`10,15` &displayStart=`1` ]]Вывод двух уровней документов с подсчетом количества вложенных ресурсов:
[[pdoMenu? &parents=`0` &level=`2` &tplInner=`@INLINE [[+wrapper]]` &tplParentRow=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a> ([[+children]])</li>[[+wrapper]]` &countChildren=`1` ]]docs.modx.pro
Мега меню с PdoMenu / modx.pro
modx.pro
Помогите сделать меню в PdoMenu / modx.pro
Добрый день. Возникла проблема с организацией меню. Раньше работал с Wayfinder, а теперь решил сделать на Bootstrap и PdoTools, но никак не могу въехать как организовать меню. Как известно, Bootstrap 3 не позволяет сделать многоуровневое меню. Нашёл где-то костыль, плюс сторонние скрипты для hover эффекта на touch девайсах. Меню выглядит как-то так:<!-- Navbar --> <div role="navigation"> <div> <button type="button" data-toggle="collapse" data-target=".navbar-collapse"> <span>Toggle navigation</span> <span></span> <span></span> <span></span> </button> <a href="#"><img src="grinlib_building.jpg" alt="" title="" /></a> </div> <div> <ul> <form action="#" method="post"> <div> <input type="text" placeholder="Поиск по сайту"> <span><i></i></span> </div> </form> </ul> <!-- Left nav --> <ul> <li><a href="#">Submenu 1 <span></span></a> <ul> <li><a href="#">Submenu 1.1 <span></span></a> <ul> <li><a href="#">Article 1</a></li> <li><a href="#">Article 2</a></li> <li><a href="#">Article 3</a></li> </ul> </li> <li><a href="#">Submenu 1.2 <span></span></a> <ul> <li><a href="#">Article 1</a></li> <li><a href="#">Article 2</a></li> <li><a href="#">Article 3</a></li> </ul> </li> </ul> </li> <li><a href="#">Submenu 2 <span></span></a> <ul> <li><a href="#">Submenu 2.1 <span></span></a> <ul> <li><a href="#">Article 1</a></li> <li><a href="#">Article 2</a></li> <li><a href="#">Article 3</a></li> </ul> </li> <li><a href="#">Submenu 2.2 <span></span></a> <ul> <li><a href="#">Article 1</a></li> <li><a href="#">Article 2</a></li> <li><a href="#">Article 3</a></li> </ul> </li> </ul> </li> <li><a href="#">Submenu 3 <span></span></a> <ul> <li><a href="#">Article 1</a></li> <li><a href="#">Article 2</a></li> <li><a href="#">Article 3</a></li> </ul> </li> </ul> </div> </div><!--/.nav-collapse -->Тему на форуме () читал. Мануал по PdoTools тоже.В общем, буду очень благодарен за пинок в нужном направлении.
modx.pro
Как решить конфликт where и level в pdoMenu? / modx.pro
Всем привет! Натолкнулся на странную особенность работы pdoMenu с параметрами where и level. Нужно вывести двухуровневое меню, при этом исключив вывод детей одного из разделов.Обычный вызов (без исключения детей) pdoMenu срабатывает ожидаемо правильно:
{$_modx->runSnippet('!pdoMenu', [ 'parents' => 0, 'level' => 2 ])}0.0262520: pdoTools loaded 0.0000300: xPDO query object created 0.0002210: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties` 0.0000401: Processed additional conditions 0.0005202: Added where condition: modResource.parent:IN(1,6,7,8,9,10,11,4,3,2), OR:modResource.id:IN(1,6,7,8,9,10,11,4,3,2), modResource.published=1, modResource.hidemenu=0, modResource.deleted=0, modResource.context_key=web 0.0000892: Sorted by modResource.menuindex, ASC 0.0006011: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties` FROM `modx_site_content` AS `modResource` WHERE ( ( `modResource`.`parent` IN (1,6,7,8,9,10,11,4,3,2) OR `modResource`.`id` IN (1,6,7,8,9,10,11,4,3,2) ) AND `modResource`.`published` = 1 AND `modResource`.`hidemenu` = 0 AND `modResource`.`deleted` = 0 AND `modResource`.`context_key` = 'web' ) ORDER BY modResource.menuindex ASC " 0.0011301: SQL executed 0.0003099: Total rows: 12 0.0001092: Rows fetched 0.0001609: Returning raw data 0.0000179: Tree was built 0.0000150: Start template tree 0.0014200: Created inline "modChunk" with name "ad22a6773e8643db35baf6e56fa79c5d" 0.0016170: Created inline "modChunk" with name "f740ee02c84d926aea0dd1da693c7bc4" 0.0002789: Created inline "modChunk" with name "9a702cd93356447e6788156aba8d7d10" 0.0033052: End template tree 0.0363512: Total time 4 194 304: Memory usageА теперь произойдет неожиданное: При добавлении параметра where, что-то ломается и pdoMenu игнорирует level:
{$_modx->runSnippet('!pdoMenu', [ 'parents' => 0, 'level' => 2, 'where' => '{"parent:!=":9}', ])}0.0096920: pdoTools loaded 0.0000279: xPDO query object created 0.0002291: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties` 0.0000250: Processed additional conditions 0.0002391: Added where condition: parent:!==9, modResource.published=1, modResource.hidemenu=0, modResource.deleted=0, modResource.context_key=web 0.0000770: Sorted by modResource.menuindex, ASC 0.0002990: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`type`, `modResource`.`contentType`, `modResource`.`pagetitle`, `modResource`.`longtitle`, `modResource`.`description`, `modResource`.`alias`, `modResource`.`link_attributes`, `modResource`.`published`, `modResource`.`pub_date`, `modResource`.`unpub_date`, `modResource`.`parent`, `modResource`.`isfolder`, `modResource`.`introtext`, `modResource`.`content`, `modResource`.`richtext`, `modResource`.`template`, `modResource`.`menuindex`, `modResource`.`searchable`, `modResource`.`cacheable`, `modResource`.`createdby`, `modResource`.`createdon`, `modResource`.`editedby`, `modResource`.`editedon`, `modResource`.`deleted`, `modResource`.`deletedon`, `modResource`.`deletedby`, `modResource`.`publishedon`, `modResource`.`publishedby`, `modResource`.`menutitle`, `modResource`.`donthit`, `modResource`.`privateweb`, `modResource`.`privatemgr`, `modResource`.`content_dispo`, `modResource`.`hidemenu`, `modResource`.`class_key`, `modResource`.`context_key`, `modResource`.`content_type`, `modResource`.`uri`, `modResource`.`uri_override`, `modResource`.`hide_children_in_tree`, `modResource`.`show_in_tree`, `modResource`.`properties` FROM `modx_site_content` AS `modResource` WHERE ( `modResource`.`parent` != 9 AND `modResource`.`published` = 1 AND `modResource`.`hidemenu` = 0 AND `modResource`.`deleted` = 0 AND `modResource`.`context_key` = 'web' ) ORDER BY modResource.menuindex ASC " 0.0007300: SQL executed 0.0000939: Total rows: 16 0.0002019: Rows fetched 0.0001600: Returning raw data 0.0000160: Tree was built 0.0000091: Start template tree 0.0007699: Created inline "modChunk" with name "ad22a6773e8643db35baf6e56fa79c5d" 0.0013142: Created inline "modChunk" with name "f740ee02c84d926aea0dd1da693c7bc4" 0.0001838: Created inline "modChunk" with name "496d0378e05b9873977cb2610f9aadf5" 0.0029252: End template tree 0.0172060: Total time 4 194 304: Memory usage Это баг, фича или собственный затуп?modx.pro