Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ

#
Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
Здравствуйте! Появилась необходимость в ИМ вывести инфоэлементы из группы. Воспользоваться доп.свойством, но смог вывести только саму группу (которая выбрана в доп.свойстве группы ИМ), точнее её данные, в данном случае название группы. Как перебрать из этой группы её инфоэлементы? Вот что у меня получилось сейчас

<xsl:if test="count(property_value[tag_name='photos']) &gt; 0">
   <div class="main-photo-wrapper">   
      <xsl:for-each select="property_value[tag_name='photos']/informationsystem_group">
                  <p><xsl:value-of select="name" /></p>
      </xsl:for-each>
   </div>
</xsl:if>


А вот что я попробовал с другим доп.свойством "Элемент информационной системы", но там нужно каждый раз добавлять элемент вручную, если он появляется в группе инфосистемы, по принципу множественного выбора. Поэтому решил использовать именно "Группа информационной системы", код которой выше.

<xsl:if test="count(property_value[tag_name='photos']) &gt; 0">
   <div class="main-photo-wrapper">      
      <xsl:for-each select="property_value[tag_name='photos']">
         <xsl:variable name="dir" select="informationsystem_item/dir"/>
         <xsl:variable name="ending" select="informationsystem_item/image_large"/>
         <img src="{$dir}{$ending}" class="main-photo-item-image"/>
      </xsl:for-each>
   </div>
</xsl:if>
Модератор
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
Внутри xsl:for-each у вас свой контекст, соответственно для выборки инфоэлементов нужно использовать полный путь
/informationsystem/informationsystem_item[informationsystem_group_id = $group_id]
предварительно записав в переменную $group_id идетификатор выбранной группы внутри xsl:for-each
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
Т.е. запись должна быть такой?


<xsl:for-each select="property_value[tag_name='photos']/informationsystem_group">
          <xsl:variable name="group_id" select="property_value[tag_name='photos']/informationsystem_group/@id"/>
          <p><xsl:value-of select="/informationsystem/informationsystem_item[informationsystem_group_id = $group_id]/name" /></p>
</xsl:for-each>


Или я не правильно понял и нужно путь в самом foreach менять?
Модератор
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
Теперь второй вопрос, откуда у вас в property_value[tag_name='photos'] взялись informationsystem_group, которые вы якобы выбираете?
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
Ааа, из переменной копирнул на автомате. Вот так правильно?



<xsl:for-each select="property_value[tag_name='photos']">

          <xsl:variable name="group_id" select="property_value[tag_name='photos']/informationsystem_group/@id"/>

          <p><xsl:value-of select="/informationsystem/informationsystem_item[informationsystem_group_id = $group_id]/name" /></p>

</xsl:for-each>



А ТДС Интернет магазина как-то нужно изменять? Я так понимаю просто так же не обратиться к informationsystem
Модератор
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
Aidar,
Опять у вас в коде property_value[tag_name='photos']/informationsystem_group, откуда это? Вы в XML видите informationsystem_group внутри property_value с tag_name='photos'?
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
То самое доп свойство отображается вот так. Ниже привел начало из ответа


<property_value id="105">
            <property_id>53</property_id>
            <property_dir_id>0</property_dir_id>
            <tag_name>photos</tag_name>
            <informationsystem_group id="5">
               <informationsystem_id>4</informationsystem_id>
               <siteuser_id>0</siteuser_id>
               <parent_id>0</parent_id>
               <shortcut_id>0</shortcut_id>
               <name>Диваны</name>
               <description></description>
               <sorting>0</sorting>
               <path>диваны</path>
Модератор
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
tag_name=photos вводит в заблуждение. Попробуйте так, внутри в property_value у вас контекст уже и есть это самое property_value, отдельно указывать его не нужно:

<xsl:for-each select="property_value[tag_name='photos']">
          <xsl:variable name="group_id" select="informationsystem_group/@id"/>
          <p><xsl:value-of select="/informationsystem/informationsystem_item[informationsystem_group_id = $group_id]/name" /></p>
</xsl:for-each>
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
Цитата:
tag_name=photos вводит в заблуждение
Ну это же тег доп.свойства для групп интернет магазина



Попробовал ваше решение, но не выводит ничего внутри

P.s. Все это дело пытаюсь вывести в шаблоне "МагазинКаталогТоваровНовыйСайт2"
#
Re: Как вывести инфоэлементы из группы типа доп.свойство "Группа информационной системы" в ИМ
Вот думаю может как-то нужно дописать ТДС Интернет магазина, чтобы можно было подтянуть инфосистемы
Скорее всего поэтому ничего не выводится этой строкой
<xsl:value-of select="/informationsystem/informationsystem_item[informationsystem_group_id = $group_id]/name" />
Авторизация