Помогите пожалуйста разобраться с сортировкой свойств для товара.

#
Помогите пожалуйста разобраться с сортировкой свойств для товара.
Мучаюсь какой день уже, не знаю что и делать, помогите разобраться, может кто сталкивался с данной проблемой, пытаюсь построить список свойств с правильной сортировкой значений.

Пробую выводить так:

        
<xsl:apply-templates select="property_value">
                <xsl:sort select="order" order="descending" data-type="number"/>
                </xsl:apply-templates>


Шаблон:

    <xsl:template match="property_value">
      <xsl:if test="value/node() and value != '' or file/node() and file != ''">
<xsl:variable name="class_name"><xsl:choose><xsl:when test="position() mod 2 !=0">grey</xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose></xsl:variable>
         <xsl:variable name="property_id" select="property_id" />
         <xsl:variable name="property" select="/shop/shop_item_properties//property[@id=$property_id]" />

         <dt><xsl:value-of select="$property/name"/></dt>
         <dd class="{$class_name}">
            <xsl:choose>
               <xsl:when test="$property/type = 2">
                  <a href="{file_path}">Скачать файл</a>
               </xsl:when>
               <xsl:when test="$property/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>
         </dd>
      </xsl:if>
   </xsl:template>



Сортировка пляшет, с низу вверх или с верху вниз перебрасывает значений, но не сортирует их в правильном порядке как я задал в дополнительных свойствах товара указав цифры сортировки.


Торговая марка: motorola 1
Тип радиостанции: портативная 2
Диапазон частот: 400-470 МГц 3

и.т.д, данный способ не сортирует совершенно и хаотично раскидывает значения.


Так же пробовал вот так:

<xsl:apply-templates select="/shop/shop_item_properties//property"/>



Шаблон:

<xsl:template match="property">
<xsl:variable name="property_id" select="@id" />

<p><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></p>

<xsl:apply-templates select="/shop/shop_item/property_value[property_id = $property_id]" />

</xsl:template>



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

Торговая марка: 892 2979 motorola torgovaia-marka

Не понимаю как можно убрать лишний мусор и оставить лишь только имя значения, что бы в конечном итоге получилось

Торговая марка: motorola


Помогите пожалуйста решить данный вопрос.

#
Re: Помогите пожалуйста разобраться с сортировкой свойств для товара.
а еще такой шаблон ниже есть?
<!-- Вывод строки со значением свойства -->
   <xsl:template match="/shop/shop_item/property_value">
      <xsl:variable name="property_id" select="property_id" />
      <xsl:variable name="property" select="/shop/shop_item_properties//property[@id=$property_id]" />
      
      
      <td style="padding: 5px" bgcolor="#F5F5F5">
         <xsl:choose>
            <xsl:when test="$property/type = 7">
               <input type="checkbox" disabled="disabled">
                  <xsl:if test="value = 1">
                     <xsl:attribute name="checked">checked</xsl:attribute>
                  </xsl:if>
               </input>
            </xsl:when>
            <xsl:otherwise>
               <xsl:value-of disable-output-escaping="yes" select="value"/>
            </xsl:otherwise>
         </xsl:choose>
      </td>
      
</xsl:template>
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Помогите пожалуйста разобраться с сортировкой свойств для товара.
Примерно похожий такой шаблон да, у меня он выглядит так:

   <xsl:template match="property_value">
      <xsl:if test="value/node() and value != '' or file/node() and file != ''">
<xsl:variable name="class_name"><xsl:choose><xsl:when test="position() mod 2 !=0">grey</xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose></xsl:variable>
         <xsl:variable name="property_id" select="property_id" />
         <xsl:variable name="property" select="/shop/shop_item_properties//property[@id=$property_id]" />

         <dt><xsl:value-of select="$property/name"/></dt>
         <dd class="{$class_name}">
            <xsl:choose>
               <xsl:when test="$property/type = 2">
                  <a href="{file_path}">Скачать файл</a>
               </xsl:when>
               <xsl:when test="$property/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>
         </dd>
      </xsl:if>
   </xsl:template>



