В вики есть статья про добавление нескольких изображений товаров, там такой шаблон (добавляется в кастом commerceML2.xsl):
<xsl:template match="Товар/Картинка">
<xsl:if test="string-length(.)">
<property name="photo{position()}" title="Картинка{position()}" type="img_file" visible="visible" allow-runtime-add="1">
<type data-type="img_file"/>
<title>Картинка</title>
<value>./images/cms/data/<xsl:value-of select="."/></value>
</property>
</xsl:if>
</xsl:template>
он создает новые поля (если их не было): photo2, photo3 и т.д.:
.....
<property id="450" name="photo2" type="img_file">
<property id="450" name="photo3" type="img_file">
.....
Почему когда я вставляю свой шаблон:
<xsl:template match="Товар/Видео">
<xsl:if test="string-length(.)">
<property name="video" type="string" visible="visible" allow-runtime-add="1">
<title>Видео</title>
<value><xsl:value-of select="."/></value>
</property>
</xsl:if>
</xsl:template>
у меня новое поле (video) не создается (само)?
В xml файле это поле есть, шаблон точно срабатывает
В xml файле это поле есть
, а можно глянуть в этот xml файл?
шаблон точно срабатывает
то есть мы точно знаем что блок <xsl:template match="Товар/Видео">
<xsl:if test="string-length(.)">
<property name="video" type="string" visible="visible" allow-runtime-add="1">
<title>Видео</title>
<value><xsl:value-of select="."/></value>
</property>
</xsl:if>
</xsl:template>
выполняется?
XML: (урезанный)
<Товары>
<Товар>
<Ид>15545916-b8a9-4054-b943-d76dc2c6e14b</Ид>
<Наименование>Холодильник</Наименование>
<БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт</БазоваяЕдиница>
<Картинка>import_files/15/15545916-b8a9-4054-b943-d76dc2c6e14b_2.jpg</Картинка>
<Видео>http://www.youtube.com/watch?v=IvLUcOAAAAAAAYAA</Видео>
</Товар>
шаблон <xsl:template match="Товар/Видео"> точно выполняется
может этот кусок:
<xsl:template match="Группы/Группа" mode="types">
<type id="{Ид}" title='1C: {Наименование}' parent-id="root-catalog-object-type">
<xsl:if test="name(../../.) = 'Группа'">
<xsl:attribute name="parent-id"><xsl:value-of select="../../Ид" /></xsl:attribute>
</xsl:if>
<base module="catalog" method="object">Объект каталога</base>
<fieldgroups>
<!-- product fields -->
<group name="product" title="1C: Общие свойства" visible="visible">
<field name="photo" title="Картинка" visible="visible">
<type name="Изображение" data-type="img_file"/>
</field>
<field name="video" title="Видео" visible="visible">
<type name="Видео" data-type="string"/>
</field>
<field name="bar_code" title="Штрих-код" visible="visible">
<type name="Строка" data-type="string"/>
</field>
<field name="weight" title="Вес" visible="visible">
<type name="Число с точкой" data-type="float"/>
</field>
</group>
</fieldgroups>
</type>
<xsl:apply-templates select="Группы" mode="types" />
</xsl:template>
В нем для photo создается отдельное поле
<field name="photo" title="Картинка" visible="visible">
<type name="Изображение" data-type="img_file"/>
</field>
но, если картинок несколько, то автоматически создаются поля photo1, photo2
и т.д. Причем только в тех разделах каталога, где они есть у товара. Хотя предварительно они не определяются.
Я по аналогии сделал для поля видео:
<field name="video" title="Видео" visible="visible">
<type name="Видео" data-type="string"/>
</field>
Шаблон заработал и поле появилось, но.. для всего каталога! т.е. для всех товаров, а мне бы хотелось только для той категории в которой у товаров есть поле видео, т.е. как у photo2, 3
Надеюсь понятно написал :-[