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


Изменение Типа Выбора Модификации


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

#241 tanch

tanch

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

  • Пользователи
  • PipPipPipPip
  • 300 сообщений
  • ГородНовосибирск

Отправлено 28 Апрель 2015 - 13:52

Помогите!!!!
перестали работать правильно модификации!!
при переходе на страницу с несколькими модификациями - выскакивает ошибка:
1.jpg
нажимаем ОК - выскакивает вторая:
2.jpg

и ВСЁ!
модификафии - все стали недоступны, хотя всё в наличии!!!
пример товара

#242 Vialex

Vialex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 08 Май 2015 - 11:02

Просмотр сообщенияVaccina (02 Май 2012 - 20:48) писал:

Данная реализация что находиться выше способна только обработать одну группу модификаций. Для множества групп можно использовать следующий код. (данный код из нового файла main.js, если у вас старый код то вам необходимо проводить вставки вручную сохраняя ранее свои изменения).

Обновленный файл main.js

// Отправляет ошибку на сервер, для того чтобы служба тех поддержки могла разобраться в проблеме как можно быстрее.
function sendError (desc, page, line) {
var img=document.createElement('img');
img.src = 'http://storeland.ru/error/js?desc='+encodeURIComponent(desc)+'&page='+encodeURIComponent(window.location)+'&line=0';
img.style.position = 'absolute';
img.style.top = '-9999px';

try { document.getElementsByTagName('head').appendChild(img) } catch (e){}
return false;
}

// Форматирует цену
function number_format(number,decimals,dec_point,thousands_sep){var n=number,prec=decimals;var toFixedFix=function(n,prec){var k=Math.pow(10,prec);return(Math.round(n*k)/k).toString();};n=!isFinite(+n)?0:+n;prec=!isFinite(+prec)?0:Math.abs(prec);var sep=(typeof thousands_sep==='undefined')?',':thousands_sep;var dec=(typeof dec_point==='undefined')?'.':dec_point;var s=(prec>0)?toFixedFix(n,prec):toFixedFix(Math.round(n),prec);var abs=toFixedFix(Math.abs(n),prec);var _,i;if(abs>=1000){_=abs.split(/\D/);i=_[0].length%3||3;_[0]=s.slice(0,i+(n<0))+
_[0].slice(i).replace(/(\d{3})/g,sep+'$1');s=_.join(dec);}else{s=s.replace('.',dec);}
var decPos=s.indexOf(dec);if(prec>=1&&decPos!==-1&&(s.length-decPos-1)<prec){s+=new Array(prec-(s.length-decPos-1)).join(0)+'0';}
else if(prec>=1&&decPos===-1){s+=dec+new Array(prec).join(0)+'0';}
return s;}

// Превращает поле пароля в текстовое поле и обратно
// @LinkObject - ссылка по которой кликнули
// @InputObject - объект у которого нужно изменить тип поля
function ChangePasswordFieldType (LinkObject, InputObject) {
var
// Ссылка по которой кликнули
LObject = $(LinkObject),
// Объект у которого изменяем тип с password на text
IObject = $(InputObject),
// Старый текст ссылки
txtOld = LObject.text(),
// Новый текст ссылки
txtNew = LObject.attr('rel');

// Если объекты не получены, завершим работу функции
if( LObject.length==0 || IObject.length==0 ) {
return false;
}

// Изменяем у ссылки текст со старого на новый
LObject.html(txtNew);
// Старый текст ссылки сохраняем в атрибуте rel
LObject.attr('rel', txtOld);

// Изменяем тип input поля
if(IObject[0].type == 'text') {
IObject[0].type = 'password';
} else {
IObject[0].type = 'text';
}
}

// Крутит изображение при обновлении картинки защиты от роботов
function RefreshImageAction(img,num,cnt) {
if(cnt>13) {
return false;
}

$(img).attr('src', $(img).attr('rel') + 'icon/refresh/' + num + '.gif');
num = (num==6)?0:num;
setTimeout(function(){RefreshImageAction(img, num+1, cnt+1);}, 50);
}

