Тема: Вывод картинок характеристик

Добрый день.

Подскажите конструкцию для страницы товара, чтобы вывести списковую характеристику "изображение" не только текстом в таблице, но и картинкой.

  <td><span>{$prop_value}<span><img src="вызвать_изображение"/></td>

Повысить оценку Понизить оценку

Re: Вывод картинок характеристик

Не поверите, 2 дня потратил, чтобы найти способ. Тоже хотел написать на форум.
На коленке сделал вывод одной из характеристик. Если можно упростить код, то с удовольствием гляну.

<div class='product-specials'>
{foreach $product->fillProperty() as $data}
   
    {if $data.properties['336']}
    
     {$product_property=$product->getPropertyValueById(336,null,false,true)}
            
     {$property=$data.properties['336']}
         {foreach $property->getAllowedValuesObjects() as $key => $item_value}
           
                {foreach $product_property as $id=>$value} 
                    {if $item_value.id==$value}
                        <label class="cb_{$prop.id}_{$item_value@iteration} product-specials_icon " title="{$item_value.value}">
                            {if $item_value.image}
                                <img src="{$item_value.__image->getUrl(40, 40, 'cxy')}">
                            {/if}
                        </label>
                    {/if} 
                {/foreach}
            {/foreach}
      {/if}      
{/foreach} 
</div>

Re: Вывод картинок характеристик

Я взял кусок вашего кода, спасибо. еще не оформил, но все работает. Теперь к любой характеристике будет выведена картинка. Думаю если такие условия на цвет и тд поставить - все будет выводить как надо.

{if $item_value.value == $prop_value}
<div title="{$item_value.value}" >
               {if $item_value.image}
                 <img src="{$item_value.__image->getUrl(40, 40, 'cxy')}">
                {/if}
</div>
{/if}

Повысить оценку Понизить оценку

Re: Вывод картинок характеристик

Не работает в итоге, выводится только одна картинка характеристики. Админ помоги )

Повысить оценку Понизить оценку

Re: Вывод картинок характеристик

Приведите Ваш код.

6 Отредактировано Владимир (13.02.2019 16:46:41)

Re: Вывод картинок характеристик

  <td>
                                                        <span>
                                                            <span class="color-item">
                                                            {foreach $property->getAllowedValuesObjects() as $key => $item_value}

                                                                     {if $item_value.image}
                                                                     <div class="thumb01" style="background: url({$item_value.__image->getUrl(100, 100, 'cxy')}) top center no-repeat;" title="{$item_value.value} ">                                                         
                                                                    </div>
                                                                     {else}
                                                                         {$item_value.value}
                                                                      
                                                                     {/if}

                                                            {/foreach}
                                                          </span>
                                                    </span>
                                                    </td>

решил и при наведении через transform увеличиваю блок с фоновой картинкой и заполняю фон

Повысить оценку Понизить оценку

Re: Вывод картинок характеристик

Прошу помощи.

Осталась проблема - поскольку используются все виды характеристик, то при такой конструкции успешно выводятся картинки, цвета, но текстовые характеристики не выводятся.

Повысить оценку Понизить оценку

Re: Вывод картинок характеристик

Опишите подробнее Вашу проблему и приведите листинг кода.

Re: Вывод картинок характеристик

{foreach $data.properties as $property}
                                            {$prop_value = $property->textView()}
                                            {if !$property.hidden && $prop_value != '' && !empty($prop_value)}
                                                <tr class="tab-content_table_character-text">
                                                    <td class="prop-title-td">
                                                        <span class="prop-title">{$property.title} {if $property.unit}({$property.unit}){/if}</span>
                                                        {if $property.description}
                                                            <a class="popover-button"
                                                               data-toggle="popover"
                                                               tabindex="0"
                                                               data-trigger="manual"
                                                               data-content="{$property.description}"> ? </a>
                                                        {/if}
                                                    </td>

                                                    <td>
                                                        <span>
                                                            <span class="color-item">
                                                            {foreach $property->getAllowedValuesObjects() as $key => $item_value}

                                                                     {if $item_value.image}
                                                                     <div class="thumb01" style="background: url({$item_value.__image->getUrl(150, 150, 'cxy')}) top center no-repeat;" title="{$item_value.value} ">
                                                                     </div>
                                                                     {elseif $item_value.color}
                                                                     <div class="thumb01" style="background-color:({$item_value.color})" title="{$item_value.value} ">
                                                                     </div>

                                                                     {else}
                                                                        <div> {$item_value.value}</div>
                                                                     {/if}
                                                            {/foreach}
                                                          </span>
                                                    </span>
                                                    </td>
                                                </tr>
                                            {/if}
                                        {/foreach}

Повысить оценку Понизить оценку

10 Отредактировано Закусило Александр (22.02.2019 11:46:06)

Re: Вывод картинок характеристик

Вроде бы все правильно.
Вы я так понимаю хотите вывести списковую характеристику типа строка. Если да, то тогда нужно проверять поле type, а не так как вы делаете.
Посмотрите что у вас в переменной $item_value

{var_dump($item_value)} и {var_dump($property)}

У списковых характеристик нет getAllowedValuesObjects

Также $prop_value != '' и !empty($prop_value) это почти тоже самое. А в вашем случае тоже самое. Используйте проверку !empty($prop_value) вместо двойной

11

Re: Вывод картинок характеристик

Александр, код не сократить? Действительно только таким перебором?

Re: Вывод картинок характеристик

Вообще цель такая:
- картинки вывести картинками
- цвета вывести цветами
- текстовые характеристики вывести текстом (не обязательно списковые).

Повысить оценку Понизить оценку

13

Re: Вывод картинок характеристик

Владимир, подглядывайте в код блока фильтров. Там все есть

Re: Вывод картинок характеристик

Спасибо, добавил условие проверки типа поля характеристики для вывода обычных строчных характеристик

{if $property.type == string}<div>{$property.value}</div>
{/if}

Повысить оценку Понизить оценку

15 Отредактировано Закусило Александр (27.02.2019 13:37:58)

Re: Вывод картинок характеристик

Извините за долгий ответ. Да надо проверять на тип через поле type.


Александр, код не сократить? Действительно только таким перебором?

В данном случае нет, т.к. но же хочет все вывести. А если нужна конкретная характеристика то можно через
{$product->getPropertyByTitle('Название характеристики')} или {$product->getPropertyById('id характеристики')}

16

Re: Вывод картинок характеристик

Закусило Александр пишет:

А если нужна конкретная характеристика то можно через
{$product->getPropertyByTitle('Название характеристики')} или {$product->getPropertyById('id характеристики')}


Александр, подскажите на странице товара, пытаюсь вывести значение одной характеристики, как указано у Вас, выходит ошибка.

Исключение - "Метод getPropertyById не найден в классе Catalog\Model\Orm\Product"

{$pam=$product->getPropertyById('347')}

Повысить оценку Понизить оценку

Re: Вывод картинок характеристик

Андрей пишет:
Закусило Александр пишет:

А если нужна конкретная характеристика то можно через
{$product->getPropertyByTitle('Название характеристики')} или {$product->getPropertyById('id характеристики')}


Александр, подскажите на странице товара, пытаюсь вывести значение одной характеристики, как указано у Вас, выходит ошибка.

Исключение - "Метод getPropertyById не найден в классе Catalog\Model\Orm\Product"

{$pam=$product->getPropertyById('347')}

Вам нужно getPropertyValueById