Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

kanishevv

  • *
  • 1
  • +0/-0
    • Просмотр профиля
Здравствуйте.
Выгружаю каталог из 1С, 8000 наименований. Заголовки этих товаров содержат недопустимые знаки.
Поэтому принял решение сделать составные заголовки из характеристик к товару. Написал условие при котором проверяется все ли поля заполнены.

Ниже привожу свой код.

Тип товара(tip_tovara), выпадающий список
Торговая марка(torgovaya_marka), выпадающий список
Модель(model), текстовое поле

<xsl:choose>      
   <xsl:when test=".//property[@name = 'tip_tovara'] != '' or .//property[@name = torgovaya_marka] != '' or .//property[@name = model] != ''">
      <xsl:apply-templates select=".//property[@name = 'h1']" />
   </xsl:when>
   <xsl:otherwise>
      <xsl:apply-templates select=".//property[@name = 'tip_tovara']" />
      <xsl:text> </xsl:text>
      <xsl:apply-templates select=".//property[@name = 'torgovaya_marka']" />
      <xsl:text> </xsl:text>
      <xsl:apply-templates select=".//property[@name = 'model']" />
   </xsl:otherwise>
</xsl:choose>

Проблема в самом условии .//property[@name = 'tip_tovara'] != '' or .//property[@name = torgovaya_marka] != '' or .//property[@name = model] != ''".
Пустые поля или нет, вывод всегда одинаков.

Второй вопрос
Можно ли использовать русские символы в usel запросе или какие решения есть? Думал можно вынести constants.dtd, но, что то тоже не удачно

<selection>
   <target result="pages">
      <type module="catalog" method="object" />
   </target>
   <property name="hit" value="Да" />
   <sort>rand()</sort>
   <limit page="0">{limit}</limit>
</selection>

Спасибо!)

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Здравствуйте.
Выгружаю каталог из 1С, 8000 наименований. Заголовки этих товаров содержат недопустимые знаки.
Поэтому принял решение сделать составные заголовки из характеристик к товару. Написал условие при котором проверяется все ли поля заполнены.

Ниже привожу свой код.

Тип товара(tip_tovara), выпадающий список
Торговая марка(torgovaya_marka), выпадающий список
Модель(model), текстовое поле

<xsl:choose>      
   <xsl:when test=".//property[@name = 'tip_tovara'] != '' or .//property[@name = torgovaya_marka] != '' or .//property[@name = model] != ''">
      <xsl:apply-templates select=".//property[@name = 'h1']" />
   </xsl:when>
   <xsl:otherwise>
      <xsl:apply-templates select=".//property[@name = 'tip_tovara']" />
      <xsl:text> </xsl:text>
      <xsl:apply-templates select=".//property[@name = 'torgovaya_marka']" />
      <xsl:text> </xsl:text>
      <xsl:apply-templates select=".//property[@name = 'model']" />
   </xsl:otherwise>
</xsl:choose>

Вы эту конструкцию используете в шаблоне для страницы подробной информации о  товаре? Работает на основе Demodizzy шаблонов?

Второй вопрос
Можно ли использовать русские символы в usel запросе или какие решения есть? Думал можно вынести constants.dtd, но, что то тоже не удачно

<selection>
   <target result="pages">
      <type module="catalog" method="object" />
   </target>
   <property name="hit" value="Да" />
   <sort>rand()</sort>
   <limit page="0">{limit}</limit>
</selection>
Насколько мне известно, нет. По сути, значение из value попадет в запрос к базе данных, а там у полей типа "Кнопка -галочка" либо 0, либо 1
P.S. допустимые варианты удобно подсматривать в документации http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/