Поднять Каталог На Уровень Со Слайдером
#121
Отправлено 10 Июль 2013 - 16:15
Ошибка теперь
#122
Отправлено 11 Июль 2013 - 00:46
// Функция собирает свойства в строку, для определения модификации товара function getSlugFromGoodsDataFormModificationsProperties(obj) { var properties = new Array(); var reset_arr = new Array(); $(obj).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 = $('form.goodsDataForm 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);
и заменить на
// Функция собирает свойства в строку, для определения модификации товара 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,c){return a - c}).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,c){return a - c}).join('_'); slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties); // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет. if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) { $(this).attr('disabled', 'disabled'); // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный. } else { $(this).removeAttr('disabled'); } }); } }); } // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность. // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать updateVisibility (0); // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций updateVisibility (1);
Что касается стилизации радио кнопок по типу http://ruseller.com/...demo/index.html, то этого сделать нельзя, так как в вашем магазине используется jquery 1.4 а необходима 1.6
Обновить jquery на данный момент затруднительно, так как присутствуют совместимости с другими библиотеками. Вам лучше выбрать другую стилизацию или вовсе отказаться от данной идеи.
#123
Отправлено 11 Июль 2013 - 12:58
#125
Отправлено 11 Июль 2013 - 14:22
#127
Отправлено 11 Июль 2013 - 16:11
Сake (11 Июль 2013 - 00:46) писал:
Что касается стилизации радио кнопок по типу http://ruseller.com/...demo/index.html, то этого сделать нельзя, так как в вашем магазине используется jquery 1.4 а необходима 1.6
Обновить jquery на данный момент затруднительно, так как присутствуют совместимости с другими библиотеками. Вам лучше выбрать другую стилизацию или вовсе отказаться от данной идеи.
То есть скорее всего вообще нету такой стилизации для версии которая в магазине правильно я понял? И ту стилизацию которую я вижу вышла только под версию 1.6?
#128
Отправлено 11 Июль 2013 - 19:56
#129
Отправлено 30 Сентябрь 2013 - 10:16
#130
Отправлено 30 Сентябрь 2013 - 17:52
#131
Отправлено 30 Сентябрь 2013 - 18:07
#132
Отправлено 01 Октябрь 2013 - 09:17
#133
Отправлено 01 Октябрь 2013 - 09:23
Tneilk (01 Октябрь 2013 - 09:17) писал:
Если Вы не меняли файл Robots.txt, то у Вас корзина запрещена на индексирование (Сайт - Robots.txt)
кодом -
# Не индексировать корзину Disallow: /cart
По обновлению файла - вопрос не поняла. Объясните пожалуйста подробнее.
#134
Отправлено 01 Октябрь 2013 - 10:52
#135
Отправлено 01 Октябрь 2013 - 18:05
#136
Отправлено 02 Октябрь 2013 - 00:46
#137
Отправлено 02 Октябрь 2013 - 15:36
#138
Отправлено 03 Октябрь 2013 - 01:20
Так же как отдельный вариант - могу посоветовать вам перейти на другую тему оформления - "Вечность", так как у неё под капотом используется jQuery 1.8
#139
Отправлено 03 Октябрь 2013 - 08:24
#140
Отправлено 04 Октябрь 2013 - 01:32
<!-- Стили которые не нужно менять, грузятся из папки общих файлов --> <link rel="stylesheet" href="{FORALL_STYLES_PATH}reset_03.css" type="text/css" /> <link rel="stylesheet" href="{FORALL_STYLES_PATH}nyroModal/nyroModal.full.css" type="text/css" /> <link rel="stylesheet" href="{FORALL_STYLES_PATH}jquery-ui/jquery.ui.all.min.css" type="text/css" /> <!-- Если в тарифном плане подключен модуль отзывов о товаре --> {% IF TARIFF_FEATURE_GOODS_OPINION %} <!-- Если не выключен модуль отзывов о товаре, то загружаем css для рейтинга --> {% IFNOT SETTINGS_OPINION_DISABLE %} <link rel="stylesheet" href="{FORALL_STYLES_PATH}jquery-ui-stars/jquery.ui.stars.min.css" type="text/css" /> {% ENDIF %} {% ENDIF %} <!-- Стили магазина --> <link rel="stylesheet" href="{ASSETS_STYLES_PATH}main.css" type="text/css" /> <!-- В случае их возникновения JS ошибок, отображаем их владельцу магазина для возможности отладки. Покупатели сообщений о JS ошибках не видят --> {% IF JAVASCRIPT_BUG_HUNTING_URL %} <script type="text/javascript" src="{JAVASCRIPT_BUG_HUNTING_URL}"></script> {% ENDIF %} <!-- Скрипты которые не нужно менять, грузятся из папки общих файлов --> <!-- Это собранные в один файл скрипты из файлов: {FORALL_JS_PATH}jquery-1.4.2.min.js {FORALL_JS_PATH}jquery.nyroModal-1.6.2.min.js {FORALL_JS_PATH}jquery-ui-1.8.4.custom.min.js {FORALL_JS_PATH}jquery.validate.min.js {FORALL_JS_PATH}jquery.capslock.min.js --> <script type="text/javascript" src="{FORALL_JS_PATH}jquery-1.4.2_nyroModal-1.6.2_validate_capslock_jquery-ui-1.8.4.custom.version2.min.js"></script> <!-- Если в тарифном плане подключен модуль отзывов о товаре --> {% IF TARIFF_FEATURE_GOODS_OPINION %} <!-- Если не выключен модуль отзывов о товаре, то загружаем css для рейтинга --> {% IFNOT SETTINGS_OPINION_DISABLE %} <script type="text/javascript" src="{FORALL_JS_PATH}jquery.ui.stars.min.js"></script> {% ENDIF %} {% ENDIF %} <!-- Скрипты магазина --> <script type="text/javascript" src="{ASSETS_JS_PATH}main.js"></script>
и замените на
<!-- Стили которые не нужно менять, грузятся из папки общих файлов --> <link rel="stylesheet" href="{FORALL_STYLES_PATH}reset_03.css" type="text/css" /> <link rel="stylesheet" href="{FORALL_STYLES_PATH}fancybox/2.1.4/jquery.fancybox.css" type="text/css" /> <link rel="stylesheet" href="{FORALL_STYLES_PATH}jquery-ui/jquery.ui.all.min.css" type="text/css" /> <!-- Если в тарифном плане подключен модуль отзывов о товаре --> {% IF TARIFF_FEATURE_GOODS_OPINION %} <!-- Если не выключен модуль отзывов о товаре, то загружаем css для рейтинга --> {% IFNOT SETTINGS_OPINION_DISABLE %} <link rel="stylesheet" href="{FORALL_STYLES_PATH}jquery-ui-stars/4.11/jquery.rating.css" type="text/css" /> {% ENDIF %} {% ENDIF %} <!-- Стили магазина --> <link rel="stylesheet" href="{ASSETS_STYLES_PATH}main.css" type="text/css" /> <!-- В случае их возникновения JS ошибок, отображаем их владельцу магазина для возможности отладки. Покупатели сообщений о JS ошибках не видят --> {% IF JAVASCRIPT_BUG_HUNTING_URL %} <script type="text/javascript" src="{JAVASCRIPT_BUG_HUNTING_URL}"></script> {% ENDIF %} <!-- Скрипты которые не нужно менять, грузятся из папки общих файлов --> <!-- Это собранные в один файл скрипты из файлов: {FORALL_JS_PATH}jquery-1.4.2.min.js {FORALL_JS_PATH}jquery.nyroModal-1.6.2.min.js {FORALL_JS_PATH}jquery-ui-1.8.4.custom.min.js {FORALL_JS_PATH}jquery.validate.min.js {FORALL_JS_PATH}jquery.capslock.min.js --> <script type="text/javascript" src="{FORALL_JS_PATH}jquery-1.8.2_jquery-ui-1.10.2_jcarousel_masonry-2.1.05_infinite_scroll-2.0b2.110713_fancybox_validation-1.11.1_capslock_jqueryui_rating-4.11.js"></script> <!-- Скрипты магазина --> <script type="text/javascript" src="{ASSETS_JS_PATH}main.js"></script>
далее в файле main.js найдите и удалите
// При вводе пароля с caps lockом, покажет блок с сообщением для пользователя $('#sites_client_pass, #contactPassWord').capslock({ caps_lock_on:function(){$("#caps_lock").show();}, caps_lock_off:function(){$("#caps_lock").hide();} });
далее найдите
// Настройки галереи изображений $.nyroModalSettings({ // из всех элементов с атрибут rel="gallery" будем создавать галерею gallery: 'gallery', // Включаем прокрутку с последнего изображения на первое galleryLoop: true });
и замените на
// Настройки галереи изображений $(".CompareGoodsImageZoom, .goodsDataMainImage a, .goodsDataMainImageZoom a, a[rel*=gallery]").fancybox({ 'transitionIn' : 'none', 'transitionOut' : 'none', 'titlePosition' : 'over', 'titleFormat' : function(title, currentArray, currentIndex, currentOpts) { return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>'; } });
далее найдите
// Увеличение изображение при клике на него и открытие галереи изображений $('.goodsDataMainImage a, .goodsDataMainImageZoom a').click(function(){ // Идентификатор главной картинки var goodsImageId = $('.goodsDataMainImage input').attr("rel"), // Маленькое изображение, по которому на самом деле будем кликать goodsImageIconElement = $('.goodsDataMainImagesIcon input[rel="'+goodsImageId+'"]').parent().find('a'); // Для иконки изображения запустим галерею goodsImageIconElement.nyroModalManual(); return false; });
и замените на
// Увеличение изображение при клике на него и открытие галереи изображений $(".CompareGoodsImageZoom, .goodsDataMainImage a, .goodsDataMainImageZoom a, a[rel*=gallery]").click(function(){ // Идентификатор главной картинки var goodsImageId = $('.goodsDataMainImage input').attr("rel"), // Маленькое изображение, по которому на самом деле будем кликать goodsImageIconElement = $('.goodsDataMainImagesIcon input[rel="'+goodsImageId+'"]').parent().find('a'); $(this).attr('href', goodsImageIconElement.attr('href')); // Для иконки изображения запустим галерею $(this).fancybox(); });
далее найдите
// Добавление товара в корзину через 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; });
и замените на
// Добавление товара в корзину через ajax $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').submit(function(){ var formBlock = $(this); var formData = formBlock.serializeArray(); formData.push({name: 'ajax_q', value: 1}); $.ajax({ type : "POST", cache : false, url : formBlock.attr('action'), data : formData, success: function(data) { $.fancybox({ content : data // При изменении размера окна изменяем размер окна оформления заказа ,onUpdate : function(){ var w = $(window).width()*0.8; if(w < 800) { // Автоматический ресайз внутреннего блока fancybox-а $('.fancybox-inner').css('width', 'auto'); // Изменяем размер fancybox окна $('.fancybox-wrap').css({'width': w + 'px'}); } return false; } }); setTimeout(function(){$.fancybox.update();}, 500); } }); 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; });
и замените на
// Сравнение товаров. Увеличение изображение при клике на ссылку увеличения и открытие галереии с изображениями этого товара $('.CompareGoodsImageZoom').click(function(){ // Галлерея фотографий для данной модификации товаров var galleryBlock = $('.galleryBlock' + $(this).attr('rel')), // Главное изображение товара, которое сейчас стоит у товара galleryMainImage = $('.CompareGoodsImageMain' + $(this).attr('rel')), // Изображение по которому нужно кликнуть в галлерее изображений ImageIngallery = galleryBlock.find('.CompareGoodsImageGallery'+galleryMainImage.attr('rel')); $(this).attr('href', ImageIngallery.attr('href')); // Запускаем галлерею изображений от изображения товара, чтобы если например кликнули по гайке, то и открылись гайка, а не еще какой-либо изображение этого товара $(this).fancybox(); });
этого по идее должно быть достаточно для корректной работы.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных