Вывод дополнительных изображений.

#
Вывод дополнительных изображений.
Никак не могу добиться, того чтобы определенные свойства не выводились в списке,
но при этом  я мог их вывести там где мне надо по верстке.
Шаблон xsl МагазинТовар. вывод для Магазина.
внутри
<xsl:template match="item">

пишу
      <!-- Выводим список дополнительных изображений -->
      <div class="images">
      <xsl:apply-templates select="property[@id='135']"/>
      <xsl:apply-templates select="property[@id='136']"/>
      <xsl:apply-templates select="property[@id='137']"/>
      </div>   
   
всё прекрасно выводится, но после того как я
исключаю их из отображения в списке ниже внутри
<xsl:template match="property">

вот так исключаю
<xsl:if test="((value != '' or (type = 1 and file_path != '')) and (@xml_name != 'img2' and @xml_name != 'size' and @xml_name != 'img3' and @xml_name != 'img4' and @xml_name != 'color' ))">

то и в первой конструкции они не выводятся. в xml они есть.
посоветуйте как сделать? с size и color думаю будет тоже самое, хотя не пробовал пока их вывести.





#
Re: Вывод дополнительных изображений.
для обоих случаев вы вызываете один и тот же шаблон, и в нем же запрещаете обрабатывать свойства с изображениями(правда как то ну очень криво вы это делаете)

можно сделать так
<xsl:apply-templates select="property[@id='135']">
<xsl:with-param name="my_param">1</xsl:with-param>
</xsl:apply-templates>


дальше в шаблоне
<xsl:template match="property">

принимаем параметр

<xsl:param name="my_param">0</xsl:param>

далее, если параметр не равен 1, то используем ваше условие

<xsl:choose>
<xsl:when test="$my_param != 1">
<xsl:if test="((value != '' or (type = 1 and file_path != '')) and (@xml_name != 'img2' and @xml_name != 'size' and @xml_name != 'img3' and @xml_name != 'img4' and @xml_name != 'color' ))">
не выводим изображения
</xsl:if>
</xsl:when>
<xsl:otherwise>
выводим изображения
</xsl:otherwise>
</xsl:choose>
#
Re: Вывод дополнительных изображений.
Никак не получается.  не могли бы Вы вставить конструкцию в мой шаблон, мне опыта не хватает с условными операторами в XSLT разобраться.
<xsl:template match="property">
      <xsl:if test="((value != '' or (type = 1 and file_path != '')) and (@xml_name != 'img2' and @xml_name != 'size' and @xml_name != 'img3' and @xml_name != 'img4' and @xml_name != 'color' ))">
         <tr>
            <td style="padding: 5px" bgcolor="#eeeeee">
               <b><xsl:value-of select="name"/></b>
            </td>
            <td style="padding: 5px" bgcolor="#eeeeee">
               <xsl:choose>
                  <xsl:when test="type = 1" >
                     <a href="{file_path}">Скачать файл</a>
                  </xsl:when>
                  <xsl:when test="type = 7">
                     <xsl:choose>
                        <xsl:when test="value = 1">
                           <input type="checkbox" checked="" disabled="" />
                        </xsl:when>
                        <xsl:otherwise>
                           <input type="checkbox" disabled="" />
                        </xsl:otherwise>
                     </xsl:choose>
                  </xsl:when>
                  <xsl:otherwise>
                     <xsl:value-of disable-output-escaping="yes" select="value"/>
                  </xsl:otherwise>
               </xsl:choose>
            </td>
         </tr>
      </xsl:if>
   </xsl:template>

вроде логика понятна,
но не получилось. видимо не доконца сообразил.
с первой конструкцией вывода всё понятно, куда и как.
со второй не понял.
Буду очень признателен.
#
Re: Вывод дополнительных изображений.
ну вот как то так


<xsl:template match="property">
      <xsl:param name="my_param">0</xsl:param>

      <xsl:if test="$my_param = 1">
         <tr>
            <td style="padding: 5px" bgcolor="#eeeeee">
               <b><xsl:value-of select="name"/></b>
            </td>
            <td style="padding: 5px" bgcolor="#eeeeee">
               <xsl:choose>
                  <xsl:when test="type = 1" >
                     <a href="{file_path}">Скачать файл</a>
                  </xsl:when>
                  <xsl:when test="type = 7">
                     <xsl:choose>
                        <xsl:when test="value = 1">
                           <input type="checkbox" checked="" disabled="" />
                        </xsl:when>
                        <xsl:otherwise>
                           <input type="checkbox" disabled="" />
                        </xsl:otherwise>
                     </xsl:choose>
                  </xsl:when>
                  <xsl:otherwise>
                     <xsl:value-of disable-output-escaping="yes" select="value"/>
                  </xsl:otherwise>
               </xsl:choose>
            </td>
         </tr>
      </xsl:if>


   </xsl:template>
#
Re: Вывод дополнительных изображений.
большое спасибо. это работает. в отличие от других выложенных тут вариантов, вывод type = 1 т.е. свойства товара "файл", работает как и раньше.
Авторизация