Помогите разобраться с Многоязычностю!
На сайте в прайсе, названия товаров перевод работает отлично. Возможно кто-то поможет с решением вывода групп товаров, на даный момент работает вывод групп товаров на Укр языке! сайт alternative-design.com.ua
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
<!-- Шаблон "МагазинПрайс" -->
<xsl:template match="/shop">
<!-- CSS для таблицы с прайсом -->
<style TYPE="text/css">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
.price_table_border, .price_table_border td
{
border-collapse: collapse;
empty-cells: show;
border-width:1px;
border-color: #CCCCCC;
border-style: solid;
padding-left: 5px;
}
]]>
</xsl:text>
</xsl:comment>
</style>
<h1><xsl:choose>
<xsl:when test="/shop/lng = 'en'">Price</xsl:when>
<xsl:when test="/shop/lng = 'ru'">Прайс-лист</xsl:when>
<xsl:otherwise>Прайс-лист</xsl:otherwise>
</xsl:choose></h1>
<!-- Отображаем таблицу -->
<table class="price_table_border">
<tr bgcolor="#EEEEEE">
<td align="center" height="25" valign="middle"><b><xsl:choose>
<xsl:when test="/shop/lng = 'en'">Name</xsl:when>
<xsl:when test="/shop/lng = 'ru'">Наименование</xsl:when>
<xsl:otherwise>Назва</xsl:otherwise>
</xsl:choose></b></td>
<td align="center" height="25" valign="middle"><b><xsl:choose>
<xsl:when test="/shop/lng = 'en'">Price</xsl:when>
<xsl:when test="/shop/lng = 'ru'">Цена</xsl:when>
<xsl:otherwise>Ціна</xsl:otherwise>
</xsl:choose></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>
<!-- Строка ссылок на другие страницы каталога -->
<xsl:if test="count_items > 0 and items_on_page > 0">
<xsl:variable name="count_pages" select="ceiling(count_items div items_on_page)"/>
<xsl:variable name="visible_pages" select="5"/>
<xsl:variable name="real_visible_pages"><xsl:choose>
<xsl:when test="$count_pages < $visible_pages"><xsl:value-of select="$count_pages"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$visible_pages"/></xsl:otherwise>
</xsl:choose></xsl:variable>
<!-- Считаем количество выводимых ссылок перед текущим элементом -->
<xsl:variable name="pre_count_page"><xsl:choose>
<xsl:when test="current_page - (floor($real_visible_pages div 2)) < 0">
<xsl:value-of select="current_page"/>
</xsl:when>
<xsl:when test="($count_pages - current_page - 1) < floor($real_visible_pages div 2)">
<xsl:value-of select="$real_visible_pages - ($count_pages - current_page - 1) - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="round($real_visible_pages div 2) = $real_visible_pages div 2">
<xsl:value-of select="floor($real_visible_pages div 2) - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="floor($real_visible_pages div 2)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose></xsl:variable>
<!-- Считаем количество выводимых ссылок после текущего элемента -->
<xsl:variable name="post_count_page"><xsl:choose>
<xsl:when test="0 > current_page - (floor($real_visible_pages div 2) - 1)">
<xsl:value-of select="$real_visible_pages - current_page - 1"/>
</xsl:when>
<xsl:when test="($count_pages - current_page - 1) < floor($real_visible_pages div 2)">
<xsl:value-of select="$real_visible_pages - $pre_count_page - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$real_visible_pages - $pre_count_page - 1"/>
</xsl:otherwise>
</xsl:choose></xsl:variable>
<xsl:variable name="i"><xsl:choose>
<xsl:when test="current_page + 1 = $count_pages"><xsl:value-of select="current_page - $real_visible_pages + 1"/></xsl:when>
<xsl:when test="current_page - $pre_count_page > 0"><xsl:value-of select="current_page - $pre_count_page"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose></xsl:variable>
<p>
<xsl:call-template name="for">
<xsl:with-param name="items_on_page" select="items_on_page"/>
<xsl:with-param name="current_page" select="current_page"/>
<xsl:with-param name="count_items" select="count_items"/>
<xsl:with-param name="i" select="$i"/>
<xsl:with-param name="post_count_page" select="$post_count_page"/>
<xsl:with-param name="pre_count_page" select="$pre_count_page"/>
<xsl:with-param name="visible_pages" select="$real_visible_pages"/>
</xsl:call-template>
</p>
<div style="clear: both"></div>
</xsl:if>
</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"><strong><i>
<xsl:choose>
<xsl:when test="/shop/lng = 'en'">
<xsl:value-of select="prorertys/property[@xml_name = 'name_en']/value"/>
</xsl:when>
<xsl:when test="/shop/lng = 'ru'">
<xsl:value-of select="prorertys/property[@xml_name = 'name_ru']/value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose></i></strong>
</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><a href="{/shop/path}{fullpath}{path}/"><xsl:choose>
<xsl:when test="/shop/lng = 'en'">
<xsl:value-of disable-output-escaping="yes" select="property[@xml_name = 'name_en']/value"/>
</xsl:when>
<xsl:when test="/shop/lng = 'ru'">
<xsl:value-of disable-output-escaping="yes" select="property[@xml_name = 'name_ru']/value"/>
</xsl:when>
<xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="name"/></xsl:otherwise>
</xsl:choose></a></td>
<td><xsl:value-of select="price_discount"/> <xsl:choose>
<xsl:when test="/shop/lng = 'en'">UAH</xsl:when>
<xsl:when test="/shop/lng = 'ru'">грн.</xsl:when>
<xsl:otherwise>грн.</xsl:otherwise>
</xsl:choose></td>
</tr>
</xsl:template>
<!-- ============================ -->
<!-- Цикл для вывода строк ссылок -->
<!-- ============================ -->
<xsl:template name="for">
<xsl:param name="items_on_page"/>
<xsl:param name="current_page"/>
<xsl:param name="pre_count_page"/>
<xsl:param name="post_count_page"/>
<xsl:param name="i" select="0"/>
<xsl:param name="count_items"/>
<xsl:param name="visible_pages"/>
<xsl:variable name="n" select="ceiling($count_items div $items_on_page)"/>
<xsl:variable name="start_page"><xsl:choose>
<xsl:when test="$current_page + 1 = $n"><xsl:value-of select="$current_page - $visible_pages + 1"/></xsl:when>
<xsl:when test="$current_page - $pre_count_page > 0"><xsl:value-of select="$current_page - $pre_count_page"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose></xsl:variable>
<xsl:if test="$i = $start_page and $current_page != 0">
<span class="ctrl">
← Ctrl
</span>
</xsl:if>
<xsl:if test="$i = ($current_page + $post_count_page + 1) and $n != ($current_page+1)">
<span class="ctrl">
Ctrl →
</span>
</xsl:if>
<xsl:if test="$count_items > $items_on_page and ($current_page + $post_count_page + 1) > $i">
<!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
<xsl:variable name="parent_group_id" select="/shop/@current_group_id"/>
<!-- Путь для тэга -->
<xsl:variable name="tag_path">
<xsl:if test="count(/shop/selected_tags/tag) = 1">tag/<xsl:value-of select="/shop/selected_tags/tag/tag_path_name"/>/</xsl:if>
</xsl:variable>
<!-- Определяем группу для формирования адреса ссылки -->
<xsl:variable name="group_link">
<xsl:choose>
<!-- Если группа не корневая (!=0) -->
<xsl:when test="$parent_group_id != 0">
<xsl:value-of select="/shop//group[@id=$parent_group_id]/fullpath"/>
</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Определяем адрес ссылки -->
<xsl:variable name="number_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="$i != 0">page-<xsl:value-of select="$i + 1"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Передаем фильтр -->
<xsl:variable name="filter">
<xsl:choose>
<xsl:when test="/shop/apply_filter/node()">?action=apply_filter&producer_id=<xsl:value-of select="/shop/producer_id"/>&saller_id=<xsl:value-of select="/shop/saller_id"/>&price_from=<xsl:value-of select="/shop/price_from"/>&price_to=<xsl:value-of select="/shop/price_to"/>&on_page=<xsl:value-of select="/shop/on_page"/>
<xsl:if test="/shop/property_xml/node()">
<!-- GET для доп. свойств -->
<xsl:value-of select="/shop/property_xml"/>
</xsl:if>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Определяем первый символ вопрос или амперсанд -->
<xsl:variable name="first_symbol">
<xsl:choose>
<xsl:when test="$filter != ''">&</xsl:when>
<xsl:otherwise>?</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Данные для стрелок сортировки -->
<xsl:variable name="arrows">
<xsl:choose>
<xsl:when test="(/shop/sort_by_field = 1) or (/shop/sort_by_field = 2)">
<xsl:choose>
<!-- Стрелка вверх -->
<xsl:when test="/shop/order_direction = 'ASC'">
<xsl:value-of select="$first_symbol"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&order_direction=1</xsl:when>
<!-- Стрелка вниз -->
<xsl:otherwise>
<xsl:value-of select="$first_symbol"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&order_direction=2</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Выводим ссылку на первую страницу -->
<xsl:if test="$current_page - $pre_count_page > 0 and $i = $start_page">
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}{$filter}{$arrows}" class="page_link" style="text-decoration: none;">←</a>
</xsl:if>
<!-- Ставим ссылку на страницу-->
<xsl:if test="$i != $current_page">
<xsl:if test="($current_page - $pre_count_page) <= $i and $i < $n">
<!-- Выводим ссылки на видимые страницы -->
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}{$number_link}{$filter}{$arrows}" class="page_link">
<xsl:value-of select="$i + 1"/>
</a>
</xsl:if>
<!-- Выводим ссылку на последнюю страницу -->
<xsl:if test="$i+1 >= ($current_page + $post_count_page + 1) and $n > ($current_page + 1 + $post_count_page)">
<!-- Выводим ссылку на последнюю страницу -->
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}page-{$n}/{$filter}{$arrows}" class="page_link" style="text-decoration: none;">→</a>
</xsl:if>
</xsl:if>
<!-- Ссылка на предыдущую страницу для Ctrl + влево -->
<xsl:if test="$current_page != 0 and $i = $current_page">
<xsl:variable name="prev_number_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="($current_page - 1) != 0">page-<xsl:value-of select="$i"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}{$prev_number_link}{$filter}{$arrows}" id="id_prev"></a>
</xsl:if>
<!-- Ссылка на следующую страницу для Ctrl + вправо -->
<xsl:if test="($n - 1) > $current_page and $i = $current_page">
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}page-{$current_page+2}/{$filter}{$arrows}" id="id_next"></a>
</xsl:if>
<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page">
<span class="current">
<xsl:value-of select="$i+1"/>
</span>
</xsl:if>
<!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
<xsl:call-template name="for">
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="items_on_page" select="$items_on_page"/>
<xsl:with-param name="current_page" select="$current_page"/>
<xsl:with-param name="count_items" select="$count_items"/>
<xsl:with-param name="pre_count_page" select="$pre_count_page"/>
<xsl:with-param name="post_count_page" select="$post_count_page"/>
<xsl:with-param name="visible_pages" select="$visible_pages"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
<!-- Шаблон "МагазинПрайс" -->
<xsl:template match="/shop">
<!-- CSS для таблицы с прайсом -->
<style TYPE="text/css">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
.price_table_border, .price_table_border td
{
border-collapse: collapse;
empty-cells: show;
border-width:1px;
border-color: #CCCCCC;
border-style: solid;
padding-left: 5px;
}
]]>
</xsl:text>
</xsl:comment>
</style>
<h1><xsl:choose>
<xsl:when test="/shop/lng = 'en'">Price</xsl:when>
<xsl:when test="/shop/lng = 'ru'">Прайс-лист</xsl:when>
<xsl:otherwise>Прайс-лист</xsl:otherwise>
</xsl:choose></h1>
<!-- Отображаем таблицу -->
<table class="price_table_border">
<tr bgcolor="#EEEEEE">
<td align="center" height="25" valign="middle"><b><xsl:choose>
<xsl:when test="/shop/lng = 'en'">Name</xsl:when>
<xsl:when test="/shop/lng = 'ru'">Наименование</xsl:when>
<xsl:otherwise>Назва</xsl:otherwise>
</xsl:choose></b></td>
<td align="center" height="25" valign="middle"><b><xsl:choose>
<xsl:when test="/shop/lng = 'en'">Price</xsl:when>
<xsl:when test="/shop/lng = 'ru'">Цена</xsl:when>
<xsl:otherwise>Ціна</xsl:otherwise>
</xsl:choose></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>
<!-- Строка ссылок на другие страницы каталога -->
<xsl:if test="count_items > 0 and items_on_page > 0">
<xsl:variable name="count_pages" select="ceiling(count_items div items_on_page)"/>
<xsl:variable name="visible_pages" select="5"/>
<xsl:variable name="real_visible_pages"><xsl:choose>
<xsl:when test="$count_pages < $visible_pages"><xsl:value-of select="$count_pages"/></xsl:when>
<xsl:otherwise><xsl:value-of select="$visible_pages"/></xsl:otherwise>
</xsl:choose></xsl:variable>
<!-- Считаем количество выводимых ссылок перед текущим элементом -->
<xsl:variable name="pre_count_page"><xsl:choose>
<xsl:when test="current_page - (floor($real_visible_pages div 2)) < 0">
<xsl:value-of select="current_page"/>
</xsl:when>
<xsl:when test="($count_pages - current_page - 1) < floor($real_visible_pages div 2)">
<xsl:value-of select="$real_visible_pages - ($count_pages - current_page - 1) - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="round($real_visible_pages div 2) = $real_visible_pages div 2">
<xsl:value-of select="floor($real_visible_pages div 2) - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="floor($real_visible_pages div 2)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose></xsl:variable>
<!-- Считаем количество выводимых ссылок после текущего элемента -->
<xsl:variable name="post_count_page"><xsl:choose>
<xsl:when test="0 > current_page - (floor($real_visible_pages div 2) - 1)">
<xsl:value-of select="$real_visible_pages - current_page - 1"/>
</xsl:when>
<xsl:when test="($count_pages - current_page - 1) < floor($real_visible_pages div 2)">
<xsl:value-of select="$real_visible_pages - $pre_count_page - 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$real_visible_pages - $pre_count_page - 1"/>
</xsl:otherwise>
</xsl:choose></xsl:variable>
<xsl:variable name="i"><xsl:choose>
<xsl:when test="current_page + 1 = $count_pages"><xsl:value-of select="current_page - $real_visible_pages + 1"/></xsl:when>
<xsl:when test="current_page - $pre_count_page > 0"><xsl:value-of select="current_page - $pre_count_page"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose></xsl:variable>
<p>
<xsl:call-template name="for">
<xsl:with-param name="items_on_page" select="items_on_page"/>
<xsl:with-param name="current_page" select="current_page"/>
<xsl:with-param name="count_items" select="count_items"/>
<xsl:with-param name="i" select="$i"/>
<xsl:with-param name="post_count_page" select="$post_count_page"/>
<xsl:with-param name="pre_count_page" select="$pre_count_page"/>
<xsl:with-param name="visible_pages" select="$real_visible_pages"/>
</xsl:call-template>
</p>
<div style="clear: both"></div>
</xsl:if>
</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"><strong><i>
<xsl:choose>
<xsl:when test="/shop/lng = 'en'">
<xsl:value-of select="prorertys/property[@xml_name = 'name_en']/value"/>
</xsl:when>
<xsl:when test="/shop/lng = 'ru'">
<xsl:value-of select="prorertys/property[@xml_name = 'name_ru']/value"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="name"/>
</xsl:otherwise>
</xsl:choose></i></strong>
</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><a href="{/shop/path}{fullpath}{path}/"><xsl:choose>
<xsl:when test="/shop/lng = 'en'">
<xsl:value-of disable-output-escaping="yes" select="property[@xml_name = 'name_en']/value"/>
</xsl:when>
<xsl:when test="/shop/lng = 'ru'">
<xsl:value-of disable-output-escaping="yes" select="property[@xml_name = 'name_ru']/value"/>
</xsl:when>
<xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="name"/></xsl:otherwise>
</xsl:choose></a></td>
<td><xsl:value-of select="price_discount"/> <xsl:choose>
<xsl:when test="/shop/lng = 'en'">UAH</xsl:when>
<xsl:when test="/shop/lng = 'ru'">грн.</xsl:when>
<xsl:otherwise>грн.</xsl:otherwise>
</xsl:choose></td>
</tr>
</xsl:template>
<!-- ============================ -->
<!-- Цикл для вывода строк ссылок -->
<!-- ============================ -->
<xsl:template name="for">
<xsl:param name="items_on_page"/>
<xsl:param name="current_page"/>
<xsl:param name="pre_count_page"/>
<xsl:param name="post_count_page"/>
<xsl:param name="i" select="0"/>
<xsl:param name="count_items"/>
<xsl:param name="visible_pages"/>
<xsl:variable name="n" select="ceiling($count_items div $items_on_page)"/>
<xsl:variable name="start_page"><xsl:choose>
<xsl:when test="$current_page + 1 = $n"><xsl:value-of select="$current_page - $visible_pages + 1"/></xsl:when>
<xsl:when test="$current_page - $pre_count_page > 0"><xsl:value-of select="$current_page - $pre_count_page"/></xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose></xsl:variable>
<xsl:if test="$i = $start_page and $current_page != 0">
<span class="ctrl">
← Ctrl
</span>
</xsl:if>
<xsl:if test="$i = ($current_page + $post_count_page + 1) and $n != ($current_page+1)">
<span class="ctrl">
Ctrl →
</span>
</xsl:if>
<xsl:if test="$count_items > $items_on_page and ($current_page + $post_count_page + 1) > $i">
<!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
<xsl:variable name="parent_group_id" select="/shop/@current_group_id"/>
<!-- Путь для тэга -->
<xsl:variable name="tag_path">
<xsl:if test="count(/shop/selected_tags/tag) = 1">tag/<xsl:value-of select="/shop/selected_tags/tag/tag_path_name"/>/</xsl:if>
</xsl:variable>
<!-- Определяем группу для формирования адреса ссылки -->
<xsl:variable name="group_link">
<xsl:choose>
<!-- Если группа не корневая (!=0) -->
<xsl:when test="$parent_group_id != 0">
<xsl:value-of select="/shop//group[@id=$parent_group_id]/fullpath"/>
</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Определяем адрес ссылки -->
<xsl:variable name="number_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="$i != 0">page-<xsl:value-of select="$i + 1"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Передаем фильтр -->
<xsl:variable name="filter">
<xsl:choose>
<xsl:when test="/shop/apply_filter/node()">?action=apply_filter&producer_id=<xsl:value-of select="/shop/producer_id"/>&saller_id=<xsl:value-of select="/shop/saller_id"/>&price_from=<xsl:value-of select="/shop/price_from"/>&price_to=<xsl:value-of select="/shop/price_to"/>&on_page=<xsl:value-of select="/shop/on_page"/>
<xsl:if test="/shop/property_xml/node()">
<!-- GET для доп. свойств -->
<xsl:value-of select="/shop/property_xml"/>
</xsl:if>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Определяем первый символ вопрос или амперсанд -->
<xsl:variable name="first_symbol">
<xsl:choose>
<xsl:when test="$filter != ''">&</xsl:when>
<xsl:otherwise>?</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Данные для стрелок сортировки -->
<xsl:variable name="arrows">
<xsl:choose>
<xsl:when test="(/shop/sort_by_field = 1) or (/shop/sort_by_field = 2)">
<xsl:choose>
<!-- Стрелка вверх -->
<xsl:when test="/shop/order_direction = 'ASC'">
<xsl:value-of select="$first_symbol"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&order_direction=1</xsl:when>
<!-- Стрелка вниз -->
<xsl:otherwise>
<xsl:value-of select="$first_symbol"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&order_direction=2</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Выводим ссылку на первую страницу -->
<xsl:if test="$current_page - $pre_count_page > 0 and $i = $start_page">
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}{$filter}{$arrows}" class="page_link" style="text-decoration: none;">←</a>
</xsl:if>
<!-- Ставим ссылку на страницу-->
<xsl:if test="$i != $current_page">
<xsl:if test="($current_page - $pre_count_page) <= $i and $i < $n">
<!-- Выводим ссылки на видимые страницы -->
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}{$number_link}{$filter}{$arrows}" class="page_link">
<xsl:value-of select="$i + 1"/>
</a>
</xsl:if>
<!-- Выводим ссылку на последнюю страницу -->
<xsl:if test="$i+1 >= ($current_page + $post_count_page + 1) and $n > ($current_page + 1 + $post_count_page)">
<!-- Выводим ссылку на последнюю страницу -->
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}page-{$n}/{$filter}{$arrows}" class="page_link" style="text-decoration: none;">→</a>
</xsl:if>
</xsl:if>
<!-- Ссылка на предыдущую страницу для Ctrl + влево -->
<xsl:if test="$current_page != 0 and $i = $current_page">
<xsl:variable name="prev_number_link">
<xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="($current_page - 1) != 0">page-<xsl:value-of select="$i"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}{$prev_number_link}{$filter}{$arrows}" id="id_prev"></a>
</xsl:if>
<!-- Ссылка на следующую страницу для Ctrl + вправо -->
<xsl:if test="($n - 1) > $current_page and $i = $current_page">
<a href="{/shop/path}{/shop/ПутьКРазделу}/{$group_link}{$tag_path}page-{$current_page+2}/{$filter}{$arrows}" id="id_next"></a>
</xsl:if>
<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page">
<span class="current">
<xsl:value-of select="$i+1"/>
</span>
</xsl:if>
<!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
<xsl:call-template name="for">
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="items_on_page" select="$items_on_page"/>
<xsl:with-param name="current_page" select="$current_page"/>
<xsl:with-param name="count_items" select="$count_items"/>
<xsl:with-param name="pre_count_page" select="$pre_count_page"/>
<xsl:with-param name="post_count_page" select="$post_count_page"/>
<xsl:with-param name="visible_pages" select="$visible_pages"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Авторизация