Несколько Вопросов По Модификациям И Взаимодействия Их С Картинками.
#1
Отправлено 06 Август 2012 - 01:00
Может условием if можно как-то исковеркнуться? Задать условие <<если "название модификации = 123", то "style="display:none", иначе...>> и далее то, что там по коду идёт. Не? Просто не так давно сижу за сторлендом и чёт всё времени нет сесть и разобраться во всех этих блоках...
Второй вопрос. Можно ли сделать так, что бы в зависимости от выбранной модификации изменялась/ся картинка/набор картинок? Например если выбран товар чёрного цвета, то отображаться будет соответствующая картинка (было бы просто чудесно, если можно отображать отдельную галерею картинок).
#2
Отправлено 06 Август 2012 - 23:34
Цитата
Может условием if можно как-то исковеркнуться? Задать условие <<если "название модификации = 123", то "style="display:none", иначе...>> и далее то, что там по коду идёт. Не? Просто не так давно сижу за сторлендом и чёт всё времени нет сесть и разобраться во всех этих блоках...
Это можно сделать, и необходимо задать именно условие. В шаблоне "Товар" есть блок
<table> <tr> {% FOR goods_modifications_properties %} <td 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 %} </td> {goods_modifications_properties.index | is_divided("2","</tr><tr>","")} {% ENDFOR %} </tr> </table>
получиться
<table> <tr> {% FOR goods_modifications_properties %} <td class="goodsDataMainModificationsBlockProperty"> <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь --> {% FOR values %} {%IFNOT goods_modifications_properties.values.NAME=123%} <!-- Если это первый элемент в списке --> {% 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 %} {% ENDIF %} {% ENDFOR %} </td> {goods_modifications_properties.index | is_divided("2","</tr><tr>","")} {% ENDFOR %} </tr> </table>
т.е мы задали условие
{%IFNOT goods_modifications_properties.values.NAME=123%}
Цитата
Это можно сделать, если разместить изображения в описании к модификации. Это делается в разделе "Товары", выдираете необходимый товар, далее в модификациях "Добавить описание"
#3
Отправлено 16 Сентябрь 2012 - 01:59
Vaccina (06 Август 2012 - 23:34) писал:
<table> <tr> {% FOR goods_modifications_properties %} <td 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 %} </td> {goods_modifications_properties.index | is_divided("2","</tr><tr>","")} {% ENDFOR %} </tr> </table>
получиться
<table> <tr> {% FOR goods_modifications_properties %} <td class="goodsDataMainModificationsBlockProperty"> <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь --> {% FOR values %} {%IFNOT goods_modifications_properties.values.NAME=123%} <!-- Если это первый элемент в списке --> {% 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 %} {% ENDIF %} {% ENDFOR %} </td> {goods_modifications_properties.index | is_divided("2","</tr><tr>","")} {% ENDFOR %} </tr> </table>
т.е мы задали условие
{%IFNOT goods_modifications_properties.values.NAME=123%}
К сожалению могу констатировать, что не работает. Если задать условие, что если значение модификации!=123, то всё показывать, иначе нет.
Шаблон пластик, попытался сделать чуть проще (как Вы предложили я тоже потом попытался сделать) и написать так:
<!-- Модификации товара --> <div class="block" {% IFNOT goods_modifications_properties.NAME=modif %}{% ELSE %}style="display:none;"{% ENDIF %}>Не работает... Ни в какую, как не извернись с этими названиями. Зато, когда пишу так:
<!-- Модификации товара --> <div class="block" {% IFNOT PAGE_TITLE=test %}{% ELSE %}style="display:none;"{% ENDIF %}>Работает... Получается для условия использовать имя значения модификации не получиться? Или что-то я не так делаю? Может из-за того что 3 часа ночи, но как это обойти, кроме как на каждую страницу без модификации задавать условие имя!="..." я не вижу...
Ещё такой вопрос. Картинку в описании я сделал. Сделал эту картинку ссылкой на саму себя большую. Как мне теперь сделать, что бы она открывалась не просто в новом окне, а как основное фото? Т.е. через скрипт в слое на этой же странице. rel="gallery" в <a> ни какого результата не даёт.
#4
Отправлено 16 Сентябрь 2012 - 02:21
#5
Отправлено 17 Сентябрь 2012 - 10:58
<table> <tr> {% FOR goods_modifications_properties %} <td class="goodsDataMainModificationsBlockProperty"> <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь --> {% FOR values %} {%IFNOT goods_modifications_properties.NAME=123%} <!-- Если это первый элемент в списке --> {% 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 %} {% ENDIF %} {% ENDFOR %} </td> {goods_modifications_properties.index | is_divided("2","</tr><tr>","")} {% ENDFOR %} </tr> </table>
2) Попробуйте в main.js найти
goodsDataProperties.each(function(y){ $(this).change(function(){
и заменить на
goodsDataProperties.each(function(y){ $(this).change(function(){ $('a[rel="gallery"]').fancybox();
#6
Отправлено 18 Сентябрь 2012 - 00:01
Vaccina (17 Сентябрь 2012 - 10:58) писал:
goodsDataProperties.each(function(y){ $(this).change(function(){
и заменить на
goodsDataProperties.each(function(y){ $(this).change(function(){ $('a[rel="gallery"]').fancybox();
А это не помогает... Изменений ни каких.
#7
Отправлено 18 Сентябрь 2012 - 11:25
Попробуйте найти
} else { // Отправим запись об ошибке на сервер sendError('no modification by slug '+slug); alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.'); } // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. updateVisibility(y);и заменить на
} else { // Отправим запись об ошибке на сервер sendError('no modification by slug '+slug); alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.'); } // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. updateVisibility(y); $('a[rel="gallery"]').fancybox();
#8
Отправлено 18 Сентябрь 2012 - 12:49
Vaccina (18 Сентябрь 2012 - 11:25) писал:
Попробуйте найти
} else { // Отправим запись об ошибке на сервер sendError('no modification by slug '+slug); alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.'); } // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. updateVisibility(y);и заменить на
} else { // Отправим запись об ошибке на сервер sendError('no modification by slug '+slug); alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.'); } // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. updateVisibility(y); $('a[rel="gallery"]').fancybox();
Если Вы про изменение кода, то да, я убираю всё лишнее сразу, дабы не разводить хаос в кодах
А вот это помогло. Спасибо большое!
#9
Отправлено 09 Сентябрь 2013 - 12:21
Товар имеет несколько модификаций, например:
- материал (первый, второй)
- размер (S, M, L)
- цвет (красный, черный, белый)
- рисунок (спереди, сзади)
Как мне сделать так, чтобы было 4 пункта, которые покупатель должен выбрать.
При этом, при выборе материала цена бы менялась, а при выборе остальных свойств цена не менялась.
Мне при вводе других модификаций (размер, цвет и пр.) все равно в ячейке цены нужно вводить цену (в противном случае будет стоять 0 руб.), но какую мне писать, если цен несколько и они зависят только от материала, а от других модификаций нет.
Я даже не знаю как объяснить, как то непонятно сказала....
Мне нужно чтобы только одно свойство товара влекло изменения в цене, а остальные были просто для выбора, но цены не меняли.
Если совсем не понятно, скажите, попробую по-другому объяснить )))
#10
Отправлено 10 Сентябрь 2013 - 03:41
Хлопок (2 одинаковых модификации только с разными свойствами и одинаковой ценой)
500р : Черный
500р : Алый
Шелк (2 одинаковых модификации только с разными свойствами и одинаковой ценой)
1000р : Черный
1000р : Алый
В редакторе это будет выглядеть так
#11
Отправлено 10 Сентябрь 2013 - 13:57
Сake (10 Сентябрь 2013 - 03:41) писал:
Хлопок (2 одинаковых модификации только с разными свойствами и одинаковой ценой)
500р : Черный
500р : Алый
Шелк (2 одинаковых модификации только с разными свойствами и одинаковой ценой)
1000р : Черный
1000р : Алый
В редакторе это будет выглядеть так mod.jpg
Огромное Вам спасибо! Теперь все понятно. Только непонятно, почему нельзя сделать проще? Например, к 1 модификации - 4-5 свойств цвета. А сейчас можно к 1 модификации несколько свойств, но обязательно разных. Т.е. 2-3 свойства цвета к 1 модификации не поставишь.
#12
Отправлено 10 Сентябрь 2013 - 14:04
(расположение принта - спереди, сзади)...
#13
Отправлено 10 Сентябрь 2013 - 23:55
#14
Отправлено 11 Сентябрь 2013 - 02:06
Dreifeld (10 Сентябрь 2013 - 14:04) писал:
А то вот сейчас так попробовала сделать, у меня к 1 товару получается 40 строк заполнять Хотя всего 5 размеров, 6 цветов и еще 2 свойства
(расположение принта - спереди, сзади)...
К сожалению, по другому данный вопрос не решить.
Надежда1986 (10 Сентябрь 2013 - 23:55) писал:
Замените содержимое вашего файла стилей carousel.css на следующее
/*-----------------------------------------------------------------------------------*/ /* 3. CAROUSEL /*-----------------------------------------------------------------------------------*/ #wrapper .d-carousel ul li { background: none; background-color: #FFF; -webkit-box-shadow: 0px 1px 2px 0px #b7b7b7; -moz-box-shadow: 0px 1px 2px 0px #b7b7b7; box-shadow: 0px 1px 2px 0px #b7b7b7; padding: 3px; width: 155px; padding-left: 0px; padding-right: 0px; } #wrapper .d-carousel ul li a { padding: 0px; } .jcarousel-direction-rtl { direction: rtl; } .d-carousel h4 { margin: 5px 0 5px 0; font-size: 14px; } .d-carousel .jcarousel-container { display: block; overflow: hidden; margin-bottom: 20px; } .d-carousel .jcarousel-item { width: 190px; height: 290px; } .d-carousel .jcarousel-container-horizontal { width: 155px; height: 325px; padding: 0 20px; } .d-carousel .jcarousel-item-horizontal { margin-left: 3px; margin-bottom: 3px; margin-top: 3px; margin-right: 11px; } .d-carousel .jcarousel-next-horizontal { position: absolute; top: 149px; right: 0; margin-right: 3px; width: 15px; height: 28px; cursor: pointer; background: transparent url(http://paletkarf.storeland.net/blog-arrows.jpg) no-repeat top right; } .d-carousel .jcarousel-direction-rtl .jcarousel-next-horizontal { left: 5px; right: auto; background-image: url(http://paletkarf.storeland.net/blog-arrows.jpg); } .d-carousel .jcarousel-next-horizontal:hover { background-position: bottom right; } .d-carousel .jcarousel-prev-horizontal { position: absolute; top: 149px; left: 0; margin-left: 3px; width: 15px; height: 28px; cursor: pointer; background: transparent url(http://paletkarf.storeland.net/blog-arrows.jpg) no-repeat top left; } .d-carousel .jcarousel-direction-rtl .jcarousel-prev-horizontal { left: auto; right: 5px; background-image: url(http://paletkarf.storeland.net/blog-arrows.jpg); } .d-carousel .jcarousel-prev-horizontal:hover { background-position: bottom left; }
#15
Отправлено 13 Сентябрь 2013 - 22:39
Сake (11 Сентябрь 2013 - 02:06) писал:
Замените содержимое вашего файла стилей carousel.css на следующее
/*-----------------------------------------------------------------------------------*/ /* 3. CAROUSEL /*-----------------------------------------------------------------------------------*/ #wrapper .d-carousel ul li { background: none; background-color: #FFF; -webkit-box-shadow: 0px 1px 2px 0px #b7b7b7; -moz-box-shadow: 0px 1px 2px 0px #b7b7b7; box-shadow: 0px 1px 2px 0px #b7b7b7; padding: 3px; width: 155px; padding-left: 0px; padding-right: 0px; } #wrapper .d-carousel ul li a { padding: 0px; } .jcarousel-direction-rtl { direction: rtl; } .d-carousel h4 { margin: 5px 0 5px 0; font-size: 14px; } .d-carousel .jcarousel-container { display: block; overflow: hidden; margin-bottom: 20px; } .d-carousel .jcarousel-item { width: 190px; height: 290px; } .d-carousel .jcarousel-container-horizontal { width: 155px; height: 325px; padding: 0 20px; } .d-carousel .jcarousel-item-horizontal { margin-left: 3px; margin-bottom: 3px; margin-top: 3px; margin-right: 11px; } .d-carousel .jcarousel-next-horizontal { position: absolute; top: 149px; right: 0; margin-right: 3px; width: 15px; height: 28px; cursor: pointer; background: transparent url(http://paletkarf.storeland.net/blog-arrows.jpg) no-repeat top right; } .d-carousel .jcarousel-direction-rtl .jcarousel-next-horizontal { left: 5px; right: auto; background-image: url(http://paletkarf.storeland.net/blog-arrows.jpg); } .d-carousel .jcarousel-next-horizontal:hover { background-position: bottom right; } .d-carousel .jcarousel-prev-horizontal { position: absolute; top: 149px; left: 0; margin-left: 3px; width: 15px; height: 28px; cursor: pointer; background: transparent url(http://paletkarf.storeland.net/blog-arrows.jpg) no-repeat top left; } .d-carousel .jcarousel-direction-rtl .jcarousel-prev-horizontal { left: auto; right: 5px; background-image: url(http://paletkarf.storeland.net/blog-arrows.jpg); } .d-carousel .jcarousel-prev-horizontal:hover { background-position: bottom left; }
И надписи все вернулись
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных