UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: KTI от 17 Октября 2012, 12:55:02

Название: Импорт данных в UMI
Отправлено: KTI от 17 Октября 2012, 12:55:02
В вики есть статья про добавление нескольких изображений товаров, там такой шаблон (добавляется в кастом 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 файле это поле есть, шаблон точно срабатывает
Название: Re:Импорт данных в UMI
Отправлено: admin от 17 Октября 2012, 14:09:06
Цитировать
В 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>
выполняется?
Название: Re:Импорт данных в UMI
Отправлено: KTI от 18 Октября 2012, 10:21:54
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="Товар/Видео"> точно выполняется

Название: Re:Импорт данных в UMI
Отправлено: KTI от 18 Октября 2012, 10:25:21
реквизит allow-runtime-add="1" в шаблоне есть
для картинок создаются поля, а для поля видео (тип строка), не хочет
Название: Re:Импорт данных в UMI
Отправлено: admin от 18 Октября 2012, 16:50:57
меня больше интересовал кусочек с созданием типа данных, когда создается тип данных он создает не только страницы товаров с соответствующими свойствами, но и типы данных к которому относиться данная страница, вот там создается поле для video? то есть меня интересует проблема на шаге преобразования 1с xml в umidump xml или на этапе превращения umidump xml в объекты, страницы и прочие сущности в самой системе
Название: Re:Импорт данных в UMI
Отправлено: KTI от 19 Октября 2012, 06:05:29
может этот кусок:
<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
Надеюсь понятно написал   :-[
Название: Re:Импорт данных в UMI
Отправлено: niakriss от 19 Ноября 2012, 15:17:05
Подскажите, а как импортировать данные из 1С в UMI? Мне дали файл import.xml с дынными из 1С... и я не знаю что с ним делать и как и куда загружать.. или где почитать можно?