$(document).ready(function(){

// Валидация формы на странице оформления заказа, а так же формы на страницы связи с администрацией
$('.order form, .feedbackForm, .clientForm, .goodsDataOpinionAddForm').submit(function(){
if($(this).valid()) {
SubmitButton = $(this).find('input:submit, button:submit').attr('disabled', true);
setTimeout('SubmitButton.attr("disabled", false);', 10000);
}
}).validate();

// В форме оформления заказа при клике на кнопку назад просто переходим на предыдущую страницу
$('.order form input:submit[name="toprev"]').click(function(){
var act = this.form.action;
this.form.action = act + ( act.indexOf( '\?' ) > -1 ? '&' : '?' ) + 'toprev=1';
this.form.submit();
return false;
});

// Настройки галереи изображений
$.nyroModalSettings({
// из всех элементов с атрибут rel="gallery" будем создавать галерею
gallery: 'gallery',
// Включаем прокрутку с последнего изображения на первое
galleryLoop: true
});

// Увеличение изображение при клике на него и открытие галереи изображений
$('.goodsDataMainImage a, .goodsDataMainImageZoom a').click(function(){

// Идентификатор главной картинки
var goodsImageId = $('.goodsDataMainImage input').attr("rel"),

// Маленькое изображение, по которому на самом деле будем кликать
goodsImageIconElement = $('.goodsDataMainImagesIcon input[rel="'+goodsImageId+'"]').parent().find('a');

// Для иконки изображения запустим галерею
goodsImageIconElement.nyroModalManual();
return false;
});


// Добавление товара в корзину через ajax
$('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').submit(function(){

$(this).nyroModalManual({
formIndicator: 'ajax_q', // Value added when a form is sent
minWidth: 450, // Minimum width
minHeight: 140, // Minimum height
gallery: null // Gallery name if provided
});
return false;
});

// Изменение главного изображения товара при нажатии на миниатюру
$('.goodsDataMainImagesIcon a').click(function(){
// Путь к среднему изображению
var MediumImageUrl = $(this).find('img').attr('rel'),

// Главное изображение, в которое будем вставлять новое изображение
MainImage = $('.goodsDataMainImage img'),

// В этом объекте хранится идентификатор картинки главного изображения для коректной работы галереи изображений
MainImageIdObject = $('.goodsDataMainImage input'),

// Получаем идентификатор этого изображения из соседнего input поля
GoodsImageIconId = $(this).parent().find('input').attr("rel");

// Изменяем главное изображение
MainImage.attr('src',MediumImageUrl);

// Изменяем идентификатор главного изображения
MainImageIdObject.attr("rel",GoodsImageIconId);

return false;
});

// Функция собирает свойства в строку, для определения модификации товара
function getSlugFromGoodsDataFormModificationsProperties(obj) {
var properties = new Array();
var reset_arr = new Array();
$(obj).find('input[type="radio"]').each(function(i){
if($(this).is(':checked')){
properties[i] = parseInt($(this).val());}
});
for(var i in properties) {
if(properties[i]) {
reset_arr.push(properties[i]);
}
}
return reset_arr.sort(function(a,B){return a - b}).join('_');
}


var
// Запоминаем поля выбора свойств, для ускорения работы со значениями свойств
goodsDataProperties = $('.goodsDataMainModificationsBlock .goodsDataMainModificationsRadio'),

// Запоминаем блоки с информацией по модификациям, для ускорения работы
goodsDataModifications = $('div.goodsDataMainModificationsList');


// Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
function updateVisibility (y) {
// Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
goodsDataProperties.each(function(j){
// Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
if( j != y ) {
// Проходим по всем значениям текущего свойства модификации товара
$(this).find('input[type="radio"]').each(function(){
// Записываем временный массив свойств, которые будем использовать для проверки существования модификации
//var checkProperties = new Array();
/*$(goodsDataProperties).each(function(i){
if($(this).is(':checked'))
checkProperties[i] = parseInt($(this).val());
});*/
// Пытаемся найти модификацию соответствующую выбранным значениям свойств
//checkProperties[j] = parseInt($(this).attr('value'));
// Собираем хэш определяющий модификацию по свойствам
//slug = checkProperties.sort(function(a,B){return a - b}).join('_');
slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties);
// Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
$(this).attr('disabled', 'disabled');
// Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
} else {
$(this).removeAttr('disabled');
}
});
}
});
}
// Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
updateVisibility (0);

// Изменение цены товара при изменении у товара свойства для модификации
goodsDataProperties.each(function(y){
$(this).find('input[type="radio"]').click(function(){
var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
modificationBlock = goodsDataModifications.filter('[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('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
}

// Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара.
updateVisibility(y);
});
});

// Кнопка добавления товара на сравнение сравнения товаров
$('.goodsDataCompareButton').click(function(){
window.location.href = $(this).attr('rel') +
($(this).attr('rel').indexOf( '\?' ) > -1 ? '&' : '?') +
'id='+
$('.goodsDataMainModificationId').val()+
'&from='+
$('input[name="form[goods_from]"]').val();
return false;
});

// Сравнение товаров. Увеличение изображение при клике на ссылку увеличения и открытие галереии с изображениями этого товара
$('.CompareGoodsImageZoom').click(function(){

// Галлерея фотографий для данной модификации товаров
var galleryBlock = $('.galleryBlock' + $(this).attr('rel')),

// Главное изображение товара, которое сейчас стоит у товара
galleryMainImage = $('.CompareGoodsImageMain' + $(this).attr('rel')),

// Изображение по которому нужно кликнуть в галлерее изображений
ImageIngallery = galleryBlock.find('.CompareGoodsImageGallery'+galleryMainImage.attr('rel'));

// Запускаем галлерею изображений от изображения товара, чтобы если например кликнули по гайке, то и открылись гайка, а не еще какой-либо изображение этого товара
ImageIngallery.nyroModalManual({
gallery: 'gallery' + $(this).attr('rel')
});

return false;
});

