Автор Тема: Ошибка вывода изображения в категори  (Прочитано 938 раз)

30 Январь 2017, 21:20:15
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени суток, форумчане!
У меня имеется одна ошибочка на сайте:
в списке категорий/подкатегорий в <span class="hover-image"> не выводит картинку, если у данного товара только одна фотка.
Подскажите, как грамотно прописать if ?
Сейчас в дебагере:
<img class="replace-2x" src="0" alt="Туалетная вода Gucci Flora Eau Fraiche 50 мл" title="Туалетная вода Gucci Flora Eau Fraiche 50 мл">

я пробовал разные способы:
1) прописывал src="{if !empty($product.id_image)}{$link->getImageLink($product.link_rewrite, $product.id_image, 'large_default', $product.id_product)}{/if}"
2) прописывал перед классом if, но ничего не помогает.

Помогите, кто сталкивался с такой проблемой. Скрин прилагаю.
31 Январь 2017, 12:14:36
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html':'UTF-8'}Код для вывода изображения.
31 Январь 2017, 16:04:54
Ответ #2
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html':'UTF-8'}Код для вывода изображения.

Если вставить этот код, то при начилие двух фотографий у товара, hover будет выводиться?)
Потому что у меня мало товаров, у которых только одна фотка, в основном, по штук 5-9...
31 Январь 2017, 16:09:25
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Если у товара установлена картинка по умолчанию, тогда будет.
31 Январь 2017, 16:22:23
Ответ #4
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если у товара установлена картинка по умолчанию, тогда будет.

Все бы ничего, но у меня кривое отображение. Может что я не так сделал?
Так:
<span class="hover-image">
                            <img class="replace-2x" src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html':'UTF-8'}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($largeSize)} width="{$largeSize.width}" height="{$largeSize.height}"{/if}/>
                        </span>
                        <span class="img_root">
                            <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'large_default')|escape:'html':'UTF-8'}" alt="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" title="{if !empty($product.legend)}{$product.legend|escape:'html':'UTF-8'}{else}{$product.name|escape:'html':'UTF-8'}{/if}" {if isset($largeSize)} width="{$largeSize.width}" height="{$largeSize.height}"{/if} itemprop="image" />
                        </span>
31 Январь 2017, 16:37:11
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86694
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас тип изображения указан 'home_default', а размеры другого типа largeSize.width и largeSize.height, поэтому накладки в изображении.
31 Январь 2017, 16:47:21
Ответ #6
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У вас тип изображения указан 'home_default', а размеры другого типа largeSize.width и largeSize.height, поэтому накладки в изображении.
Согласен. Я просто подумал, что для класса hover изображение берется из другого поля)
Однако, если изменить на large_default, то у всех товаров вторая картинка не показывается) Для товара с одной фоткой, это, конечно, хорошо, но если больше 1 фотки, то эти фотки не видны.
Что еще попробовать прописать ?
31 Январь 2017, 17:33:35
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86694
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop изображения берутся из таблицы по id. В шаблонах используют сгенерированные миниатюры изображений. Поэтому меняя тип, нужно убедиться что миниатюры этого типа уже созданны.
1. Добавляте или меняете тип в админке в изображениях.
2. Перегенирируете изображения
3. В шаблонах используете тип, который определен в админке.
Переменные для размеров изображений, если вы их указываете в шаблоне, должны быть опредедены в контроллере.
31 Январь 2017, 17:41:48
Ответ #8
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop изображения берутся из таблицы по id. В шаблонах используют сгенерированные миниатюры изображений. Поэтому меняя тип, нужно убедиться что миниатюры этого типа уже созданны.
1. Добавляте или меняете тип в админке в изображениях.
2. Перегенирируете изображения
3. В шаблонах используете тип, который определен в админке.
Переменные для размеров изображений, если вы их указываете в шаблоне, должны быть опредедены в контроллере.

Спасибо большое Вам, но я это прекрасно знаю.
Проблема-то в другом) у меня при наведении на товар в списке категорий загружается картинка, которой нет для товара ,у которого только одно изображение. Скрин был в самом первом посте моем)
Мне предложили поменять large_default на home_default, но теперь пустая картинка ушла! Супер! Однако при этом у товаров, у которых два и больше изображений, не появляются при наведении.
я пробовал через if проверять изображение, но не помогает (может я не так что-то делал, не знаю)...
31 Январь 2017, 18:30:46
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
При наведении картинка менятеся в js или в стилях. Ищи и заменяй в функциях javascript large_default на home_default!
31 Январь 2017, 19:00:46
Ответ #10
  • Новичок
  • *
  • Сообщений: 21
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
При наведении картинка менятеся в js или в стилях. Ищи и заменяй в функциях javascript large_default на home_default!
в стилях смотрел, ничего нету такого)
а в product.js есть код, но не думаю, что он именно здесь меняет.
$('#views_block li a').hover(
function(){displayImage($(this));},
function(){}
);
это из темы скрипт) где еще может меняться hover?
01 Февраль 2017, 11:46:15
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 1814
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
product.js - подключается на странице товара.
У вас на картинке список товара, это страница категорий или главная. На этих страницах другие файлы js.