Добрый день!
С помощью
PDOtools -
pdoNeighbors, я реализовал навигацию по соседним ресурсам. Но я хочу выводить не только ссылку и имя соседнего ресурса, я
хочу выводить превью или карточку соседнего ресурса. Как если бы забирал соседний ресурс, с помощью
pdoResources.
Что я делаю:
Вызов навигации
[[pdoNeighbors?
&sortby=`publishedon`
&sortdir=`asc`
&tplNext=`
@INLINE
<div class="">
[[!pdoResources?
&resources=`[[!getUrlID? &uri=`[[+uri]]`]]`
&parents=`10`
&tpl=`blogNeighboringPreviewTpl`
&includeTVs=`previewPicture,author, blog-cards-alt-title`
]]
<a href="/[[+uri]]"><img class="" src="/img/next2.svg"></a>
</div>`
&tplPrev=`@INLINE <a href="/[[+uri]]"><img src="/img/prev2.svg">[[+pagetitle]]</a>`
&tplWrapper=`@INLINE <div class="">[[+prev]][[+next]]</div>`
&includeTVs=`previewPicture,author, blog-cards-alt-title`
]]
Сниппет
return $modx->findResource($uri, 'web');
В чём идея. Я в
pdoNeighbors вызываю pdoResources и передаю uri в сниппет, который вызываю с параметрами. В сниппете, я получаю
id ресурса через поиск
по uri и возвращаю его. По идее
pdoResources в
&resources=`[[!getUrlID? &uri=`[[+uri]]`]]`
должен получить
id и вывести ресурс.
В чём проблема: видимо цепочка вызовов в какой-то момент ломается. Сам сниппет,
успешно возвращает мой id, но в
pdoResources он просто не отрабатывает, и выводятся все ресурсы родителя. Я думаю, что приоритет вызова, у
pdoResources выше, чем у
pdoNeighbors, и так как
[[+uri]]
приходит из
pdoNeighbors, в момент вызова
pdoResources [[+uri]]
просто пустой. Если я вызову всё тоже самое, но заранее, передам url в сниппете, то
всё отработает как надо. Но это статика.
Как получить id соседнего ресурса другим способом или как исправить этот?