pdoResources: слетает контекст
При указании «отрицательного» resources в вызове pdoResources выводятся материалы всех контекстов
При выводе ресурсов через pdoResources указываю context=`shop` (в моём случае) и resources=`-12` (следуя описанию из подсказки «Если id ресурса начинается с дефиса, этот ресурс исключается из выборки») — ресурс из выборки исключается, НО пропадает привязка к конкретному контексту и сниппет вываливает все ресурсы, которые позволяют вывести остальные параметры. Убираем параметр, или делаем его «положительным» — всё работает как надо.
может у меня дефис неправильный…
При выводе ресурсов через pdoResources указываю context=`shop` (в моём случае) и resources=`-12` (следуя описанию из подсказки «Если id ресурса начинается с дефиса, этот ресурс исключается из выборки») — ресурс из выборки исключается, НО пропадает привязка к конкретному контексту и сниппет вываливает все ресурсы, которые позволяют вывести остальные параметры. Убираем параметр, или делаем его «положительным» — всё работает как надо.
может у меня дефис неправильный…
Комментарии: 10
Давай полный вызов и лог запроса, неохота гадать.
[[pdoResources?
&parents=`0`
&context=`shop`
&depth=`0`
&tpl=`jd.oforlist-item.tpl`
&limit=`0`
&resources=`-12`]]
лог запросапро это немного не понял… — куда смотреть?
&showLog=`1`
Ну и эта, ты указал выводить все страницы (&parents=`0`), кроме товара с id=12 — так и выводится.
Параметр &context работает только если и &parents и &resources равны 0. Иначе он не нужен, если ты указал или ресусры или родителей.
По уму, его вообще убрать надо, чтобы не путал.
Ну и эта, ты указал выводить все страницы (&parents=`0`), кроме товара с id=12 — так и выводится.
Параметр &context работает только если и &parents и &resources равны 0. Иначе он не нужен, если ты указал или ресусры или родителей.
По уму, его вообще убрать надо, чтобы не путал.
указал выводить все страницыА как ещё указать parents, если ресурсы в корне другого контекста?
Удалём resources, и всё работает как надо — выводятся материалы только заданного контекста:
[[pdoResources?
&parents=`0`
&context=`shop`
&depth=`0`
&tpl=`jd.oforlist-item.tpl`
&limit=`0`]]
Лог:0.0000250: pdoTools loaded
0.0001049: Conditions prepared
0.0000331: Query parameters ready
0.0001040: xPDO query object created
0.0000339: Grouped by modResource.id
0.0007892: Added selection of modResource: 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`.`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`
0.0006580: Added where condition: published=1, deleted=0, modResource.id:NOT IN(12)
0.0000329: Sorted by publishedon, DESC
0.0000131: Limited to 0, offset 0
0.0004559: 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`.`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 `jd_site_content` AS `modResource` WHERE ( `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 AND `modResource`.`id` NOT IN (12) ) GROUP BY modResource.id ORDER BY publishedon DESC "
0.0009491: SQL executed
0.0001578: Total rows: 16
0.0002840: Rows fetched
0.0158241: Returning processed chunks
0.0194650: Total time
8 388 608: Memory usage
[[pdoResources?
&parents=`0`
&resources=`-12`
&where=`{"context_key":"shop"}`
&depth=`0`
&tpl=`jd.oforlist-item.tpl`
&limit=`0`
]]
Подумаю, как улучшить работу &context.
Василий, благодарю. То, что надо.
На здоровье!
…
ещё наткнулся — при любом значении depth вываливает все ресурсы контекста
вызов тот же:
вызов тот же:
[[pdoResources?
&parents=`0`
&resources=`-12`
&where=`{"context_key":"shop"}`
&depth=`0`
&tpl=`jd.oforlist-item.tpl`
&limit=`0`
]]
если добавляем в where условие для parent'а, то всё работает: &where=`{"context_key":"shop","parent:=":0}`
наличие\отсутствие depth при этом ни на что не влияет, само собой
&depth — глубина выборки от родителя.
Ты выбираешь ресурсы в корне, то есть родителей у них нет. Значит, нужно указать:
Ты выбираешь ресурсы в корне, то есть родителей у них нет. Значит, нужно указать:
&where=`{"context_key":"shop", "parent":0}`
Включай &showLog, смотри запросы — это ж SQL, нетрудно разобраться, что происходит.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.