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


Добавить описание


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

#1 fortuna

fortuna

    Продвинутый пользователь

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

Отправлено 03 Декабрь 2010 - 20:02

Недавно обнаружила, что теперь можно добавлять описание к каждой модификации товара. Это здорово, но наверное появилось недавно, поэтому у меня нигде на сайте не проявляется это описание. Можно ли это поправить?

#2 support

support

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

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 04 Декабрь 2010 - 21:01

Да, можно, для этого можно:
- обновить шаблон
- поправить 3 файла в редакторе тем:

JavaScript файл main.js
Заменить старую функцию отображения модификаций:
// Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(){
	$(this).change(function(){
	  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		  modificationBlock			 = $('.goodsDataMainModificationsList[rel="'+slug+'"]'),
		  modificationId				= parseInt(modificationBlock.find('[name="id"]').val()),
		  modificationArtNumber		 = modificationBlock.find('[name="art_number"]').val(),
		  modificationPriceNow		  = parseFloat(modificationBlock.find('[name="price_now"]').val()),
		  modificationPriceNowFormated  = modificationBlock.find('.price_now_formated').html(),
		  modificationPriceOld		  = parseFloat(modificationBlock.find('[name="price_old"]').val()),
		  modificationPriceOldFormated  = modificationBlock.find('.price_old_formated').html(),
		  modificationRestValue		 = parseFloat(modificationBlock.find('[name="rest_value"]').val()),
		  modificationMeasureId		 = parseInt(modificationBlock.find('[name="measure_id"]').val()),
		  modificationMeasureName	   = modificationBlock.find('[name="measure_name"]').val(),
		  modificationMeasureDesc	   = modificationBlock.find('[name="measure_desc"]').val(),
		  modificationMeasurePrecision  = modificationBlock.find('[name="measure_precision"]').val(),
		  goodsModificationId		   = $('.goodsDataMainModificationId'),
		  goodsPriceNow				 = $('.goodsDataMainModificationPriceNow'),
		  goodsPriceOld				 = $('.goodsDataMainModificationPriceOld'),
		  goodsAvailable				= $('.goodsDataMainModificationAvailable'),
		  goodsAvailableTrue			= goodsAvailable.find('[rel="true"]'),
		  goodsAvailableFalse		   = goodsAvailable.find('[rel="false"]'),
		  goodsArtNumberBlock		   = $('.goodsDataMainModificationArtNumber'),
		  goodsArtNumber				= goodsArtNumberBlock.find('span');
	   
	   // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
	   if(modificationBlock.length) {
		 // Цена товара
		 goodsPriceNow.html(modificationPriceNowFormated);
  
		 // Старая цена товара
		 if(modificationPriceOld>modificationPriceNow) {
		  goodsPriceOld.html(modificationPriceOldFormated);
		 } else {
		   goodsPriceOld.html('');
		 }
		 
		 // Есть ли товар есть в наличии
		 if(modificationRestValue>0) {
		   goodsAvailableTrue.show();
		   goodsAvailableFalse.hide();
		 // Если товара нет в наличии
		 } else {
		   goodsAvailableTrue.hide();
		   goodsAvailableFalse.show();
		 }
		 
		 // Покажем артикул модификации товара, если он указан
		 if(modificationArtNumber.length>0) {
		   goodsArtNumberBlock.show();
		   goodsArtNumber.html(modificationArtNumber);
		 // Скроем артикул модификации товара, если он не указан
		 } else {
		   goodsArtNumberBlock.hide();
		   goodsArtNumber.html('');
		 }
		 
		 // Идентификатор товарной модификации
		 goodsModificationId.val(modificationId);
		 window.location.hash = '?modification='+modificationId;
	   } else {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	});
	
  });

