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


Изменение Главного Фото При Смене Модификации


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Vaccina

Vaccina

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

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

Отправлено 23 Март 2023 - 00:46

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - Товар - найдите:
				<input type="hidden" name="art_number" value="{goods_modifications.ART_NUMBER}" />
				<input type="hidden" name="price_now" value="{goods_modifications.PRICE_NOW}" />
           
замените на:
				<input type="hidden" name="art_number" value="{goods_modifications.ART_NUMBER}" />
				<input type="hidden" name="price_now" value="{goods_modifications.PRICE_NOW}" />
				<input type="hidden" name="goods_mod_image_id" value="{goods_modifications.GOODS_MOD_IMAGE_ID}" />
           
           
далее найдите:
			  <div class="allphoto clear">
				<div  class="title fnt11i" {% IF goods_images.length=1 %}style="display:none;"{% ENDIF %}>Другие фото {GOODS_NAME}</div>
			{% ENDIF %}

			<!-- Уменьшенное изображение товара -->
			<ul class="txtalgncnt zoomicon">
			  <li>
				  <a href="{goods_images.LARGE}" rel="group" class="pict_gallery" target="_blank" title="{GOODS_IMAGE_NAME}">
					<img class="cornerAll withBorder" rel="{goods_images.MEDIUM}" src="{goods_images.ICON}" alt="{GOODS_IMAGE_NAME}" />
				  </a>
			  </li>
         
замените на:
			  <div class="allphoto clear">
				<div  class="title fnt11i" {% IF goods_images.length=1 %}style="display:none;"{% ENDIF %}>Другие фото {GOODS_NAME}</div>
			{% ENDIF %}

			<!-- Уменьшенное изображение товара -->
			<ul class="txtalgncnt zoomicon">
			  <li>
				  <a href="{goods_images.LARGE}" rel="group" class="pict_gallery" target="_blank" title="{GOODS_IMAGE_NAME}" data-image-id="{goods_images.ID}">
					<img class="cornerAll withBorder" rel="{goods_images.MEDIUM}" src="{goods_images.ICON}" alt="{GOODS_IMAGE_NAME}" />
				  </a>
			  </li>
           
Далее зайдите в шаблон main.js - найдите:
	// Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать
	updateVisibility(0);
	// Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций
	updateVisibility(1);
    
замените на:
	// Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать
	updateVisibility(0);
	// Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций
	updateVisibility(1);
	
 // Меняет главное изображение товара на изображение с идентификатором goods_mod_image_id
  function changePrimaryGoodsImage(goods_mod_image_id) {
	// Если не указан идентификатор модификации товара, значит ничего менять не нужно.
	if(1 > goods_mod_image_id) {
	  return true;
	}
	var
	  // Блок с изображением выбранной модификации товара
	  goodsModImageBlock = $('div.allphoto a[data-image-id="' + parseInt(goods_mod_image_id) + '"]'),
	  // Блок, в котором находится главное изображение товара
	  MainImageBlock = $('.fullimg'),
	  // Изображение модификации товара, на которое нужно будет изменить главное изображение товара.
	  MediumImageUrl = goodsModImageBlock.attr('href'),
	  // Главное изображение, в которое будем вставлять новое изображение
	  MainImage = MainImageBlock.find('img'),
	  // В этом объекте хранится идентификатор картинки главного изображения для коректной работы галереи изображений
	  MainImageInfo = $('.fullimg')
	;
	// Если не удалось найти блок, в котором находится главное изображение товара
	if(!MainImageBlock.length) {
	  console.log("GoodsModImage error: MainImageBlock not found");
	  return false;
	}
	// Если не удалось найти главное изображение товара
	if(!MainImage.length) {
	  console.log("GoodsModImage error: MainImage not found");
	  return false;
	}
	// Если не удалось найти главное изображение товара
	if(!goodsModImageBlock.length) {
	  console.log("GoodsModImage error: goodsModImageBlock not found");
	  return false;
	}
	// Если не удалось найти URL изображения для модификации товара
	if(typeof MediumImageUrl === 'undefined') {
	  console.log("GoodsModImage error: MediumImageUrl not found");
	  return false;
	}
	// Если изображение модификации товара найдено - изменяем главное изображение
	MainImage.attr('src', MediumImageUrl);
	MainImageInfo.attr('rel', parseInt(goods_mod_image_id));

	return true;
  }  


далее найдите:
			goodsCompareDeleteButton = $('.goodsDataCompareButton.delete');
			goodsModDescriptionBlock = $('.goodsDataMainModificationsDescriptionBlock');


			// Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
			if (modificationBlock.length) {
				// Цена товара
				goodsPriceNow.html(modificationPriceNowFormated);
           
замените на:
			goodsCompareDeleteButton = $('.goodsDataCompareButton.delete');
			goodsModDescriptionBlock = $('.goodsDataMainModificationsDescriptionBlock');
		modificationGoodsModImageId   = modificationBlock.find('[name="goods_mod_image_id"]').val();

			// Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
			if (modificationBlock.length) {
			  
		// Обновляем изображение модификации товара, если оно указано
		changePrimaryGoodsImage(modificationGoodsModImageId);
		
				// Цена товара
				goodsPriceNow.html(modificationPriceNowFormated);





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

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