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

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

*

greencactus

  • *
  • 7
  • +1/-0
    • Просмотр профиля
Вывожу специфические свойства 1С на странице объекта каталога.

Вот кусочек страницы .xml где выводятся специфические свойства 1С

<group id="813" name="special">
   <title>1C: Специфические свойства</title>
   <property id="508" name="razmer" type="string">
      <title>Размер</title>
         <value>165 x 125 x 10 мм</value>
   </property>

   <property id="513" name="illyustracii" type="relation">
      <title>Иллюстрации</title>
      <value>
         <item id="6602" name="Черно-белые" type-id="172" ownerId="42" xlink:href="uobject://6602"/>
      </value>
   </property>

   <property id="515" name="god" type="float">
      <title>Год</title>
      <value>2</value>
   </property>

   <property id="516" name="avtor" type="relation">
      <title>Автор</title>
      <value>
         <item id="6719" name="Мадлен Дени" type-id="174" ownerId="42"   xlink:href="uobject://6719"/>
      </value>
   </property>


Как видно есть свойства значения которых хранятся сразу в value, а есть свойства в value которых хранятся ссылки на справочник со значением

Вывожу значение в таблицу с двумя колонками (первая колонка - названия, вторая - сами значения)
Для вывода использую следующую конструкцию:

      <div class="specitem">
         <table>
            <tr>
               <td align="right" width="280">
                  <xsl:apply-templates select=".//group[@name = 'special']/property/title" mode="specitems" />
               </td>
               <td width="4">
               </td>
               <td width="250">

                  <xsl:choose>
                     <xsl:when test="1 = 2">
                         <xsl:apply-templates select=".//group[@name = 'special']/property/value/item" mode="specitems2" />
                     </xsl:when>
                     <xsl:otherwise>
                         <xsl:apply-templates select=".//group[@name = 'special']/property/value" mode="specitems" />
                     </xsl:otherwise>
                  </xsl:choose>

               </td>
            </tr>
         </table>
      </div>




Шаблоны обработки результатов:

Шаблон1 - Выводит названия свойств
<xsl:template match="title" mode="specitems">
   <xsl:value-of select="." /><br/>
</xsl:template>


Шаблон2 - Выводит свойства с типом "Строка" (или "Число")
<xsl:template match="value" mode="specitems">
   <xsl:value-of select="." /><br/>
</xsl:template>



Шаблон3 - Выводит свойства с типом "Справочник"
<xsl:template match="value/item" mode="specitems2">
   <xsl:value-of select="./@name" /><br/>
</xsl:template>



Подскажите какое условие нужно написать в test="?????"

xsl:choose>
                     <xsl:when test="1 = 2">


Что бы если это справочник использовался Шаблон3, а во всех остальных случаях Шаблон2?

*

greencactus

  • *
  • 7
  • +1/-0
    • Просмотр профиля
Re:Вывод значений справочников на странице
« Ответ #1 : 20 Февраль 2014, 21:10:12 »
Друзья! неужто и правда никто не знает?

я нашёл вот такую конструкцию: "$data-type = 'relation'"
relation - это как я понимаю и есть справочник.

пишу <xsl:when test="$data-type = 'relation'"> - естественно ошибка

пишу <xsl:when test=".//group[@name = 'special']/property/value/$data-type = 'relation'"> , ну типа проверь является ли тип value справвочником, то же ошибка. Может синтаксис, или я не понимаю чего прошу от Umi?

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re:Вывод значений справочников на странице
« Ответ #2 : 21 Февраль 2014, 10:57:26 »
Друзья! неужто и правда никто не знает?

я нашёл вот такую конструкцию: "$data-type = 'relation'"
relation - это как я понимаю и есть справочник.

пишу <xsl:when test="$data-type = 'relation'"> - естественно ошибка

пишу <xsl:when test=".//group[@name = 'special']/property/value/$data-type = 'relation'"> , ну типа проверь является ли тип value справвочником, то же ошибка. Может синтаксис, или я не понимаю чего прошу от Umi?


<xsl:when test=".//group[@name = 'special']/property/@data-type = 'relation'">
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/