на новую:
// Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(){
	$(this).change(function(){
	  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		  modificationBlock			 = $('.goodsDataMainModificationsList[rel="'+slug+'"]'),
		  modificationId				= parseInt(modificationBlock.find('[name="id"]').val()),
		  modificationArtNumber		 = modificationBlock.find('[name="art_number"]').val(),
		  modificationPriceNow		  = parseFloat(modificationBlock.find('[name="price_now"]').val()),
		  modificationPriceNowFormated  = modificationBlock.find('.price_now_formated').html(),
		  modificationPriceOld		  = parseFloat(modificationBlock.find('[name="price_old"]').val()),
		  modificationPriceOldFormated  = modificationBlock.find('.price_old_formated').html(),
		  modificationRestValue		 = parseFloat(modificationBlock.find('[name="rest_value"]').val()),
		  modificationDescription	   = modificationBlock.find('.description').html(),
		  modificationMeasureId		 = parseInt(modificationBlock.find('[name="measure_id"]').val()),
		  modificationMeasureName	   = modificationBlock.find('[name="measure_name"]').val(),
		  modificationMeasureDesc	   = modificationBlock.find('[name="measure_desc"]').val(),
		  modificationMeasurePrecision  = modificationBlock.find('[name="measure_precision"]').val(),
		  modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(),
		  goodsModificationId		   = $('.goodsDataMainModificationId'),
		  goodsPriceNow				 = $('.goodsDataMainModificationPriceNow'),
		  goodsPriceOld				 = $('.goodsDataMainModificationPriceOld'),
		  goodsAvailable				= $('.goodsDataMainModificationAvailable'),
		  goodsAvailableTrue			= goodsAvailable.find('.available-true'),
		  goodsAvailableFalse		   = goodsAvailable.find('.available-false'),
		  goodsArtNumberBlock		   = $('.goodsDataMainModificationArtNumber'),
		  goodsArtNumber				= goodsArtNumberBlock.find('span');
		  goodsCompareAddButton		 = $('.goodsDataCompareButton.add');
		  goodsCompareDeleteButton	  = $('.goodsDataCompareButton.delete');
		  goodsModDescriptionBlock	  = $('.goodsDataMainModificationsDescriptionBlock');
	   
	   // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
	   if(modificationBlock.length) {
		 // Цена товара
		 goodsPriceNow.html(modificationPriceNowFormated);
  
		 // Старая цена товара
		 if(modificationPriceOld>modificationPriceNow) {
		  goodsPriceOld.html(modificationPriceOldFormated);
		 } else {
		   goodsPriceOld.html('');
		 }
		 
		 // Есть ли товар есть в наличии
		 if(modificationRestValue>0) {
		   goodsAvailableTrue.show();
		   goodsAvailableFalse.hide();
		 // Если товара нет в наличии
		 } else {
		   goodsAvailableTrue.hide();
		   goodsAvailableFalse.show();
		 }
		 // Если товар есть в списке сравнения
		 if(modificationIsHasInCompareList>0) {
		   goodsCompareAddButton.hide();
		   goodsCompareDeleteButton.show();
		 // Если товара нет в списке сравнения
		 } else {
		   goodsCompareAddButton.show();
		   goodsCompareDeleteButton.hide();
		 }
		 
		 // Покажем артикул модификации товара, если он указан
		 if(modificationArtNumber.length>0) {
		   goodsArtNumberBlock.show();
		   goodsArtNumber.html(modificationArtNumber);
		 // Скроем артикул модификации товара, если он не указан
		 } else {
		   goodsArtNumberBlock.hide();
		   goodsArtNumber.html('');
		 }

		 // Описание модификации товара. Покажем если оно есть, спрячем если его у модификации нет
		 if(modificationDescription.length > 0) {
		   goodsModDescriptionBlock.show().html('<div>' + modificationDescription + '</div>');
		 } else {
		   goodsModDescriptionBlock.hide().html();
		 }
		 
		 
		 // Идентификатор товарной модификации
		 goodsModificationId.val(modificationId);
		 window.location.hash = '?modification='+modificationId;
	   } else {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	});
  });

HTML Файл "Товар"
Добавить в модификациях скрытую информацию с текстом и добавить блок с отображением текущих данных модификации.
Был код:
			  
					  <!-- Данные по модификациям для текущей товарной позиции -->
					  {% FOR goods_modifications %}
						<div class="goodsDataMainModificationsList" rel="{goods_modifications.PROPERTIES_SLUG}">
						  <input type="hidden" name="id" value="{goods_modifications.ID}" />
						  <input type="hidden" name="art_number" value="{goods_modifications.ART_NUMBER}" />
						  <input type="hidden" name="price_now" value="{goods_modifications.PRICE_NOW}" />
						  <div class="price_now_formated" style="display:none">{goods_modifications.PRICE_NOW | money_format}</div>
						  <input type="hidden" name="price_old" value="{goods_modifications.PRICE_OLD}" />
						  <div class="price_old_formated" style="display:none">{goods_modifications.PRICE_OLD | money_format}</div>
						  <input type="hidden" name="rest_value" value="{goods_modifications.REST_VALUE}" />
						  <input type="hidden" name="measure_id" value="{goods_modifications.MEASURE_ID}" />
						  <input type="hidden" name="measure_name" value="{goods_modifications.MEASURE_NAME}" />
						  <input type="hidden" name="measure_desc" value="{goods_modifications.MEASURE_DESC}" />
						  <input type="hidden" name="measure_precision" value="{goods_modifications.MEASURE_PRECISION}" />
						</div>
					  {% ENDFOR %}
					</div>
				  </td>
				</tr>

Меняем на
					  <!-- Данные по модификациям для текущей товарной позиции -->
					  {% FOR goods_modifications %}
						<div class="goodsDataMainModificationsList" rel="{goods_modifications.PROPERTIES_SLUG}">
						  <input type="hidden" name="id" value="{goods_modifications.ID}" />
						  <input type="hidden" name="art_number" value="{goods_modifications.ART_NUMBER}" />
						  <input type="hidden" name="price_now" value="{goods_modifications.PRICE_NOW}" />
						  <div class="price_now_formated" style="display:none">{goods_modifications.PRICE_NOW | money_format}</div>
						  <input type="hidden" name="price_old" value="{goods_modifications.PRICE_OLD}" />
						  <div class="price_old_formated" style="display:none">{goods_modifications.PRICE_OLD | money_format}</div>
						  <input type="hidden" name="rest_value" value="{goods_modifications.REST_VALUE}" />
						  <input type="hidden" name="measure_id" value="{goods_modifications.MEASURE_ID}" />
						  <input type="hidden" name="measure_name" value="{goods_modifications.MEASURE_NAME}" />
						  <input type="hidden" name="measure_desc" value="{goods_modifications.MEASURE_DESC}" />
						  <input type="hidden" name="measure_precision" value="{goods_modifications.MEASURE_PRECISION}" />
						  <input type="hidden" name="is_has_in_compare_list" value="{goods_modifications.IS_HAS_IN_COMPARE_LIST}" />
						  <div class="description" style="display:none">{goods_modifications.DESCRIPTION}</div>
						</div>
					  {% ENDFOR %}
					</div>
				  </td>
				</tr>
				
				<!-- Блок описания модификации -->
				<tr>
				  <td class="goodsDataMainModificationsDescriptionBlock" {% IFNOT GOODS_MOD_DESCRIPTION %}style="display:none;"{% ENDIF %} colspan="2">
					{GOODS_MOD_DESCRIPTION}
				  </td>
				</tr>

В CSS файле main.csstemplate
Мы добавили стили для блока описания - простую полосочку и отступы по краям.

Был код:
.goodsDataMainModificationDataBlock,
.goodsDataMainModificationsBlock,
.goodsDataMainDeliveryBlock,
.goodsDataFormSubmitButton {padding:1em;}
и
/* Страница товара. Информация о доставке */
.goodsDataMainModificationsBlock,
.goodsDataMainDeliveryBlock {border-top:1px solid #E5E5E5;font-size:0.8em;}

Заменили на:
.goodsDataMainModificationDataBlock,
.goodsDataMainModificationsBlock,
.goodsDataMainDeliveryBlock,
.goodsDataFormSubmitButton,
.goodsDataMainModificationsDescriptionBlock		  {padding:1em;}
и
/* Страница товара. Информация о доставке */
.goodsDataMainModificationsBlock,
.goodsDataMainDeliveryBlock,
.goodsDataMainModificationsDescriptionBlock {border-top:1px solid #E5E5E5;font-size:0.8em;}

После этих манипуляций добавится блок описания у модификаций, если оно у неё есть.




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

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