сортировка групп и товаров в прайс-листе

#
сортировка групп и товаров в прайс-листе
Коллеги! Проблемы с сортировкой в прайс-листе!
Сейчас прайс-лист реализован следующим XSL-шаблоном:

      <h1>Прайс-лист</h1>
   <p style="text-align: right;"><a href="?action=print">Печатать прайс</a></p>
      <!-- Отображаем таблицу -->
      <table class="price_table_border">
         <tr bgcolor="#EEEEEE">
         <td align="center" height="25" valign="middle"><b>Наименование</b></td>
         <td align="center" height="25" valign="middle"><b>Цена</b></td>
         </tr>
         <xsl:apply-templates select="/shop/item[@group = 0]"/>
         <xsl:apply-templates select="//group"><xsl:sort select="@id" data-type="number" order="ascending"/></xsl:apply-templates>
      </table>
      
      <!-- Строка ссылок на другие страницы каталога -->
      <p>
         <xsl:if test="count_items > 0 and items_on_page > 0">
            <xsl:call-template name="for">
               <xsl:with-param name="n" select="count_items div items_on_page"/>
               <xsl:with-param name="current_page" select="current_page"/>
            </xsl:call-template>
            <div style="clear: both"></div>
         </xsl:if>
      </p>
      
   </xsl:template>
   
   <!-- Группы товаров -->
   <xsl:template match="group">
      <xsl:variable name="attr_group_id"><xsl:value-of select="@id"/></xsl:variable>
      <xsl:if test="count(/shop/item[@group=$attr_group_id]) > 0">
         <tr>
            <td bgcolor="#EEEEEE" colspan="2">
               <xsl:value-of select="name"/>
            </td>
         </tr>
         <xsl:apply-templates select="/shop/item[@group = $attr_group_id]"/>
         <!--<xsl:with-param name="group_id" select="@id"/>
      </xsl:apply-templates>-->
   </xsl:if>
</xsl:template>

<!-- Товары -->
<xsl:template match="/shop/item">
   <tr>
      <td><xsl:value-of select="name"/></td>
      <td><xsl:value-of select="price"/>&#xA0;<xsl:value-of select="currency"/></td>
   </tr>
</xsl:template>


При этом, к сожалению, производится произвольная сортировка (по крайней мере я не вижу закономерности при выводе объектов): http://bitunit.ru/software/price/
Мне хотелось бы настроить сортировку объектов по приоритету, подскажите, пожалуйста, как это сделать?
      <h1>Прайс-лист</h1>
   <p style="text-align: right;"><a href="?action=print">Печатать прайс</a></p>
      <!-- Отображаем таблицу -->
      <table class="price_table_border">
         <tr bgcolor="#EEEEEE">
         <td align="center" height="25" valign="middle"><b>Наименование</b></td>
         <td align="center" height="25" valign="middle"><b>Цена</b></td>
         </tr>
         <xsl:apply-templates select="/shop/item[@group = 0]"/>
         <xsl:apply-templates select="//group"><xsl:sort select="@id" data-type="number" order="ascending"/></xsl:apply-templates>
      </table>
      
      <!-- Строка ссылок на другие страницы каталога -->
      <p>
         <xsl:if test="count_items > 0 and items_on_page > 0">
            <xsl:call-template name="for">
               <xsl:with-param name="n" select="count_items div items_on_page"/>
               <xsl:with-param name="current_page" select="current_page"/>
            </xsl:call-template>
            <div style="clear: both"></div>
         </xsl:if>
      </p>
      
   </xsl:template>
   
   <!-- Группы товаров -->
   <xsl:template match="group">
      <xsl:variable name="attr_group_id"><xsl:value-of select="@id"/></xsl:variable>
      <xsl:if test="count(/shop/item[@group=$attr_group_id]) > 0">
         <tr>
            <td bgcolor="#EEEEEE" colspan="2">
               <xsl:value-of select="name"/>
            </td>
         </tr>
         <xsl:apply-templates select="/shop/item[@group = $attr_group_id]"/>
         <!--<xsl:with-param name="group_id" select="@id"/>
      </xsl:apply-templates>-->
   </xsl:if>
</xsl:template>

<!-- Товары -->
<xsl:template match="/shop/item">
   <tr>
      <td><xsl:value-of select="name"/></td>
      <td><xsl:value-of select="price"/>&#xA0;<xsl:value-of select="currency"/></td>
   </tr>
</xsl:template>
Модератор
#
Re: сортировка групп и товаров в прайс-листе
drwb,
В XSL я вижу сортировку только групп, а по тексту предполагаю, что речь идет о товарах.
Чаще всего сортировку делаются при вызове с использованием API, а не в XSL-шаблоне.
#
Re: сортировка групп и товаров в прайс-листе
Речь идет и о группах и о товарах. Про API попытаюсь найти в документации.
Спасибо!
#
Re: сортировка групп и товаров в прайс-листе
drwb, сортировка групп и товаров в прайсе задается в коде типовой динамической страницы "Прайс" в блоке:
$param['items_field_order'] = 'shop_groups_id, shop_items_catalog_name';
$param['items_order'] = 'Asc';

$param['group_field_order'] = 'shop_groups_id';
$param['group_order'] = 'Asc';

Т.е. по умолчанию названия товаров сортируются по алфавиту(это, кстати, видно на вашем сайте http://bitunit.ru/software/price/).
Если вам нужно сортировать товары по значениям их порядков сортировки, то вместо данного блока используйте этот:
$param['items_field_order'] = 'shop_groups_id, shop_items_catalog_order';
$param['items_order'] = 'Asc';

$param['group_field_order'] = 'shop_groups_id';
$param['group_order'] = 'Asc';

Изменять поле сортировки групп, к сожалению, нельзя.
#
Re: сортировка групп и товаров в прайс-листе
Наталья, большое спасибо, действительно, сортировка выглядит так как и требовалось! Сортировать по приоритету группы, возможно и не имеет смысла, с точки зрения удобства пользователя.
#
Re: сортировка групп и товаров в прайс-листе
drwb, пожалуйста.

Сейчас группы сортируются в прайсе по их идентификаторам(поле "Код". Если использовать другие поля для их сортировки, то это может привести к некорректному формированию прайса.
Авторизация