Недавно обнаружила, что теперь можно добавлять описание к каждой модификации товара. Это здорово, но наверное появилось недавно, поэтому у меня нигде на сайте не проявляется это описание. Можно ли это поправить?
0
Добавить описание
Автор fortuna, 03 дек. 2010 20:02
В теме одно сообщение
#1
Отправлено 03 Декабрь 2010 - 20:02
#2
Отправлено 04 Декабрь 2010 - 21:01
Да, можно, для этого можно:
- обновить шаблон
- поправить 3 файла в редакторе тем:
JavaScript файл main.js
Заменить старую функцию отображения модификаций:
на новую:
HTML Файл "Товар"
Добавить в модификациях скрытую информацию с текстом и добавить блок с отображением текущих данных модификации.
Был код:
Меняем на
В CSS файле main.csstemplate
Мы добавили стили для блока описания - простую полосочку и отступы по краям.
Был код:
Заменили на:
После этих манипуляций добавится блок описания у модификаций, если оно у неё есть.
- обновить шаблон
- поправить 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 анонимных