Модификации товаров

#
Re: Модификации товаров
Что-то я в ступор вошел:

<!-- для ростов -->
<xsl:template match="modifications/item/property[@xml_name='rost']">
<xsl:variable name="value" select="value" />
<select name="property134">
  <option value="{/shop/properties_for_group/property[@xml_name='rost']/list_items/list_item[list_item_value=$value]/@id}" ><xsl:value-of select="value"/></option>
</select>
</xsl:template>


В итоге получается, что не все модификации в списке, а каждый в своем отдельном выпадающем списке. Как же их все засунуть в один?
#
Re: Модификации товаров
В коде который привела Наталья нельзя собрать все в один выпадающий список нужно за цикл вывода радиобатонов выводить select что бы собралось в один выпадающий список. Но вывести select за этот цикл у меня не получилось (полагаю знаний не хватает )
В инете нарыл чтобы сформировать выдающий список используют xsl:for-each.
Но тоже не получилось...
По этому ждем помощи от Натальи
#
Re: Модификации товаров
Необходимо внести следующие изменения в код XSL-шаблона товара:
вместо:
function GetRadioValueModif(radioName)
{
var value = false;
var radioObject = document.getElementsByName(radioName);
if (radioObject!= undefined)
{
for (var i = 0; i < radioObject.length; i++)
{
if (radioObject[i].checked)
{
value = radioObject[i].value;
break;
}
}
}
return value;
}

следует использовать:
function GetSelectValue(selectName)
{
        value=document.getElementById(selectName).value;
   return value;
}

вместо:
<xsl:apply-templates select="modifications/item/property[@xml_name='razm_odez' and generate-id(.)=generate-id(key('property145', value))]"/>

следует использовать:
<select name="property145" id="property145">
<xsl:apply-templates select="modifications/item/property[@xml_name='razm_odez' and generate-id(.)=generate-id(key('property145', value))]"/>
</select>

вместо:
<xsl:apply-templates select="modifications/item/property[@xml_name='rost' and generate-id(.)=generate-id(key('property146', value))]"/>

использовать:
<select name="property146" id="property146">
<xsl:apply-templates select="modifications/item/property[@xml_name='rost' and generate-id(.)=generate-id(key('property146', value))]"/>
</select>

вместо:
<!-- для размеров -->
<xsl:template match="modifications/item/property[@xml_name='razm_odez']">
<xsl:variable name="value" select="value" />
<xsl:choose>
<xsl:when test="position() = 1">
<input name="property145" size="20" type="radio" value="{/shop/properties_for_group/property[@xml_name='razm_odez']/list_items/list_item[list_item_value=$value]/@id}" checked=""/><xsl:value-of select="value"/><br />
</xsl:when>
<xsl:otherwise>
<input name="property145" size="20" type="radio" value="{/shop/properties_for_group/property[@xml_name='razm_odez']/list_items/list_item[list_item_value=$value]/@id}" /><xsl:value-of select="value"/><br />
</xsl:otherwise>
</xsl:choose>
</xsl:template>

<!-- для ростов -->
<xsl:template match="modifications/item/property[@xml_name='rost']">
<xsl:variable name="value" select="value" />
<xsl:choose>
<xsl:when test="position() = 1">
<input name="property146" size="20" type="radio" value="{/shop/properties_for_group/property[@xml_name='rost']/list_items/list_item[list_item_value=$value]/@id}" checked="checked"/><xsl:value-of select="value"/><br />
</xsl:when>
<xsl:otherwise>
<input name="property146" size="20" type="radio" value="{/shop/properties_for_group/property[@xml_name='rost']/list_items/list_item[list_item_value=$value]/@id}" /><xsl:value-of select="value"/><br />
</xsl:otherwise>
</xsl:choose>
</xsl:template>

следует использовать:
<!-- для размеров -->
<xsl:template match="modifications/item/property[@xml_name='razm_odez']">
<xsl:variable name="value" select="value" />
<option value="{/shop/properties_for_group/property[@xml_name='razm_odez']/list_items/list_item[list_item_value=$value]/@id}" ><xsl:value-of select="value"/></option>
</xsl:template>
      
<!-- для ростов -->
<xsl:template match="modifications/item/property[@xml_name='rost']">
<xsl:variable name="value" select="value" />
<option value="{/shop/properties_for_group/property[@xml_name='rost']/list_items/list_item[list_item_value=$value]/@id}" ><xsl:value-of select="value"/></option>
</xsl:template>


вместо:
<a href="{/shop/path}cart/?action=add&amp;item_id={@id}" onclick="return AddIntoCart('{/shop/path}', {@id}, document.getElementById('count_{@id}').value + '&amp;property145=' + GetRadioValueModif('property145') + '&amp;property146=' + GetRadioValueModif('property146'))" style="text-decoration: none;"><img alt="В корзину" title="В корзину" src="/hostcmsfiles/images/cart.gif" style="margin: 0px 0px -4px 10px" />В корзину
</a>

следует использовать:
<a href="{/shop/path}cart/?action=add&amp;item_id={@id}" onclick="return AddIntoCart('{/shop/path}', {@id}, document.getElementById('count_{@id}').value + '&amp;property145=' + GetSelectValue('property145') + '&amp;property146=' + GetSelectValue('property146'))" style="text-decoration: none;"><img alt="В корзину" title="В корзину" src="/hostcmsfiles/images/cart.gif" style="margin: 0px 0px -4px 10px" />В корзину
</a>
#
Re: Модификации товаров
natalya,
Вы просто чудо, я и не сомневался что Вы это сделаете
#
Re: Модификации товаров
Всегда пожалуйста
#
Re: Модификации товаров
Наталья, нам на Вас молиться нужно
Огромное спасибо.
#
Re: Модификации товаров
Может быть это только у меня, но в корзину добавляется не модификация, выбранная в списке, а тот товар, в котором находимся.
Модератор
#
Re: Модификации товаров
Qualis,
Поставьте FireFox с FireBug, откройте окно FireBug (кнопка F12) и при нажатии переключении модификаций посмотрите, не возникают ли ошибки. Если возникают - от них нужно избавляться.
#
Re: Модификации товаров
Qualis писал(а):
Может быть это только у меня, но в корзину добавляется не модификация, выбранная в списке, а тот товар, в котором находимся.

Необходимо включить свойства товара по которым выводятся радиокнопки не на группе товара, куда входит товар, а необходимо включить на МАГАЗИНЕ. т.е. заходите в магазин, и сразу включаете свойства на группе. Должно помочь.
#
Re: Модификации товаров
Подскажите пожалуйста!
У меня такая же проблема, как у автора, только нужно указывать цвет и размер товара.
Я создал два свойства - Цвет и Размер, сделал их доступными в группе. Но я не могу понять, как этим свойствам присвоить реальные значения, т.е. задать список значений? Как создать модификации?
Способ отображения - Список-переключателями, тип - строка.

Т.е. я захожу в редактирование товара и во вкладке "Дополнительные свойства" вижу свойства: Цвет и поле для заполнения и Размер + поле для заполнения. А как задать список значений свойств для данного товара, который используется для создания модификаций?
Авторизация