Автор Тема: Скрыть товары без рисунка  (Прочитано 1130 раз)

10 Август 2016, 09:27:14
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день, ув. форумчане!
Пожалуйста, подскажите - есть ли возможность в категории товаров, скрыть те товары, у которых нет рисунка или у которых ссылка на рисунок равна == ru-default-medium_default.jpg
10 Август 2016, 10:18:38
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Javascript функцию написать, сравнивать img src и при true присвоить блоку класс
function imgLoaded(img){
    var $img = $(img);
    $img.parent().addClass('hidden');
};
Только нужно будет поправить стили для каждого блока товаров, чтобы не было пустых мест в ряде товаров.
10 Август 2016, 10:27:05
Ответ #2
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, за ответ!
А можно ли обойтись используя, только серверный код в шайле шаблона *.tpl? Например условием smarty {if} изображение пусто, то ...?
10 Август 2016, 10:50:29
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Можно и в smarty проверить
{if file_exists($file)} показываем {else} не показываем {/if}
10 Август 2016, 22:20:41
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 104
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
{if strpos($product.id_image, "default") == false}
    image found
{/if}

Т.е. если наден "default" в $product.id_image. По умолчанию для товаров без изображения переменная $product.id_image равняется "ru-default" ("ru" это код языка).
Можете у себя проверить вывод этой переменной:
{$product.id_image}
З.Ы. эта проверка для product-list.tpl
(* --[[ /* <!-- {* #  -- ; *} --> */ ]] *)
skype: -
09 Октябрь 2016, 12:36:20
Ответ #5
  • Новичок
  • *
  • Сообщений: 46
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вопрос по теме. Удаляю из всплывающего поля корзины поле изображения в котом отсутствует изображение, т.е. легенда. Как правильно сделать?
В файле blockcart.tpl
<div class="product-image-container layer_cart_img"> </div> отвечает за вывод изображения из
ajax-cart.js -$('.layer_cart_img').html('<img class="layer_cart_img img-responsive" src="' + product.image + '" alt="' + product.name + '" title="' + product.name + '" />');  ?В product-list работает через 
{if $product.id_image!='ru-default'}  <div class="product-image-container"> ......    </div> {/if}А тут как правильно  скрыть
div class="product-image-container layer_cart_img" ?
09 Октябрь 2016, 13:39:20
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Скрывать так
style="display:none"тогда удалять не нужно.
09 Октябрь 2016, 14:10:04
Ответ #7
  • Новичок
  • *
  • Сообщений: 46
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Хочу скрыть изображение товара при его отсутствии во всплывающей корзине  (во вложении скрин - выделила, то что нужно скрывать).
Я правильно думаю что в файле blockcart.tpl нужно работать с
<div class="product-image-container layer_cart_img"> </div> 
и  в ajax-cart.js -
$('.layer_cart_img').html('<img class="layer_cart_img img-responsive" src="' + product.image + '" alt="' + product.name + '" title="' + product.name + '" />')Как правильно прописать условие?
Если пишу 
{if $product.id_image!='ru-default'} перед  <div class="product-image-container layer_cart_img"> </div> - поле пропадает полностью и на товаре с изображением.
09 Октябрь 2016, 14:22:06
Ответ #8
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Чтобы спрятать элемент в вспывающем окне бвстрого просмотра товара, нужно добавить к этому элементу код
{if $content_only}style="display:none"{/if}можете определить класс стилей со свойством "display:none" и присваивать этот класс нужным элементам.
Например так, в файле /themes/default-bootstrap/product.tpl
<!-- left infos-->
<div class="pb-left-column col-xs-12 col-sm-4 col-md-5" {if $content_only}style="display:none"{/if}>
09 Октябрь 2016, 14:45:51
Ответ #9
  • Новичок
  • *
  • Сообщений: 46
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
{if $product.id_image!='ru-default'}
<div class="product-image-container layer_cart_img" {if $content_only}style="display:none"{/if}>
</div>
{/if}
так будет выглядеть?
09 Октябрь 2016, 14:49:17
Ответ #10
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Так или нет вам решать. Измените шаблон, проверьте. Никто этого делать за вас не будет.
09 Октябрь 2016, 14:52:53
Ответ #11
  • Новичок
  • *
  • Сообщений: 46
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Побывала. Поле с изображением  не появляется вне зависимости от наличия  изображения.
09 Октябрь 2016, 15:26:20
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Можно и в smarty проверить
{if file_exists($file)} показываем {else} не показываем {/if}
Так проверять нужно, есть файл картинки или нет. Можно так
if strpos($product.id_image, 'default') !== false)
09 Октябрь 2016, 16:09:28
Ответ #13
  • Новичок
  • *
  • Сообщений: 46
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
{if strpos($product.id_image, 'default') !== false)}
<div class="product-image-container layer_cart_img" {if $content_only}style="display:none"{/if}>
 </div> {/if}
при такой записи ошибка на странице товаров - не отображается страница(((
09 Октябрь 2016, 16:14:09
Ответ #14
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Для версии prestashop 1.6.1.6 и выше, темы default-bootstrap.
Для всплывающего окна быстрого просмотра товара.
Изменить шаблон страницы товара /themes/default-bootstrap/product.tpl
<!-- product img-->
<div id="image-block" class="clearfix" {if !$have_image && $content_only}style="display:none"{/if}>
Cоздание интернет сайтов Webstudio UwK