Закрыть
Скидки в Webasyst 25–29 ноября 2021

Не понятное поведение кода в шаблонах Есть решение

Хорошего всем дня, коллеги!

В шаблоне product.html есть строка

{$video = $product->video}
{if $product.images || $video}

которая отрабатывает без ошибок.

Однако если я использую эту конструкцию в list-thumbs.html, то вылетает ошибка:

Undefined index: images 

Код: 

 {foreach $products as $p}
 {if $p.images}
...
 {/if}

Задача такая: Сделать проверку наличия картинок у товара в категории. Если картинки есть, берем главную. Если нет, то берем спец. подготовленную картинку

Полный код:

{if $p.images}
            {$linktoimage=$wa->shop->productImgurl($p, '0x200')}
{else}
            {$linktoimage="{$wa_app_static_url}cat_logo/empty.png"}    
{/if}

Спасибо за помощь

2 ответа

  • 1
    Дмитрий 23 апреля 2020 17:54 # Решение

    Не знаю, правильно ли решение или это костыль: 

    {foreach $products as $p}
            {$prod=$wa->shop->product($p.id)}
    
            {if $prod.images}
                {$linktoimage=$wa->shop->productImgurl($p, '0x200')}
            {else}
                {$linktoimage="{$wa_app_static_url}cat_logo/empty.png"}    
            {/if}

    Работает. Получается, что изначально $products содержит массив из данных о продукте, но не в виде моделей shopProduct. $prod получает модель по id и уже имеет images внутри. 

    • +1
      Алексей Алексей Webasyst 23 апреля 2020 21:30 #

      У вас очень ресурсоёмкий для выполнения запрос будет.

      Подобные шаблоны лучше смотреть в стандартных темах, где уже есть примеры.

      {$wa->shop->productImgHtml($p, '200', ['itemprop' => 'image', 'alt' => $p.name, 'default' => "`$wa_theme_url`img/dummy200.png"])}

      Обратите внимание на параметр 'default'.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите