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


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


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

#81 Alexey11

Alexey11

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

  • Модератоpы
  • 1 057 сообщений
  • ГородНижний новгород

Отправлено 23 Декабрь 2013 - 07:51

Вы хотите сделать весь текст чуть крупнее, или какие то отдельные участки текста, например описание товара?

#82 mnbv2005

mnbv2005

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

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

Отправлено 23 Декабрь 2013 - 12:53

Добрый день!
Хочу, чтобы описание товара было крупнее автоматически. Остальное всё менять не надо.

#83 miyako

miyako

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

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

Отправлено 23 Декабрь 2013 - 14:11

Просмотр сообщенияmnbv2005 (23 Декабрь 2013 - 12:53) писал:

Добрый день!
Хочу, чтобы описание товара было крупнее автоматически. Остальное всё менять не надо.

Добавьте в конец main.css код -
.goodsData .htmlDataBlock{font-weight:bold;}

Результат на скриншоте

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

  • описание товара.png


#84 mnbv2005

mnbv2005

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

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

Отправлено 23 Декабрь 2013 - 16:27

спасибо

#85 puncherstore

puncherstore

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

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

Отправлено 15 Январь 2014 - 21:41

Скажите возможно ли все таки сделать показ красивых горизонтальных модификакий?

На форуме ответы модераторов разделились от затруднительно до нельзя. Если затруднительно, то возможен вариант реализации за дополнительную плату? Может кто-то уже реализовавывал?

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

  • вывод модификаций.jpg


#86 Сake

Сake

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

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

Отправлено 16 Январь 2014 - 00:21

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

Если для вас реализация затруднительна и вы не хотите тратить свое время, то вы всегда можете обратиться в любую веб-студию по данному вопросу.

#87 puncherstore

puncherstore

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

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

Отправлено 16 Январь 2014 - 19:29

Спасибо, но в это теме я понял только всегда раскрытый выпадающий список, у себя я так сделал.

А где то есть пример или тема с уже реализованный подобным решением, с радио кнопками и стилями для них?

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

Такой темы не нашел(

#88 Сake

Сake

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

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

Отправлено 17 Январь 2014 - 03:36

Пример вы можете увидеть с самом первом сообщении данной темы форума - на изображении. Почитайте сообщение http://forum.storela...ации/#entry4330 после внимательно смотрите тему форума. Без данной реализации подобного функционала (о котором вы описываете) - не реализовать. По сути изменение заключаются в правке кода вывода модификаций в шаблоне "Товар", а так же изменение кода в файле main.js.

#89 puncherstore

puncherstore

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

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

Отправлено 17 Январь 2014 - 09:49

Все что в этой ветке у меня уже реализовано)

Получается следующим шагом мне надо вывезти их в горизонтальный ряд? и задать стили? где искать что делать?

#90 D_mix

D_mix

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

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

Отправлено 17 Январь 2014 - 23:06

Подскажите, что не так сделал? Не появляется 2 бегунок(нет разделения на цвет и размер)

#91 Сake

Сake

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

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

Отправлено 18 Январь 2014 - 02:44

Просмотр сообщенияpuncherstore (17 Январь 2014 - 09:49) писал:

Все что в этой ветке у меня уже реализовано)

Получается следующим шагом мне надо вывезти их в горизонтальный ряд? и задать стили? где искать что делать?

Теперь вы можете почитать следующую тему форума начиная с сообщения http://forum.storela..._140#entry93406 в данной теме применяется стилизация модификаций под стиль Line.

Просмотр сообщенияD_mix (17 Январь 2014 - 23:06) писал:

Подскажите, что не так сделал? Не появляется 2 бегунок(нет разделения на цвет и размер) Voostick.ru

Пожалуйста, опишите подробнее вашу проблему. Приведите примеры на вашем сайте. О какой бегунке идет речь?

#92 D_mix

D_mix

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

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

Отправлено 18 Январь 2014 - 13:41

Вот смотрите  Безымянный.jpg   Если выбираешь цвет, то размер выбрать уже нельзя и наоборот.Что не так не знаю
Вот шаблон "Товар"
Скрытый текст


#93 Сake

Сake

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

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

Отправлено 21 Январь 2014 - 02:54

На данный момент у вас отсутствую изменения вида отображения модификаций. Модификации у вас сейчас выглядят так
goods.png
Если вы откатили изменения - пожалуйста, примените изменения повторно.

#94 nosferatum44

nosferatum44

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

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

Отправлено 21 Январь 2014 - 22:33

Просмотр сообщенияVaccina (15 Июнь 2011 - 15:13) писал:

Хм. для изменения модификации нужно сделать следующее

В шаблоне "Товар" найти и заменить следующий блок

<!-- Если это первый элемент в списке -->
{% 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 %}

заменить на

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

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


далее нужно изменить JS. Для этого в файле 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('_');
}

заменить на

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

У меня не работает ((
Цена не обновляется

Вот мой код изначальный

html
<!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
				  {% FOR values %}
					<!-- Если это первый элемент в списке -->
					{% IF goods_modifications_properties.values.first %}
					  <label class="attribute_label">{goods_modifications_properties.NAME}:</label>
					  <div class="attribute_list">
						<select name="form[properties][]"  class="attribute_select">
					  {% 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>
					  </div>
					{% ENDIF %}
				  {% ENDFOR %}
				</div>
			  {% ENDFOR %}

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('_');
  }


#95 Vaccina

Vaccina

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

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

Отправлено 22 Январь 2014 - 03:47

После инструкции ниже идут инструкции по исправлениям ошибок, изучите их в этой же теме, одна из них обсуждалась в сл.сообщении:
http://forum.storela...ции/#entry20396

#96 nosferatum44

nosferatum44

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

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

Отправлено 22 Январь 2014 - 06:54

Просмотр сообщенияVaccina (22 Январь 2014 - 03:47) писал:

После инструкции ниже идут инструкции по исправлениям ошибок, изучите их в этой же теме, одна из них обсуждалась в сл.сообщении:
http://forum.storela...ции/#entry20396

Не помогло, перечитал всю тему и не нашел ответа(

Просмотр сообщенияVaccina (20 Август 2013 - 04:00) писал:

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

goodsPriceNow.html(modificationPriceNowFormated);

и замените на

goodsPriceNow.html(modificationPriceNowFormated).attr('content', modificationPriceNow);

далее добавьте

$(function() {
$('#quantity_wanted').keyup(function() {
var price = parseFloat($('.goodsDataMainModificationPriceNow').attr('content'));
var total = price * parseInt($(this).val());
$('.goodsDataMainModificationPriceNow .num').html(number_format(total, 2, ',', ' '));
});
$('#quantity_wanted').trigger('keyup');
});

У меня тоже не заработало (
Кэш регулярно чищу

#97 Vaccina

Vaccina

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

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

Отправлено 23 Январь 2014 - 04:50

Просмотр сообщенияVaccina (03 Май 2012 - 17:37) писал:

Попробуйте сделать следующее.
Редактор тем - main.js - найдите:
return reset_arr.sort(function (a, b ) {return a - b}).join('_');
и замените B на b

это тоже изменяли?

#98 nosferatum44

nosferatum44

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

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

Отправлено 23 Январь 2014 - 05:31

Просмотр сообщенияVaccina (23 Январь 2014 - 04:50) писал:

это тоже изменяли?
да

#99 Vaccina

Vaccina

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

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

Отправлено 23 Январь 2014 - 06:35

пришлите пожалуйста ссылку на товар с модификацией

#100 nosferatum44

nosferatum44

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

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

Отправлено 23 Январь 2014 - 18:14

Просмотр сообщенияVaccina (23 Январь 2014 - 06:35) писал:

пришлите пожалуйста ссылку на товар с модификацией
Спасибо, уже ответили в тех поддержке.
Проблема была в файле main.js

Вот решение
goodsDataProperties = $('div.goodsDataMainModificationsBlock select[name="form[properties][]"]'),
и замените его на
goodsDataProperties = $('div.goodsDataMainModificationsBlockProperty'),
после найдите код
// Функция собирает свойства в строку, для определения модификации товара
  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('_');
  }
и замените его на
// Функция собирает свойства в строку, для определения модификации товара
  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('_');
  }
далее найдите код
// Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  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);
		  }
		});
	  }
	});
  }
и замените его на
// Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  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');
				  }
				});
		  }
		});
  }
далее найдите
goodsDataProperties.each(function(y){
	$(this).change(function(){
и замените на
goodsDataProperties.each(function(y){
		$(this).find('input[type="radio"]').click(function(){

Просмотр сообщенияVaccina (23 Январь 2014 - 04:50) писал:

это тоже изменяли?
Что на счет автоматического изменение стоимости товара в зависимости от выбранного количества ?




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

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