Получение значений полей MIGX и проверка их на "пустоту"
Помогите решить задачу. Желательно через FENOM или хоть как-то )
К ресурсу добавлены дополнительные поля через MIGX (top-slider)
В данном ресурсе 3 поля, одно из которых текстовое — ID другого ресурса (goods-id).
Требуется получить данное поле, я его получил — [[+goods-id]]
Проверить, заполнено ли оно, если да, то вывести (не важно что, просто 11111111), если нет, то вывести (222222)
Получив id, проверить ресурс с данным id, заполнено ли у него поле price, если да то… если нет, то…
К ресурсу добавлены дополнительные поля через MIGX (top-slider)
В данном ресурсе 3 поля, одно из которых текстовое — ID другого ресурса (goods-id).
Требуется получить данное поле, я его получил — [[+goods-id]]
Проверить, заполнено ли оно, если да, то вывести (не важно что, просто 11111111), если нет, то вывести (222222)
Получив id, проверить ресурс с данным id, заполнено ли у него поле price, если да то… если нет, то…
[[getImageList?
&tvname=`top-slider`
&tpl=`@CODE:
<h1 class="text-white">[[+title]]</h1>
<p class="text-white">[[+sub-title]]</p>
<a class="learn-more x-btn" href="[[#[[+goods-id]].uri]]">УЗНАТЬ БОЛЬШЕ</a>
<a class="express-buy x-btn" href="">
<span class="cost">[[#[[+goods-id]].price]] ₽</span>
`]]
Комментарии: 8
А где у Вас это не работает: на странице, в шаблоне или в чанке?
getImageList на сколько я помню не обрабатывает чанки через pdoTools.
Сделайте копию getImageList (для резервного использования), а исходный сниппет модифицируйте.
В начало добавьте
А лучше откажитесь от сниппета и переделайте на foreach, т.к. MIGX хранит все данные в JSON.
Что-то типо такого:
Сделайте копию getImageList (для резервного использования), а исходный сниппет модифицируйте.
В начало добавьте
$path = MODX_CORE_PATH . 'components/pdotools/model/pdotools/';
$pdoFetch = $modx->getService('pdofetch','pdoFetch', $path, $scriptProperties);
И замените все $modx->getChunk на $pdoFetch->getChunk в сниппете getImageList.А лучше откажитесь от сниппета и переделайте на foreach, т.к. MIGX хранит все данные в JSON.
Что-то типо такого:
{set $rows = json_decode($_modx->resource['top-slider'], true)}
{foreach $rows as $row}
<h1 class="text-white">{$title}</h1>
<p class="text-white">{$_pls['sub-title']}</p>
<a class="learn-more x-btn" href="{$goods-id | url}">УЗНАТЬ БОЛЬШЕ</a>
<a class="express-buy x-btn" href="">
<span class="cost">{$goods-id | resource : 'price'} ₽</span>
{/foreach}
Я так понимаю, что это только часть кода, т.к. тэг а не закрыт и нет ссылки на изображение, раз поле «top-slider».
Код-то я смотрю нерабочий
{set $rows = $_modx->resource['top-slider'] | fromJSON}
{foreach $rows as $row}
<h1 class="text-white">{$row['title']}</h1>
<p class="text-white">{$row['sub-title']}</p>
{if $row['goods-id']}
<a class="learn-more x-btn" href="{$row['goods-id'] | url}">УЗНАТЬ БОЛЬШЕ</a>
<a class="express-buy x-btn" href=""></a>
<span class="cost">{$row['goods-id'] | resource : 'price'} ₽</span>
{/if}
{/foreach}
Там кстати у вас (я автору) отсутствует зарывающий тег и атрибут href обязательный для тега a
Это я так набросал бегло :) Обратил внимание, что код не весь, не стал даже запариваться на этом.
Я так и понял)
Супер! Большое Вам спасибо! Все работает как часы!
И еще маленький вопрос.
Можно ли как-то сократить?
в продукт я получаю ссылку.
Можно ли как-то сократить?
{set $product = $row['goods-id'] | resource : 'product_presentation'}
{set $product = $product[0]}
product_presentation — это Array { 0 => uri }в продукт я получаю ссылку.
Если только написать свой модификатор к fenom, только он Вам не к чему.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.