// Сравнение товаров. Инвертирование свойств для сравнения товара
$('.CompareCheckbox.invert').click(function(){
var checked = true,
checkboxes = $('.CompareCheckbox:not(.invert)');

checkboxes.each(function(){
if($(this).attr('checked')) {
checked = false;
return false;
}
});

checkboxes.each(function(){
$(this).attr('checked', checked);
});

$(this).attr('checked', checked);
});

// Сравнение товаров. Скрытие характеристик товара, которые выделил пользователь
$('.CompareGoodsHideSelected').click(function(){

$('.CompareGoodsTableTbodyComparisonLine').each(function(){
var CheckedCheckbox = $(this).find('.CompareCheckbox:checked:not(.invert)');
if(CheckedCheckbox.length>0) {
$(this).hide();
}
});

// отменяем выделение характеристик товаров
$('.CompareCheckbox').attr('checked',false);

return false;
});

// Сравнение товаров. Отображение скрытых характеристик товара
$('.CompareGoodsShowAll').click(function(){
$('.CompareGoodsTableTbodyComparisonLine:hidden').show();
return false;
});

// Сравнение товаров. Верхняя навигация изменение фильтра на отображение всех характеристик товаров
$('.CompareGoodsTableFilterShowAll').click(function(){
$('.CompareGoodsTableFilterSelected').removeClass('CompareGoodsTableFilterSelected');
$('.CompareGoodsTableTbodyComparisonLine:hidden').show();

$(this).addClass('CompareGoodsTableFilterSelected');
return false;
});

// Сравнение товаров. Фильтр в верхней навигации. Отображение только различающихся характеристик товара
$('.CompareGoodsTableFilterShowOnlyDifferent').click(function(){
$('.CompareGoodsTableFilterSelected').removeClass('CompareGoodsTableFilterSelected');
$('.CompareGoodsTableTbodyComparisonLine:not(.same)').show();
$('.CompareGoodsTableTbodyComparisonLine.same').hide();

$(this).addClass('CompareGoodsTableFilterSelected');
return false;
});

// Сравнение товаров. При наведении на строку сравнения, она выделяется цветом
$('.CompareGoodsTableTbodyComparisonLine').hover(
function () { $(this).addClass('hover'); },
function () { $(this).removeClass('hover'); }
);

// При клике по строке выделяем свойство
$('.CompareGoodsTableTbodyComparisonLine td:not(.ceil1)').click(function(){
var CompareCheckbox = $(this).parent().find('.CompareCheckbox');

if(CompareCheckbox.attr('checked')) {
CompareCheckbox.attr('checked', false);
} else {
CompareCheckbox.attr('checked', true);
}
});

// Форма регистрации нового пользователя, действие ссылки "показать пароль"
$('.clientForm .showPass').click(function(){
ChangePasswordFieldType(this, $('#sites_client_pass'));
return false;
});

// Форма регистрации нового пользователя, при оформлении заказа
$('.OrderShowPass').click(function(){
ChangePasswordFieldType(this, $('#contactPassWord'));
return false;
});

// При вводе пароля с caps lockом, покажет блок с сообщением для пользователя
$('#sites_client_pass, #contactPassWord').capslock({
caps_lock_on:function(){$("#caps_lock").show();},
caps_lock_off:function(){$("#caps_lock").hide();}
});

// При оформлении заказа дадим возможность зарегистрироваться пользователю
$('#contactWantRegister').click(function(){
if($(this).attr("checked")) {
$('.contactRegisterNeedElement').show();
$('#contactEmail, #contactPassWord').addClass('required');
} else {
$('.contactRegisterNeedElement').hide();
$('#contactEmail, #contactPassWord').removeClass('required');
}
});

// Добавление отзыва о товаре. Рейтинг
if(typeof($('.goodsDataOpinionTableRating').stars) == "function" ) {
$('.goodsDataOpinionTableRating').stars({
inputType: "input",
split: 2,
captionEl: $(".goodsDataOpinionMsg"),
cancelShow: false
});
}

// Список отзывов о товаре. Ссылка на отображение формы для добавление отзыва о товаре
$('.goodsDataOpinionShowAddForm').click(function(){
if(0 == $('#goodsDataOpinionAddBlock:visible').length) {
$('#goodsDataOpinionAddBlock').show('blind');
} else {
$('#goodsDataOpinionAddBlock').hide('blind');
return false;
}
});

// Добавление отзыва о товаре. кнопка reset скрывающая форму добавления отзыва о товаре
$('.goodsDataOpinionAddForm input:reset').click(function(){
$('#goodsDataOpinionAddBlock').hide('blind');
});

