Автор Тема: Карта товара (вывод изображений) PrestaShop 1.5  (Прочитано 4696 раз)

18 Февраль 2013, 20:31:08
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени суток!

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

За ранее спасибо!
18 Февраль 2013, 22:19:24
Ответ #1
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Не назначать картинки для комбинаций. Или переделать шаблон страницы товара product.tpl.
18 Февраль 2013, 23:43:11
Ответ #2
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я наверное не правильно выразилась,

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

Например, по умолчанию стоит зеленое изображение, и при первоначальном открытии карты, открывается основное изображение как положено зеленое, а вот в миниатюрах, показываются все цвета других комбинаций, а при последующем выборе комбинаций в уже открытой карте товара  показывается как надо, только те миниатюры, которые относятся к данной комбинации.
как сделать, что бы при ПЕРВОНАЧАЛЬНОМ открытии показывались только те миниатюры, которые относятся к данной комбинации, например, цвету.  (Только зеленые в данном примере)
19 Февраль 2013, 14:23:30
Ответ #3
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Цитировать
переделать шаблон страницы товара product.tpl
и product.js. Функция - refreshProductImages
22 Февраль 2013, 20:55:04
Ответ #4
  • Пользователь
  • **
  • Сообщений: 57
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
переделать шаблон страницы товара product.tpl
и product.js. Функция - refreshProductImages

Спасибо, получилось!
Поправила, пару строк в функции refreshProductImages файла product.js, миниатюры при первоначальном открытии товара стали показываться как надо, только те которые принадлежат данной комбинации.
29 Сентябрь 2014, 17:47:06
Ответ #5
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Здравствуйте, подскажите пожалуйста как можно настроить, чтобы при наведении на миниатюру изображения товара главное фото товара менялось бы на соответствующее выбранной миниатюре? У меня на странице товара есть главное фото товара и 2 миниатюры, но когда я навожу на одну из них или кликаю по ней, то главное остается прежним, а мне необходимо чтобы оно менялось.
29 Сентябрь 2014, 19:54:21
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В стандарной теме меняется. Сравнить нужно шаблон product.tpl вашей темы и стандарной.
30 Сентябрь 2014, 10:02:13
Ответ #7
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
30 Сентябрь 2014, 11:15:42
Ответ #8
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Добрый день.

Покопался в файле product.tpl моей текущей темы и темы по-умолчанию. Нашел блок кода,который отвечает за вывод миниатюр(я думаю это он):
<div id="thumbs_list">
<ul id="thumbs_list_frame">
{if isset($images)}
{foreach from=$images item=image name=thumbnails}
{assign var=imageIds value="`$product->id`-`$image.id_image`"}
<li id="thumbnail_{$image.id_image}">
<a {if $jqZoomEnabled && $have_image && !$content_only} href="javascript:void(0);"  rel="{literal}{{/literal}gallery: 'gal1', smallimage: '{$link->getImageLink($product->link_rewrite, $imageIds, 'large_default')|escape:'html':'UTF-8'}',largeimage: '{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox_default')|escape:'html':'UTF-8'}'{literal}}{/literal}" {else}href="{$link->getImageLink($product->link_rewrite, $imageIds, 'thickbox_default')|escape:'html':'UTF-8'}" data-fancybox-group="other-views" class="fancybox{if $image.id_image == $cover.id_image} shown{/if}" {/if}>
<img id="thumb_{$image.id_image}" src="{$link->getImageLink($product->link_rewrite, $imageIds, 'small_default')}" alt="{$image.legend|htmlspecialchars}"/>
</a>
</li>
{/foreach}
{/if}
</ul>
{if count($images)>=4}
<a title="Previous" id="prev-thumnail" class="btn prev" href="javascript:void(0);">&lt;</a>
<a title="Next" id="next-thumnail" class="btn next" href="javascript:void(0);">&gt;</a>
{/if}
</div>
Сравнил этот участок кода в обоих файлах и не нашел никаких отличий, они совпадают.  В дефолтной  теме prestashop при нажатии на миниатюру меняется и главное фото товара, а в моей текущей теме - нет. Подскажите может я не там ищу и какая часть этого кода отвечает за изменение главной картинки при нажатии на миниатюру? Спасибо.
30 Сентябрь 2014, 12:24:07
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Значит проблема в подключаемых javascript. В вашей теме конфликт между библиотеками js.
Нужно через консоль вебмастера браузера проверить события при наведении на картинку. 
30 Сентябрь 2014, 12:29:40
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
При наведении на разные картинки меняетя src в теге img
<img id="bigpic" src="этот адрес должен поменяться" >Должен подключаться файл product.js в нем есть функция смены картинки при наведении
//update display of the large image
function displayImage(domAAroundImgThumb, no_animation)
{
if (typeof(no_animation) == 'undefined')
no_animation = false;
if (domAAroundImgThumb.prop('href'))
{
var new_src = domAAroundImgThumb.attr('href').replace('thickbox', 'large');
var new_title = domAAroundImgThumb.attr('title');
var new_href = domAAroundImgThumb.attr('href');
if ($('#bigpic').prop('src') != new_src)
{
$('#bigpic').attr({
'src' : new_src,
'alt' : new_title,
'title' : new_title
}).load(function(){
if (typeof(jqZoomEnabled) != 'undefined' && jqZoomEnabled)
$(this).attr('rel', new_href);
});
}
$('#views_block li a').removeClass('shown');
$(domAAroundImgThumb).addClass('shown');
}
}
30 Сентябрь 2014, 13:19:46
Ответ #11
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Когда нахожусь на странице категории, проверяю через консоль например переход по ссылке quick view товара, то если я это делаю в дефолтной теме, то все нормально - ошибок нет, а если в текущей, то в консоли выдало вот такое:
Uncaught SyntaxError: Unexpected token v jquery.min.js:4m.
parseJSON
(anonymous function)
m.event.dispatch
r.handle


Это я так понимаю и значит,что ошибка подключения product.js?
30 Сентябрь 2014, 13:25:34
Ответ #12
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Это о том, что возвращается невалидный JSON код. Ошибка в коде - скобка не закрыта, лишняя запятая и т.д., проверять нужно все js файлы.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
30 Сентябрь 2014, 13:28:17
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Возможно множественое объявление однинаковых ID у разных элементов верстки.
30 Сентябрь 2014, 13:30:21
Ответ #14
  • Старожил
  • ****
  • Сообщений: 299
  • Репутация: +0/-0
  • Новичек
    • Просмотр профиля
Все js-файлы, которые лежат  в папке js темы? Как же мне найти то эту ошибку, можно как-то сделать парсинг отдельного файла js на наличие ошибки?