Как получить список значений справочника у товара
Материал из Umicms
Как получить список значений справочника у товара?
Допустим, нам надо в каталоге задать выбор цвета хомячка - в виде выпадающего списка. При этом список цветов должен редактироваться в админ-панели.
1. В модуле "Шаблоны данных" -> Раздел сайта -> Объект каталога -> Хомячки добавляем новое поле "cvet" типа "Выпадающий список со множественным выбором"
2. В папке ~tpls/data/ создаем шаблон cvet.tpl со следующим содержанием:
<?php $FORMS = Array(); $FORMS['relation_mul_block'] = <<<END <select>% items%</select> END; $FORMS['relation_mul_item'] = <<<END <option>% value%</option> END; ?>
3. В шаблоне вывода товаров каталога (по умолчанию это ~tpls/catalog/preview.tpl) в блок ['view_block'] вставляем макрос
% data getProperty(% id%, 'cvet', 'cvet')%
Теперь в настройках каждого хомячка мы можем добавить различные цвета и выборочно назначить те цвета, что есть на складе.
________________________________________________________________________________________________________________
Posted by Maestro.KZ
Дело обстоит иначе, если работа идет через XSLT-шаблон: итак
Вставить в то место, где должен вывалиться селект
<select type="text" name="sex"> <option value="">..Выберите размер..</option> <xsl:apply-templates select="/result/page/properties/group/property[@name = 'razmer']/value/item" mode="catalog_search_selection"> <xsl:with-param name="test_par" select="$sex" /> </xsl:apply-templates>
Вставить после любого закрытого xsl:template
<!--TEMPLATE FOR SELECT--><xsl:template match="item" mode="catalog_search_selection">
<xsl:param name="test_par" />
<option value="{@id}">
<xsl:if test="$test_par = @id"><xsl:attribute name="selected">selected</xsl:attribute></xsl:if>
<xsl:value-of select="@name" />
</option>
</xsl:template>
можно причесать под маркированный список. Осталось привязать это дело к корзине, чтоб пользователь покупал ботинки нужного размера. Чем и занимаюсь теперь С ув, Maestro.KZ