// Иконка для обновления изображение капчи
$('.goodsDataOpinionCaptchaRefresh').click(function(){
RefreshImageAction(this,1,1);
$('.goodsDataOpinionCaptchaImg').attr('src',$('.goodsDataOpinionCaptchaImg').attr('src')+'&rand'+Math.random(0,10000));
return false;
});

// Фильтры по товарам. При нажании на какую либо характеристику или свойство товара происходит фильтрация товаров
$('.contentTbodySearchFilterBlock input').click(function(){
$(this)[0].form.submit();
});

// Действия при выборе варианта доставки на этапе оформления заказа
$('.deliveryRadio').click(function(){

// Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки
if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) {
$('.deliveryZoneRadio:checked').click().attr('checked', false);
}
});

// Действия при выборе зоны внутри варианта доставки на этапе оформления заказа
$('.deliveryZoneRadio').click(function(){

var
deliveryId = $(this).attr('deliveryid')
,deliveryZonePrice = $(this).parent().find('.deliveryZonePrice')
,deliveryTbody = $('.orderStageDeliveryListTable tbody[rel="' + deliveryId + '"]')
,deliveryBlock = deliveryTbody.find('#deliveryId' + deliveryId)
,deliveryZonePriceBlock = deliveryTbody.find('.orderStageDeliveryZonePrice')
,deliveryDefaultPriceBlock = deliveryTbody.find('.orderStageDeliveryDefaultPrice')
;

// Если этот пункт уже выбран, при повторном клике пользователь видимо хочет снять выделение зоны доставки
if('true' == $(this).attr('rel')) {
$(this).attr('checked', false);
$(this).attr('rel', 'false');

// Показываем цену по умолчанию
deliveryDefaultPriceBlock.show();
// Скрываем цену образованную от зоны
deliveryZonePriceBlock.hide();

// Отмечаем у всех радио баттонов зон доставки свойство говорящее что они не отмечены
} else {
$('.deliveryZoneRadio').attr('rel', 'false');
$(this).attr('rel', 'true');

// Показываем цену по умолчанию
deliveryDefaultPriceBlock.hide();
// Скрываем цену образованную от зоны
deliveryZonePriceBlock.show().html(deliveryZonePrice.html());

// Выделяем вариант доставки к которому относится зона доставки
deliveryBlock.attr('checked', true);
}

});

$("#deliveryConvenientDate").datepicker({
		dayNames		 : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
		dayNamesMin		 : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
		closeText		 : 'Готово',
		currentText		 : 'Сегодня' ,
		duration		 : '',
		monthNames		 : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'],
		monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
		yearRange		 : "-6:+6",
		dateFormat		 : 'dd.mm.yy',
		minDate : new Date(),
		firstDay		 : 1
	});
});

В данном новом файле было сделано несколько изменений.

Блок в шаблоне "Товар" должен выглядеть следующим образом

{% FOR goods_modifications_properties %}
<td class="goodsDataMainModificationsBlockProperty">
<!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
{% FOR values %}

<!-- Если это первый элемент в списке -->
{% IF goods_modifications_properties.values.first %}
<span class="goodsDataMainModificationsRadio">
<strong>{goods_modifications_properties.NAME}:</strong><br />
{% ENDIF %}

<input type="radio" name="form[properties][{goods_modifications_properties.ID}]" value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}checked="checked"{% ENDIF %} /> {goods_modifications_properties.values.NAME} <br />

{% IF goods_modifications_properties.values.last %}
</span>
{% ENDIF %}

{% ENDFOR %}

</td>

{goods_modifications_properties.index | is_divided("2","</tr><tr>","")}
{% ENDFOR %}

Для старого файла main.js попробуйте обновить функцию
getSlugFromGoodsDataFormModificationsProperties
, переменную
goodsDataProperties
, а так же цикл

goodsDataProperties.each(function(y){
$(this).find('input[type="radio"]').click(function(){
var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),

делаю последовательно,и вот когда заменил блок в шаблоне Товар вылезает ошибкаИзображение

помогите пожалуйста

#243 tanch

tanch

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

  • Пользователи
  • PipPipPipPip
  • 300 сообщений
  • ГородНовосибирск

Отправлено 08 Май 2015 - 15:37

помогите!!!!!!!!!
мой main.js:
Скрытый текст


#244 Vialex

Vialex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 09 Май 2015 - 00:13

1. Подскажите пожалуйста, а как переставить фильтры (последовательность)
Изображение



2. и как убрать фильтры внизу... НЕ НА ВЕРХУ, А ВНИЗУ страницы.


Изображение

Заранее спасибо, с уважением.

p.s. C праздником всех, Товарищи!

#245 Vaccina

Vaccina

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

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

Отправлено 09 Май 2015 - 01:20

В конце шаблона Товары найдите и удалите:
<div class="views">
			  <label>Вид списка:</label>
			  {% IF GOODS_VIEW_TYPE=2 %}
				<a onclick="goods_view_type_change('goods_view_type=1')" title="Отображать список товаров в виде таблицы с 3-мя товарами на одну строку" class="grid"></a>
				<a title="Список товаров категории &laquo;{% IF IS_FULL_CATALOG %}Каталог{% ELSE %}{CATEGORY_NAME}{% ENDIF %}&raquo; сейчас отображается в виде списка, где один товар занимает одну строку" class="list-active"></a>
			  {% ELSE %}
				<a title="Список товаров категории &laquo;{% IF IS_FULL_CATALOG %}Каталог{% ELSE %}{CATEGORY_NAME}{% ENDIF %}&raquo; сейчас отображается в виде таблицы, по 3 товара на строку" class="grid-active"></a>
				<a onclick="goods_view_type_change('goods_view_type=2')" title="Отображать список товаров в виде списка" class="list"></a>
			  {% ENDIF %}
			</div>
		   
			<!-- Поле выбора сортировки -->
			{% IF goods_show_order_fields %}
			  <div class="sort-by">
				<label>Сортировать по:</label>
				<span class="select-box">
				  <select name="goods_search_field_id" onchange="this.form.submit();">
					{% FOR goods_order_fields %}
					  <option value="{goods_order_fields.ID}" {% IF goods_order_fields.SELECTED %}selected="selected"{% ENDIF %}>{goods_order_fields.NAME}</option>
					{% ENDFOR %}
				  </select>
				</span>
			  </div>
			{% ENDIF %}
	 
			<!-- Блок возможности изменения лимитов выдачи -->
			{% IF goods_show_per_page %}
			  <div class="limit">
				<label>Показывать по:</label>
				<span class="select-box">
				  <select name="per_page" onchange="this.form.submit();">
					{% FOR goods_per_page_list %}
					  <option value="{goods_per_page_list.LIMIT}" {% IF goods_per_page_list.SELECTED %}selected="selected"{% ENDIF %}>{goods_per_page_list.LIMIT}</option>
					{% ENDFOR %}
				  </select>
				</span>
				<label>результатов</label>
			  </div>
			{% ENDIF %}
			<!-- /Блок возможности изменения лимитов выдачи -->

далее найдите:
<!-- Блок изменения вида списка и поля сортировки -->
			<div class="views">
			  <label>Вид списка:</label>
			  {% IF GOODS_VIEW_TYPE=2 %}
				<a onclick="goods_view_type_change('goods_view_type=1')" title="Отображать список товаров в виде таблицы с 3-мя товарами на одну строку" class="grid"></a>
				<a title="Список товаров категории &laquo;{% IF IS_FULL_CATALOG %}Каталог{% ELSE %}{CATEGORY_NAME}{% ENDIF %}&raquo; сейчас отображается в виде списка, где один товар занимает одну строку" class="list-active"></a>
			  {% ELSE %}
				<a title="Список товаров категории &laquo;{% IF IS_FULL_CATALOG %}Каталог{% ELSE %}{CATEGORY_NAME}{% ENDIF %}&raquo; сейчас отображается в виде таблицы, по 3 товара на строку" class="grid-active"></a>
				<a onclick="goods_view_type_change('goods_view_type=2')" title="Отображать список товаров в виде списка" class="list"></a>
			  {% ENDIF %}
			</div>

перенесите его, поставив после:
	<option value="1" rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ENDIF %}>{filter_prop_list.values.VALUE}</option>
						{% ENDFOR %}
					  </select>
					</span>
				  </div>
				{% ENDFOR %}
			   
			  {% ENDIF %}
			  <div class="clear"></div>
			</div>
		  </form>
		{% ENDIF %}
		<!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
		<!-- /Верхний блок, изменяющий отображение данных выдачи товаров -->


#246 Vialex

Vialex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 09 Май 2015 - 09:10

Просмотр сообщенияVaccina (09 Май 2015 - 01:20) писал:

В конце шаблона Товары найдите и удалите:
<div class="views">
			 <label>Вид списка:</label>
			 {% IF GOODS_VIEW_TYPE=2 %}
			 <a onclick="goods_view_type_change('goods_view_type=1')" title="Отображать список товаров в виде таблицы с 3-мя товарами на одну строку" class="grid"></a>
			 <a title="Список товаров категории &laquo;{% IF IS_FULL_CATALOG %}Каталог{% ELSE %}{CATEGORY_NAME}{% ENDIF %}&raquo; сейчас отображается в виде списка, где один товар занимает одну строку" class="list-active"></a>
			 {% ELSE %}
			 <a title="Список товаров категории &laquo;{% IF IS_FULL_CATALOG %}Каталог{% ELSE %}{CATEGORY_NAME}{% ENDIF %}&raquo; сейчас отображается в виде таблицы, по 3 товара на строку" class="grid-active"></a>
			 <a onclick="goods_view_type_change('goods_view_type=2')" title="Отображать список товаров в виде списка" class="list"></a>
			 {% ENDIF %}
		 </div>
		
		 <!-- Поле выбора сортировки -->
		 {% IF goods_show_order_fields %}
			 <div class="sort-by">
			 <label>Сортировать по:</label>
			 <span class="select-box">
				 <select name="goods_search_field_id" onchange="this.form.submit();">
				 {% FOR goods_order_fields %}
					 <option value="{goods_order_fields.ID}" {% IF goods_order_fields.SELECTED %}selected="selected"{% ENDIF %}>{goods_order_fields.NAME}</option>
				 {% ENDFOR %}
				 </select>
			 </span>
			 </div>
		 {% ENDIF %}
	
		 <!-- Блок возможности изменения лимитов выдачи -->
		 {% IF goods_show_per_page %}
			 <div class="limit">
			 <label>Показывать по:</label>
			 <span class="select-box">
				 <select name="per_page" onchange="this.form.submit();">
				 {% FOR goods_per_page_list %}
					 <option value="{goods_per_page_list.LIMIT}" {% IF goods_per_page_list.SELECTED %}selected="selected"{% ENDIF %}>{goods_per_page_list.LIMIT}</option>
				 {% ENDFOR %}
				 </select>
			 </span>
			 <label>результатов</label>
			 </div>
		 {% ENDIF %}
		 <!-- /Блок возможности изменения лимитов выдачи -->

далее найдите:
<!-- Блок изменения вида списка и поля сортировки -->
		 <div class="views">
			 <label>Вид списка:</label>
			 {% IF GOODS_VIEW_TYPE=2 %}
			 <a onclick="goods_view_type_change('goods_view_type=1')" title="Отображать список товаров в виде таблицы с 3-мя товарами на одну строку" class="grid"></a>
			 <a title="Список товаров категории &laquo;{% IF IS_FULL_CATALOG %}Каталог{% ELSE %}{CATEGORY_NAME}{% ENDIF %}&raquo; сейчас отображается в виде списка, где один товар занимает одну строку" class="list-active"></a>
			 {% ELSE %}
			 <a title="Список товаров категории &laquo;{% IF IS_FULL_CATALOG %}Каталог{% ELSE %}{CATEGORY_NAME}{% ENDIF %}&raquo; сейчас отображается в виде таблицы, по 3 товара на строку" class="grid-active"></a>
			 <a onclick="goods_view_type_change('goods_view_type=2')" title="Отображать список товаров в виде списка" class="list"></a>
			 {% ENDIF %}
		 </div>

перенесите его, поставив после:
<option value="1" rel="form[filter][prop][{filter_prop_list.ID}][{filter_prop_list.values.ID}]" {% IF filter_prop_list.values.CHECKED %}selected="selected"{% ENDIF %}>{filter_prop_list.values.VALUE}</option>
					 {% ENDFOR %}
					 </select>
				 </span>
				 </div>
			 {% ENDFOR %}
			
			 {% ENDIF %}
			 <div class="clear"></div>
		 </div>
		 </form>
	 {% ENDIF %}
	 <!-- END Если в тарифном плане подключен модуль фильтров по товарам -->
	 <!-- /Верхний блок, изменяющий отображение данных выдачи товаров -->

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

#247 tanch

tanch

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

  • Пользователи
  • PipPipPipPip
  • 300 сообщений
  • ГородНовосибирск

Отправлено 31 Май 2015 - 15:09

почему игнорируют мои просьбы???????????

#248 Vapex

Vapex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 27 Июнь 2015 - 21:19

мой сайт http://vapex-shop.ru/
шаблон - техника


как реализовать выбор модификаций товара так же как здесь
http://larec-ledenec...cation=49853949
просто мечта! :)

спасибо

#249 Vapex

Vapex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 29 Июнь 2015 - 09:54

Просмотр сообщенияVapex (27 Июнь 2015 - 21:19) писал:

мой сайт http://vapex-shop.ru/
шаблон - техника


как реализовать выбор модификаций товара так же как здесь
http://larec-ledenec...cation=49853949
просто мечта! :)

спасибо

не оставляю надежд увидеть ответ на вопрос...)) :mellow:

#250 Vapex

Vapex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 30 Июнь 2015 - 11:13

Просмотр сообщенияVapex (29 Июнь 2015 - 09:54) писал:

не оставляю надежд увидеть ответ на вопрос...)) :mellow:

господа, ответьте пожалуйста
спасибо

#251 Vialex

Vialex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 06 Июль 2015 - 15:02

"Ben, i need help" (из к/ф "Брат - 2")

Подскажите пожалуйста, перестал работать счетчик кол-ва,
что и как исправить? где посмотреть? как этот модуль называется?


Изображение

#252 Vapex

Vapex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 06 Июль 2015 - 16:18

Просмотр сообщенияVapex (27 Июнь 2015 - 21:19) писал:

мой сайт http://vapex-shop.ru/
шаблон - техника


как реализовать выбор модификаций товара так же как здесь
http://larec-ledenec...cation=49853949
просто мечта! :)

спасибо
ап

#253 Vialex

Vialex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 13 Июль 2015 - 15:49

АУ! Помогите пожалуйста #251 не смог найти и решить самостоятельно!!!

#254 Vapex

Vapex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 23 Август 2015 - 15:48

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

максимум что получается - выбор модификации визуально меняется, но не меняется цена товара и в корзину попадает выбранный по умолчанию товар(тот который выбран при переходе на страницу) прошу помочь

#255 Vapex

Vapex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 26 Октябрь 2015 - 10:49

Выполнил все с 1 по 9 сообщения. удалось реализовать выбор радио кнопкой. но пропало всплываюшее меню при наведении на раздел каталога товаров(всплывало когда в категории есть подкатегории) а так же раскрывались(не всплывали а в самом меню между категориями) подкатегории если находишься в одной из них. как вернуть?

#256 Vapex

Vapex

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

  • Пользователи
  • PipPipPip
  • 65 сообщений
  • ГородМосква

Отправлено 26 Октябрь 2015 - 11:04

Просмотр сообщенияVapex (26 Октябрь 2015 - 10:49) писал:

Выполнил все с 1 по 9 сообщения. удалось реализовать выбор радио кнопкой. но пропало всплываюшее меню при наведении на раздел каталога товаров(всплывало когда в категории есть подкатегории) а так же раскрывались(не всплывали а в самом меню между категориями) подкатегории если находишься в одной из них. как вернуть?

вообще ни один раскрывающийся список не раскрывается. в т.ч. когда выбираешь зоны доставки. возвращаю шаблон обратно. НАПИШИТЕ ПОЖАЛУЙСТА КАК СДЕЛАТЬ ВЫБОР РАДИО КНОПКАМИ в моем магазине. Прошу полгода. Спасибо

#257 Ирина345

Ирина345

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

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

Отправлено 27 Октябрь 2015 - 12:10

Просмотр сообщенияVapex (26 Октябрь 2015 - 11:04) писал:

вообще ни один раскрывающийся список не раскрывается. в т.ч. когда выбираешь зоны доставки. возвращаю шаблон обратно. НАПИШИТЕ ПОЖАЛУЙСТА КАК СДЕЛАТЬ ВЫБОР РАДИО КНОПКАМИ в моем магазине. Прошу полгода. Спасибо
Здравствуйте, найдите в шаблоне Товар код
{% FOR goods_modifications_properties %}
			  <div class="goodsDataMainModificationsBlockProperty">
				<!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
				{% FOR values %}
				  <!-- Если это первый элемент в списке -->
				  {% IF goods_modifications_properties.values.first %}
					<strong>{goods_modifications_properties.NAME}:</strong><br />
					<select name="form[properties][]">
				  {% ENDIF %}
					  <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option>
				  <!-- Если это последний элемент в списке -->
				  {% IF goods_modifications_properties.values.last %}
					</select>
				  {% ENDIF %}
				{% ENDFOR %}
			  </div>
			  {goods_modifications_properties.index | is_divided("2","</tr><tr>","")}
			{% ENDFOR %}
замените на
  {% FOR goods_modifications_properties %}
																												<td class="goodsDataMainModificationsBlockProperty">
																												  <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
																												  {% FOR values %}
																																  <!-- Если это первый элемент в списке -->
																																  {% IF goods_modifications_properties.values.first %}
																																				<span class="goodsDataMainModificationsRadio">
																																				<strong>{goods_modifications_properties.NAME}:</strong><br />
																																  {% ENDIF %}
																																   <input type="radio" name="form[properties][{goods_modifications_properties.ID}]" value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}checked="checked"{% ENDIF %} /> {goods_modifications_properties.values.NAME} <br />
																																   {% IF goods_modifications_properties.values.last %}
																																				</span>
																																  {% ENDIF %}
																												  {% ENDFOR %}
																												</td>
																												{goods_modifications_properties.index | is_divided("2","</tr><tr>","")}
																								  {% ENDFOR %}



далее найдите в файле main.js

// Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
	var properties = new Array();
	$(obj).each(function(i){
	  properties[i] = parseInt($(this).val());
	});
	return properties.sort(function(a,B){return a - b}).join('_');
  }

  var
  // Запоминаем поля выбора свойств, для ускорения работы со значениями свойств
	goodsDataProperties = $('div.goodsDataMainModificationsBlock select[name="form[properties][]"]'),
  // Запоминаем блоки с информацией по модификациям, для ускорения работы
	goodsDataModifications = $('div.goodsDataMainModificationsList');
  // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  function updateVisibility (y) {
	// Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
	goodsDataProperties.each(function(j){
	  // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
	  if( j != y ) {
		// Проходим по всем значениям текущего свойства модификации товара
		$(this).find('option').each(function(){
		  // Записываем временный массив свойств, которые будем использовать для проверки существования модификации
		  var checkProperties = new Array();
		  $(goodsDataProperties).each(function(i){
			checkProperties[i] = parseInt($(this).val());
		  });
		  // Пытаемся найти модификацию соответствующую выбранным значениям свойств
		  checkProperties[j] = parseInt($(this).attr('value'));
		  // Собираем хэш определяющий модификацию по свойствам
		  slug = checkProperties.sort(function(a,B){return a - b}).join('_');
		  // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
		  if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
			$(this).attr('disabled', true);
			// Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
		  } else {
			$(this).attr('disabled', false);
		  }
		});
	  }
	});
  }
  // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
  // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать
  updateVisibility (0);
  // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций
  updateVisibility (1);
  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(y){
	$(this).change(function(){
	  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		modificationBlock			 = goodsDataModifications.filter('[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);
	  } else {
		// Отправим запись об ошибке на сервер
		sendError('no modification by slug '+slug);
		alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	  }
	  // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара.
	  updateVisibility(y);
	});
  });
 

замените на
// Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
				var properties = new Array();
				var reset_arr = new Array();
				$(obj).find('input[type="radio"]').each(function(i){
				  if($(this).is(':checked')){
								properties[i] = parseInt($(this).val());}
				});
				for(var i in properties) {
				 if(properties[i]) {
				  reset_arr.push(properties[i]);
				 }
				}
				return reset_arr.sort(function(a,B){return a - b}).join('_');
  }


  var
				// Запоминаем поля выбора свойств, для ускорения работы со значениями свойств
				goodsDataProperties = $('.goodsDataMainModificationsBlock .goodsDataMainModificationsRadio'),
		  
				// Запоминаем блоки с информацией по модификациям, для ускорения работы
				goodsDataModifications = $('div.goodsDataMainModificationsList');


  // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  function updateVisibility (y) {
				// Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
				goodsDataProperties.each(function(j){
				  // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
				  if( j != y ) {
								// Проходим по всем значениям текущего свойства модификации товара
								$(this).find('input[type="radio"]').each(function(){
								  // Записываем временный массив свойств, которые будем использовать для проверки существования модификации
								  //var checkProperties = new Array();
								  /*$(goodsDataProperties).each(function(i){
												if($(this).is(':checked'))
												  checkProperties[i] = parseInt($(this).val());
								  });*/
								  // Пытаемся найти модификацию соответствующую выбранным значениям свойств
								  //checkProperties[j] = parseInt($(this).attr('value'));
								  // Собираем хэш определяющий модификацию по свойствам
								  //slug = checkProperties.sort(function(a,B){return a - b}).join('_');
slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties);
								  // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
								  if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
								   $(this).attr('disabled', 'disabled');
								  // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
								  } else {
												$(this).removeAttr('disabled');
								  }
								});
				  }
				});
  }
  // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
  updateVisibility (0);

  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(y){
				$(this).find('input[type="radio"]').click(function(){
				  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
								  modificationBlock									   = goodsDataModifications.filter('[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('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
				   }
				 
				   // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара.
				   updateVisibility(y);
				});
  });


#258 AShchuka

AShchuka

    Пользователь

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

Отправлено 14 Ноябрь 2015 - 21:59

Здравствуйте.
Скажите пожалуйста,как убрать оранжевый цвет с кнопок,когда наводишь на них?
А так же когда наводишь на товар,тоже появляется оранжевый фон!
Спасибо.

#259 Danil

Danil

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

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

Отправлено 15 Ноябрь 2015 - 09:39

Просмотр сообщенияAShchuka (14 Ноябрь 2015 - 21:59) писал:

Здравствуйте.
Скажите пожалуйста,как убрать оранжевый цвет с кнопок,когда наводишь на них?
А так же когда наводишь на товар,тоже появляется оранжевый фон!
Спасибо.
Здравствуйте.
На аккаунте указанном в профиле, при наведении на товар и кнопки, оранжевый цвет отсутствует.
Возможно Вы имели ввиду другой аккаунт?

#260 Ingleest

Ingleest

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

  • Пользователи
  • PipPipPipPip
  • 406 сообщений
  • ГородTallinn

Отправлено 18 Декабрь 2015 - 00:59

Просмотр сообщенияСake (05 Август 2014 - 01:16) писал:

У вас видимо используется другой шаблон и в связи с этим изменения немного отличаются. Найдите в вашем шаблоне "Товар" следующий код
Здравствуйте! У меня тоже не получается, ни первый вариант, ни второй. Тема "спорт". Страница товара "Banks".




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

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