С Вашим попробовал, выводит только значения, без названий, а вывод делается у Вас через

<xsl:apply-templates select="property_value">
?

А то как-то очень странно у меня, вот изображение одного из первых свойств http://i079.radikal.ru/1306/10/e66b50d2c14a.jpg

#
Re: Помогите пожалуйста разобраться с сортировкой свойств для товара.
И еще, когда вывожу так:

               <dl class="additional_info">
               <xsl:apply-templates select="/shop/shop_item_properties//property"/>
               </dl>



шаблон:

   <xsl:template match="property_value">
      <xsl:if test="value/node() and value != '' or file/node() and file != ''">
<xsl:variable name="class_name"><xsl:choose><xsl:when test="position() mod 2 !=0">grey</xsl:when><xsl:otherwise></xsl:otherwise></xsl:choose></xsl:variable>
         <xsl:variable name="property_id" select="property_id" />
         <xsl:variable name="property" select="/shop/shop_item_properties//property[@id=$property_id]" />

         <dt><xsl:value-of select="$property/name"/></dt>
         <dd class="{$class_name}">
            <xsl:choose>
               <xsl:when test="$property/type = 2">
                  <a href="{file_path}">Скачать файл</a>
               </xsl:when>
               <xsl:when test="$property/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>
         </dd>
      </xsl:if>
   </xsl:template>



То получается вот такое, как на изображении

http://s43.radikal.ru/i099/1306/aa/ba86d5ba4e2c.jpg

В этом случае не знаю как убрать поля отмеченные красным в столбце, а то выводится плюс к значению мусор не нужный.
#
Re: Помогите пожалуйста разобраться с сортировкой свойств для товара.
Вот полность мой шаблон, который сортируется по Порядку сортировки, выводит название и значения
<xsl:template match="shop_item">
...
<xsl:apply-templates select="/shop/shop_item_properties//property"/>
...
</xsl:template>

<xsl:template match="property">
      <xsl:variable name="property_id" select="@id" />
      <xsl:if test="/shop/shop_item/property_value[property_id = $property_id]/value/node() and /shop/shop_item/property_value[property_id = $property_id]/value != '' or /shop/shop_item/property_value[property_id = $property_id]/type != 2">
         <tr>
            <td style="padding: 5px" bgcolor="#F5F5F5"><xsl:value-of disable-output-escaping="yes" select="name"/></td>
            <xsl:apply-templates select="/shop/shop_item/property_value[property_id = $property_id]" />
         </tr>
      </xsl:if>
</xsl:template>


<xsl:template match="/shop/shop_item/property_value">
      <xsl:variable name="property_id" select="property_id" />
      <xsl:variable name="property" select="/shop/shop_item_properties//property[@id=$property_id]" />
      
      
      <td style="padding: 5px" bgcolor="#F5F5F5">
         <xsl:choose>
            <xsl:when test="$property/type = 7">
               <input type="checkbox" disabled="disabled">
                  <xsl:if test="value = 1">
                     <xsl:attribute name="checked">checked</xsl:attribute>
                  </xsl:if>
               </input>
            </xsl:when>
            <xsl:otherwise>
               <xsl:value-of disable-output-escaping="yes" select="value"/>
            </xsl:otherwise>
         </xsl:choose>
      </td>
      
</xsl:template>
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Помогите пожалуйста разобраться с сортировкой свойств для товара.
Уважаемый, благодарствую Вам, сегодня тех. поддержка не смогла решить данную проблему, меня явно там не поняли совершенно, но Вы очень помогли решить с тем, чем я бьюсь уже не первый день, за это огромное спасибо, еще плюсик в теме к насущным вопросам
#
Re: Помогите пожалуйста разобраться с сортировкой свойств для товара.
Ну отлично, что все получилось.
С этим кстати мне помогли пару месяцев назад ТП
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Помогите пожалуйста разобраться с сортировкой свойств для товара.
Вчера они видимо поленились совершенно
Авторизация