Вывод данных через pdoResources
Доброго времени суток!
Возникла следующая проблема: на одной странице, несколько раз обращаюсь к pdoResources, в первый раз он выводит все верно. А вот во второй, начинает выводить все тоже что и в первый раз. Надеюсь вы подскажите в чем дело, так как в поиске ответа найти не смог, а своих знаний на данный момент не хватает.
Вот в такой чанк(шаблон) мы выводим каждую запись
З.Ы. Если сможете подсказать, как подключить еще картинку для вывода(через ms2g) то моей признательности не будет предела.
Всем заранее спасибо за проявленный интерес и помощь!
Возникла следующая проблема: на одной странице, несколько раз обращаюсь к pdoResources, в первый раз он выводит все верно. А вот во второй, начинает выводить все тоже что и в первый раз. Надеюсь вы подскажите в чем дело, так как в поиске ответа найти не смог, а своих знаний на данный момент не хватает.
Вот в такой чанк(шаблон) мы выводим каждую запись
<div class="thumbnails thumbnail-style ">
<div class="thumbnail-img">
<div class="overflow-hidden">
<a class="hover-effect" href="#">
<img class="img-responsive" src="" alt="">
</a>
</div>
<a class="btn-more hover-effect" href="[[~[[+id]]]]">Подробнее <i class="fa fa-chevron-right"></i></a>
</div>
<div class="caption">
<div class="country">
<a href="[[pdoField? &topLevel=`2` &field=`uri`]]">
[[pdoField? &topLevel=`2`]]
</a>
<img src="[[pdoField? &topLevel=`2` &field=`Flag`]]" alt="">
</div>
<h3><a class="hover-effect" href="#">[[+pagetitle]]</a></h3>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, justo sit amet risus etiam porta sem.</p>
</div>
</div>
Далее, первый раз я вызываю pdo вот так[[!pdoResources?
&parents=`[[*TravelTripsID]]`
&tpl=`tpl.TravelTips`
&tplLast=`tpl.TravelTips.last`
&hideContainers=`1`
&showLog=`1`
&depth=`2`
&loadModels=`ms2gallery`
&limit=`3`
]]
Вот что пишется в логах 0.0000350: Loaded model "ms2gallery" from "/core/components/ms2gallery/model/"
0.0000770: pdoTools loaded
0.0000279: xPDO query object created
0.0004320: 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`, `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.0004458: Processed additional conditions
0.0007341: Added where condition: modResource.parent:IN(35,40,45), modResource.published=1, modResource.deleted=0, modResource.isfolder=0
0.0000780: Sorted by modResource.publishedon, DESC
0.0000021: Limited to 3, offset 0
0.0002780: 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 `modx_site_content` AS `modResource` WHERE ( `modResource`.`parent` IN (35,40,45) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 AND `modResource`.`isfolder` = 0 ) ORDER BY modResource.publishedon DESC LIMIT 3 "
0.0000851: SQL executed
0.0000839: Total rows: 1
0.0000122: Rows fetched
0.0008998: Loaded chunk "tpl.TravelTips.last"
0.0314391: Returning processed chunks
0.0334871: Total time
15 204 352: Memory usage
Потом обращаюсь для вывода к ПДО еще раз[[!pdoResources?
&parents=`[[*ShowPlaceID]]`
&tpl=`tpl.Showplace`
&tplLast=`tpl.Showplace.last`
&hideContainers=`1`
&showLog=`1`
&depth=`2`
&loadModels=`ms2gallery`
&limit=`8`
]]
Вот лог0.0000610: pdoTools loaded
0.0000169: xPDO query object created
0.0002589: 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`, `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.0002742: Processed additional conditions
0.0004470: Added where condition: modResource.parent:IN(34,37,38,43,39,42,41,44), modResource.published=1, modResource.deleted=0, modResource.isfolder=0
0.0000470: Sorted by modResource.publishedon, DESC
0.0000010: Limited to 8, offset 0
0.0001650: 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 `modx_site_content` AS `modResource` WHERE ( `modResource`.`parent` IN (34,37,38,43,39,42,41,44) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 AND `modResource`.`isfolder` = 0 ) ORDER BY modResource.publishedon DESC LIMIT 8 "
0.0000570: SQL executed
0.0000582: Total rows: 4
0.0000200: Rows fetched
0.0005460: Loaded chunk "tpl.Showplace"
0.0014169: Loaded chunk "tpl.Showplace.last"
0.0023851: Returning processed chunks
0.0036712: Total time
14 942 208: Memory usage
И в обоих случаях, выводится 1 запись из первого вывода. Если в первом варианте это ожидаемо, то во втором, должно быть 5 других записей (они опубликованы и не скрыты никак).З.Ы. Если сможете подсказать, как подключить еще картинку для вывода(через ms2g) то моей признательности не будет предела.
Всем заранее спасибо за проявленный интерес и помощь!
Комментарии: 10
Люди добрые, очень надеюсь на вашу помощь! Хотя бы подскажите в какую сторону копать, где искать ошибку.
По поводу картинок, как-то так, например:
Что же до основной проблемы — ну, судя по логам, все ок. Могу предложить следующее:
а) вызывать pdoFetch некэшированным
б) обновить кэш
в) попробовать вызывать результаты pdoResources в плейсхолдеры.
+ возможно, хоть и маловероятно, что как-то барахлит &tplLast.
И, если не секрет, если вы указываете при помощи tv — родителей, то зачем вам &depth= `2`? Не может ли так выйти, что они в древе из-за 2х уровней и сортировке по publishedon выходят на один и тот же список?
&leftJoin=`{
"75x75": {"class":"msResourceFile","alias":"75x75", "on": "75x75.resource_id = modResource.id AND 75x75.path LIKE '%/75x75/' AND 75x75.rank=0"}
}`
&select=`{
"modResource":"*"
,"75x75":"75x75.url as 75x75"
}`
75x75, соответственно, меняете на ваши пропорции и вызывается в чанке как [[+75x75]]. А вообще — вот.Что же до основной проблемы — ну, судя по логам, все ок. Могу предложить следующее:
а) вызывать pdoFetch некэшированным
б) обновить кэш
в) попробовать вызывать результаты pdoResources в плейсхолдеры.
+ возможно, хоть и маловероятно, что как-то барахлит &tplLast.
И, если не секрет, если вы указываете при помощи tv — родителей, то зачем вам &depth= `2`? Не может ли так выйти, что они в древе из-за 2х уровней и сортировке по publishedon выходят на один и тот же список?
Большое спасибо за ответ, с картинками вроде удалось разобраться самому. НО и ваш вариант мне важен, для изучения возможных подходов.
Пункты а и б я пробовал не помогло. В — сейчас буду пробовать.
Да согласен с "&depth=2" это у меня лишнее.
Пункты а и б я пробовал не помогло. В — сейчас буду пробовать.
Да согласен с "&depth=2" это у меня лишнее.
К сожалению и остальные Ваши рекомендации не помогли.
Мм… попробуйте теста ради удалить &tplLast у обоих вызовов, а &tpl заменить на чанк с содержимым [[+id]] — посмотреть, какие ресурсы возвращают. Если по логам все ок и айди возвращаются нормальные, то проблема, скорее всего, в чанках.
Я подключал "&returnIds" — проверял и ID все верные возвращались. Вот сейчас отключил tplLast и результат все тот же (((
Чанк обертка для вывода в обоих случаях используется одинаковая и она приведена выше. Сейчас создал полную ее копию, и подключил к выводу достопримечательностей, ситцуация изменилась, но опять почему то берется только 1 элемент. Последний из списка который вывелся по запросу ПДО.
Чанк обертка для вывода в обоих случаях используется одинаковая и она приведена выше. Сейчас создал полную ее копию, и подключил к выводу достопримечательностей, ситцуация изменилась, но опять почему то берется только 1 элемент. Последний из списка который вывелся по запросу ПДО.
Мм… а если по-отдельности вызывать pdoResources? Сначала первый, потом первый стереть и вызвать второй — результаты будут корректными?
И, если не затруднит, скиньте древо ваших ресурсов, которые вы вызываете. Пытаюсь понять глубину вложения и, возможно, исходя из этого их можно вызывать как-то иначе, не прибегая к такой куче pdoField-ов.
И, если не затруднит, скиньте древо ваших ресурсов, которые вы вызываете. Пытаюсь понять глубину вложения и, возможно, исходя из этого их можно вызывать как-то иначе, не прибегая к такой куче pdoField-ов.
Если вызывать их поочереди, то результат будет такой же как сейчас на странице(когда мы для чанка обертки используем два разных чанка(хотя их внутреннее содержимое абсолютно идентично)) На картинке структура — мне необходимо из всех категорий выбирать статьи, количество категорий не ограничено может быть, подкатегории создаваться не будут)
Спасибо за помощь, разобрался. Ошибка была в том, что нельзя было использовать вложенный чанк для шаблона вывода в pdo. Спасибо Максим за помощь!
Да не за что… Сам же разобрался.)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.