Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Системные данные (title, h1 и т.д.) у кастомных макросов

Автор atachРаздел Custom макросы

Ответов: 6
Просмотров: 2385
Последний ответ 26 Мая 2016, 15:43:26
от atach
%total% для %data doSelection()%

Автор albionРаздел Макросы UMI.CMS

Ответов: 5
Просмотров: 5298
Последний ответ 24 Июля 2011, 10:29:40
от albion
Как прописать title, description, keywords при отображение кастомого функционала

Автор atachРаздел Custom макросы

Ответов: 5
Просмотров: 2437
Последний ответ 11 Апреля 2017, 13:34:57
от Vladimir
autothumbs.php версии 2,8,4

Автор albionРаздел Настройка системы и модулей

Ответов: 6
Просмотров: 6258
Последний ответ 21 Июля 2011, 18:00:19
от admin
Яндекс.Карта на сайте

Автор thecoderРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 4483
Последний ответ 22 Июля 2013, 16:14:40
от thecoder

0 Пользователей и 1 Гость просматривают эту тему.

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Возникла такая проблема..
При импорте данных из 1С нужно импортировать поля TITLE, DESCRIPTION
Для начала хотя-бы TITLE. и хотя-бы для категорий товаров (не для самих товаров)
В файле commerceML2.xsl поле TITLE заполняется так
				<group name="common">
<title>Основные параметры</title>
<property name="title" type="string">
<title>Поле TITLE</title>
<value><xsl:value-of select="Наименование" /></value>
</property>
<property name="h1" type="string">
<title>Поле H1</title>
<value><xsl:value-of select="Наименование" /></value>
</property>
</group>

я сделал в выгрузке из 1С дополнительное поле TITLE (кусок файла import.xml )
                   <Группа>
                      <Ид>d359e107-5f8b-4260-82da-9e0cf73fad3f</Ид>
                      <Наименование>Телевизоры</Наименование>
              <TITLE>Купить Телевизоры</TITLE>
                    </Группа>

а шаблон commerceML2.xsl поменял на

				<group name="common">
<title>Основные параметры</title>
<property name="title" type="string">
<title>Поле TITLE</title>
<value><xsl:value-of select="TITLE" /></value>
</property>
<property name="h1" type="string">
<title>Поле H1</title>
<value><xsl:value-of select="Наименование" /></value>
</property>
</group>

НО при импорте поле TITLE становится пустым! Причем если поменять обратно на "Наименование" - оно заполняется наименованием, т.е. поля H1 и TITLE  становятся одинаковые. А если H1 <> TITLE  то TITLE  просто остается пустым.
Вопрос почему?
« Последнее редактирование: 07 Декабря 2013, 09:07:17 от KTI »

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Re:Как импортировать поля TITLE, DESCRIPTION из 1С
« Ответ #1 : 07 Декабря 2013, 09:33:08 »
Что уже пробовал...
Даже если в выгрузке поставить Наименование = TITLE, все равно TITLE остается пустым

 <Группа>
                      <Ид>d359e107-5f8b-4260-82da-9e0cf73fad3f</Ид>
                      <Наименование>Телевизоры</Наименование>
              <TITLE>Телевизоры</TITLE>
                    </Группа>

Хотя если посмотреть в oXygen'е, то выходные данные (umiDump20) получаются абсолютно одинаковые

          <group name="common">
               <title>Основные параметры</title>
               <property name="title" type="string">
                  <title>Поле TITLE</title>
                  <value><![CDATA[Телевизоры]]></value>
               </property>
               <property name="h1" type="string">
                  <title>Поле H1</title>
                  <value><![CDATA[Телевизоры]]></value>
               </property>
            </group>

т.е. смотрите.. если в шаблоне сделать
					<property name="title" type="string">
<title>Поле TITLE</title>
<value><xsl:value-of select="Наименование" /></value>
</property>
<property name="h1" type="string">
<title>Поле H1</title>
<value><xsl:value-of select="TITLE" /></value>
</property>

То (хотя TITLE = Наименование) и в выходном файле получаются одинаковые данные, поле TITLE все-равно остается пустым!!!
А если сделать (т.е. как было изначально)
					<property name="title" type="string">
<title>Поле TITLE</title>
<value><xsl:value-of select="Наименование" /></value>
</property>
<property name="h1" type="string">
<title>Поле H1</title>
<value><xsl:value-of select="Наименование" /></value>
</property>

то поле TITLE заполняется правильно! (становится равным наименованию)
бред какой-то..

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Re:Как импортировать поля TITLE, DESCRIPTION из 1С
« Ответ #2 : 07 Декабря 2013, 16:51:19 »
Кажется нашел пути решения! По крайней мере понял почему у меня не работало...
Все что написал ниже только мое мнение, на правдивость совершенно не претендую  ;D
В общем (после долгих экспериментов) понял, что входной файл import.xml прогоняется через схему валидации (или как там она называется). Для CommerceML она называется CommerceML2.04.xsd (в папке \xsl\xsd). И все теги которые не вписываются в эту схему просто удаляются (или игнорируются)!
Поэтому нельзя во входном файле импорта добавлять любые теги.

Теперь у меня снова возникли вопросы.
1) Как и что мне добавить в эту схему, чтобы у меня эти теги воспринимались
я вроде нашел кусок, который отвечает за группы (категории) товаров

	<cml:complexType name="Группа">
<cml:annotation>
<cml:documentation>Описывает группу товаров в каталоге </cml:documentation>
</cml:annotation>
<cml:sequence>
<cml:element name="Ид" type="ИдентфикаторГлобальныйТип">
<cml:annotation>
<cml:documentation>Идентификатор группы товаров в классификаторе</cml:documentation>
</cml:annotation>
</cml:element>
<cml:element name="Наименование" type="КомментарийТип">
<cml:annotation>
<cml:documentation>Наименование группы товаров</cml:documentation>
</cml:annotation>
</cml:element>
<cml:element name="Описание" type="КомментарийТип" minOccurs="0"/>
<cml:element name="Свойства" minOccurs="0">
<cml:annotation>
<cml:documentation>Содержит коллекцию свойств, значения которых можно или нужно указать для товаров, принадлежащих данной группе, в каталоге, пакете предложений, документах</cml:documentation>
</cml:annotation>
<cml:complexType>
<cml:sequence>
<cml:element name="Свойство" type="Свойство" maxOccurs="unbounded"/>
</cml:sequence>
</cml:complexType>
</cml:element>
<cml:element name="Группы" minOccurs="0">
<cml:annotation>
<cml:documentation>Содержит описание вложенных групп товаров</cml:documentation>
</cml:annotation>
<cml:complexType>
<cml:sequence>
<cml:element name="Группа" type="Группа" maxOccurs="unbounded"/>
</cml:sequence>
</cml:complexType>
</cml:element>
</cml:sequence>
</cml:complexType>

2) К чему (плохому) может привезти изменение схемы валидации?
3) Схема обновляется при обновлении сайта? Можно-ли сделать кастомную схему? чтобы не затиралась при обновлении
4) Есть-ли другие пути решения?
« Последнее редактирование: 07 Декабря 2013, 16:53:54 от KTI »

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Re:Как импортировать поля TITLE, DESCRIPTION из 1С
« Ответ #3 : 08 Декабря 2013, 14:17:50 »
Схема не помогла  :'(
Согласно схеме у каждой группы может быть поле "описание" типа строка

<cml:element name="Наименование" type="КомментарийТип">
<cml:annotation>
<cml:documentation>Наименование группы товаров</cml:documentation>
</cml:annotation>
</cml:element>
<cml:element name="Описание" type="КомментарийТип" minOccurs="0"/>
<cml:element name="Свойства" minOccurs="0">

я решил его использовать для заполнения например TITLE ( или DESCRIPTION, в принципе не важно)
Переделал выгрузку:
<Группа>
       <Ид>21de84cb-13d1-4d2d-ac54-5824c5e10d7a</Ид>
        <Наименование>Телевизоры</Наименование>
        <Описание>Купить Телевизоры</Описание>
</Группа>

Переделал шаблон импорта commerceML2.xsl
<property name="title" type="string">
<title>Поле TITLE</title>
<value>
<xsl:text>Купить </xsl:text>
<xsl:value-of select="Описание" />
</value>
</property>
<property name="h1" type="string">
<title>Поле H1</title>
<value><xsl:value-of select="Наименование" /></value>
</property>

Все равно TITLE остается пустым!!
Причем текст вставляется в поле TITLE  - ("Купить") , т.е. почему-то не находит тег "описание"
Что еще можно попробовать?

PS кстати, из схемы видно, что для каждой группы можно задать свои свойства, которые будут принадлежать только этой группе, но в шаблоне импорта эти свойства не обрабатываются!
Обрабатываются только свойства товаров.
Свойства групп очень удобно использовать, например для количества товаров в этой группе
Или для списка производителей в этой группе и т.д.