kryamk
@kryamk

Как по id в чанке проверить не удален ли ресурс?

[[!getImageList?
        &tvname=`migx_recommended_brands`
        &tpl=`migx_recommended_service`
    ]]

В тв параметре список id которые добавляются вручную. Но некоторые ресурсы удалены и тем самым отображается ошибка. Как прописать условие: существует ли ресурс с таким id (или опубликован ли)

Вот чанк migx_recommended_service:
<div class="col-md-6 mb-base col-xl-3" style="">
    <a class="brand" href="[[~[[+brand]]]]">
        <span class="brandtext">[[+brand:pdofield=`pagetitle`]]</span>
        <img class="img-fluid" src="[[+brand:pdofield=`preview_image`:pThumb=`&w=250&h=200&zc=0`]]" alt="">
</a>
</div>
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
alelunegov
@alelunegov
Фрилансер. Разработка сайтов на MODX, верстка
Можно попробовать таким образом.
Сначала сниппетом getImageList создаем список id ресурсов через запятую:
[[!getImageList?
    &tvname=`migx_recommended_brands`
    &tpl=`@CODE: [[+brand]]`
    &toPlaceholder=`kakoytoplaceholder`
    &outputSeparator=`,`
]]

Инструкция по параметрам getImageList.

А потом используем для вывода сниппет pdoResources, который отфильтрует неопубликованные и удаленные.
[[!pdoResources?
    &parents=`0`
    &depth=`0`
    &resources=`[[+kakoytoplaceholder]]`
    &tpl=`recommended_service`
    &includeTVs=`preview_image`
]]


Чанк recommended_service:
<div class="col-md-6 mb-base col-xl-3" style="">
    <a class="brand" href="[[~[[+id]]]]">
        <span class="brandtext">[[+pagetitle]]</span>
        <img class="img-fluid" src="[[+tv.preview_image:pThumb=`&w=250&h=200&zc=0`]]" alt="">
    </a>
</div>


Но, если бы это был мой проект, то я бы прежде попробовал написать свой сниппет, который сначала проверял TV migx_recommended_brands: удалял бы там id несуществующих ресурсов, отфильтровывал неопубликованные и самостоятельно делал бы вывод.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
an-tar
@an-tar Куратор тега MODX
Full stack web developer
в вызов сниппета добавить
&where=`{"deleted:=":"0"}`
Ответ написан
ig0r74
@ig0r74
MODX-разработчик
https://docs.modx.pro/komponentyi/pdotools/parser#...

Не помню уже дефолтный синтаксис, но как-то так:
[[#15.deleted:is=`1`:then=`удален`:else=`Не удален`]]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы