Перейти к содержимому


Изменение Изображения При Смене Модификации


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 MikDark

MikDark

    Активный участник

  • Модераторы
  • 6 462 сообщений

Отправлено 14 Май 2020 - 10:21

Если Ваш товар имеет несколько цветов и Вы хотите, чтобы при выборе цвета появлялась соответствующая картинка, то выполните следующую инструкцию:

1) В шаблоне Товар после кода:

<input type="hidden" name="is_has_in_compare_list" value="{goods_modifications.IS_HAS_IN_COMPARE_LIST}" />

добавьте:

<input type="hidden" name="goods_mod_image_id" value="{goods_modifications.GOODS_MOD_IMAGE_ID}" />

2) В шаблоне main.js после кода:

// Идентификатор товарной модификации
goodsModificationId.val(modificationId);

добавьте:


// Меняет главное изображение товара на изображение с идентификатором goods_mod_image_id
function changePrimaryGoodsImage(goods_mod_image_id) {
// Если не указан идентификатор модификации товара, значит ничего менять не нужно.
if(1 > goods_mod_image_id) {
return true;
}
var
// Блок с изображением выбранной модификации товара
goodsModImageBlock = $('.thumblist [data-id="' + parseInt(goods_mod_image_id) + '"'),
// Блок, в котором находится главное изображение товара
MainImageBlock = $('.product-view .product-img-box .product-image'),
// Изображение модификации товара, на которое нужно будет изменить главное изображение товара.
MediumImageUrl = goodsModImageBlock.find('a').attr('href'),
// Главное изображение, в которое будем вставлять новое изображение
MainImage = MainImageBlock.find('img'),
// В этом объекте хранится идентификатор картинки главного изображения для коректной работы галереи изображений
MainImageIdObject = MainImageBlock.attr('data-id');
// Если изображение модификации товара найдено - изменяем главное изображение
MainImage.attr('src', MediumImageUrl);
// Изменяем идентификатор главного изображения
MainImageBlock.attr("data-id", parseInt(goods_mod_image_id));
return true;
}
// Обновляем изображение модификации товара, если оно указано
changePrimaryGoodsImage(modificationGoodsModImageId);

3) В шаблон main.js после кода:

modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(),

добавить:

modificationGoodsModImageId = modificationBlock.find('[name="goods_mod_image_id"]').val(),

Сообщение отредактировал metry: 28 Май 2021 - 12:20
исправлена ошибка


#2 Santos

Santos

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 323 сообщений

Отправлено 26 Май 2020 - 15:12

Просмотр сообщенияMikDark (14 Май 2020 - 10:21) писал:

Если Ваш товар имеет несколько цветов и Вы хотите, чтобы при выборе цвета появлялась соответствующая картинка, то выполните следующую инструкцию:

1) В шаблоне Товар после кода:

<input type="hidden" name="is_has_in_compare_list" value="{goods_modifications.IS_HAS_IN_COMPARE_LIST}" />

добавьте:

<input type="hidden" name="goods_mod_image_id" value="{goods_modifications.GOODS_MOD_IMAGE_ID}" />

2) В шаблоне main.js после кода:

// Идентификатор товарной модификации
goodsModificationId.val(modificationId);

добавьте:


// Меняет главное изображение товара на изображение с идентификатором goods_mod_image_id
function changePrimaryGoodsImage(goods_mod_image_id) {
// Если не указан идентификатор модификации товара, значит ничего менять не нужно.
if(1 > goods_mod_image_id) {
return true;
}
var
// Блок с изображением выбранной модификации товара
goodsModImageBlock = $('.thumblist [data-id="' + parseInt(goods_mod_image_id) + '"'),
// Блок, в котором находится главное изображение товара
MainImageBlock = $('.product-image'),
// Изображение модификации товара, на которое нужно будет изменить главное изображение товара.
MediumImageUrl = goodsModImageBlock.find('a').attr('href'),
// Главное изображение, в которое будем вставлять новое изображение
MainImage = MainImageBlock.find('img'),
// В этом объекте хранится идентификатор картинки главного изображения для коректной работы галереи изображений
MainImageIdObject = MainImageBlock.attr('data-id');
// Если изображение модификации товара найдено - изменяем главное изображение
MainImage.attr('src', MediumImageUrl);
// Изменяем идентификатор главного изображения
MainImageBlock.attr("data-id", parseInt(goods_mod_image_id));
return true;
}
// Обновляем изображение модификации товара, если оно указано
changePrimaryGoodsImage(modificationGoodsModImageId);

3) В шаблон main.js после кода:

modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(),

добавить:

modificationGoodsModImageId = modificationBlock.find('[name="goods_mod_image_id"]').val(),


Не работает:(

#3 metry

metry

    Активный участник

  • Модераторы
  • 815 сообщений

Отправлено 28 Май 2021 - 12:21

Просмотр сообщенияSantos (26 Май 2020 - 15:12) писал:

Не работает :(

Добрый день. Исправили инструкцию. Пожалуйста, попробуйте ее выполнить повторно.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных