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


Поднять Каталог На Уровень Со Слайдером


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

#121 Tneilk

Tneilk

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

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

Отправлено 10 Июль 2013 - 16:15

Да есть и картинки уже..затупил немного ..просто изменений именно в радио не происходит просто поменялась карусель

Ошибка теперь

Прикрепленные изображения

  • Ошибка 2.jpg


#122 Сake

Сake

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

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

Отправлено 11 Июль 2013 - 00:46

У вас сделаны не все изменения для корректной работы радио модификаций. Вам необходимо в файле main.js найти

// Функция собирает свойства в строку, для определения модификации товара
  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 Tneilk

Tneilk

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

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

Отправлено 11 Июль 2013 - 12:58

спасибо ..откатил доделал .... а это не поможет? http://akurganow.ru/...ie-radioknopki/

#124 Tneilk

Tneilk

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

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

Отправлено 11 Июль 2013 - 14:03

http://jquery.page2p....php5/Кнопки_UI

или как тут?

#125 Koderhan

Koderhan

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

  • Модератоpы
  • 6 227 сообщений

Отправлено 11 Июль 2013 - 14:22

На этом ресурсе стилизованы только ссылки или только кнопки форм. Стилизации радио кнопок нет.

#126 Tneilk

Tneilk

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

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

Отправлено 11 Июль 2013 - 15:55

http://followdesign....interfeysa.html  если от сюда?

#127 Tneilk

Tneilk

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

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

Отправлено 11 Июль 2013 - 16:11

Просмотр сообщенияСake (11 Июль 2013 - 00:46) писал:



Что касается стилизации радио кнопок по типу http://ruseller.com/...demo/index.html, то этого сделать нельзя, так как в вашем магазине используется jquery 1.4 а необходима 1.6
Обновить jquery на данный момент затруднительно, так как присутствуют совместимости с другими библиотеками. Вам лучше выбрать другую стилизацию или вовсе отказаться от данной идеи.


То есть скорее всего вообще нету такой стилизации для версии которая  в магазине правильно я понял? И ту стилизацию которую я вижу вышла только под  версию 1.6?

#128 Koderhan

Koderhan

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

  • Модератоpы
  • 6 227 сообщений

Отправлено 11 Июль 2013 - 19:56

Элементы radio трутдно поддаются стилезации. Если только с помощью js. Выше предложенный вариант не совместим с текущей версией плагина на вашем сайте.

#129 Tneilk

Tneilk

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

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

Отправлено 30 Сентябрь 2013 - 10:16

здравствуйте есть возможность вставить данный конструктор на сайт? http://fancyproductd...on/quick-setup/

#130 Tneilk

Tneilk

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

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

Отправлено 30 Сентябрь 2013 - 17:52

Ребят может как нибудь прокомментируете? не хотелось бы отдельную тему создавать

#131 Koderhan

Koderhan

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

  • Модератоpы
  • 6 227 сообщений

Отправлено 30 Сентябрь 2013 - 18:07

Интеграция данного плагина требует исполнения php кода на стороне сервера, что к сожалению не возможно.

#132 Tneilk

Tneilk

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

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

Отправлено 01 Октябрь 2013 - 09:17

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

#133 miyako

miyako

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

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

Отправлено 01 Октябрь 2013 - 09:23

Просмотр сообщенияTneilk (01 Октябрь 2013 - 09:17) писал:

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

Если Вы не меняли файл Robots.txt, то у Вас корзина запрещена на индексирование (Сайт - Robots.txt)
кодом -
# Не индексировать корзину
Disallow: /cart

По обновлению файла - вопрос не поняла. Объясните пожалуйста подробнее.

#134 Tneilk

Tneilk

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

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

Отправлено 01 Октябрь 2013 - 10:52

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

#135 Tneilk

Tneilk

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

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

Отправлено 01 Октябрь 2013 - 18:05

?

#136 Сake

Сake

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

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

Отправлено 02 Октябрь 2013 - 00:46

К сожалению, обновить версию библиотеки jQuery затруднительно, так как понадобиться обновление зависимых библиотек. Возможно получиться так что придется менять половину кода javascript.

#137 Tneilk

Tneilk

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

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

Отправлено 02 Октябрь 2013 - 15:36

Затруднительно но не возможно же? В чем именно тогда заквоздка с обновлением? магазин мы в течение месяца все равно не откроем, работаем над каталогом,

#138 Сake

Сake

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

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

Отправлено 03 Октябрь 2013 - 01:20

Проблема в самих зависимых библиотеках. Нет 100% вероятности что все заведется. Может получиться что время вы свое потратите зря, так как тестирования не проводились данных библиотек с другой версией jQuery. Если вы хотите изменить версию только для возможности стилизации элементов формы - то этого делать совершенно не нужно, так как обновленная версия jQuery вам в этом особо не поможет. Подобное действие может повлечь только больший вал проблем с совместимостью. Лучше поискать плагин поддерживающий версию jQuery 1.4 или отказаться от данной затеи, так как стилизация форм в первую очередь делается для подгонки элементов под дизайн.

Так же как отдельный вариант - могу посоветовать вам перейти на другую тему оформления - "Вечность", так как у неё под капотом используется jQuery 1.8

#139 Tneilk

Tneilk

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

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

Отправлено 03 Октябрь 2013 - 08:24

Шаблон вечность очень не нравится и не видел достойных решений по нему,.  Интересных плагинов под 1.4 не находил, а в дальнейшем то явно под обновленные версии выходили более качественные вещи.  Потратить время , я думаю это не страшно давайте попробуем обновить,

#140 Сake

Сake

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

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

Отправлено 04 Октябрь 2013 - 01:32

Давайте попробуем использовать код из темы "Вечность" перенесем частично уже готовый код, так думаю получиться быстрее и проще, да и проблем должно быть меньше. Единственное что изменится, так это nyroModal будет заменен на fancybox, да и к лучшему это. Выполните следующие действия - в шаблоне "HTML" найдите


<!-- Стили которые не нужно менять, грузятся из папки общих файлов -->
  <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 ? ' &nbsp; ' + 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 анонимных