Advertisement
toorr2p

Untitled

Dec 10th, 2012
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 40.93 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE xsl:stylesheet>
  3. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  4.     <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"/>
  5.     <xsl:decimal-format name="my" decimal-separator="," grouping-separator=" "/>
  6.    
  7.     <xsl:template match="/">
  8.         <script>
  9.             function countCartAdd(id)
  10.             {
  11.             var countCartValue = $("#countCart_"+id).html();
  12.             var newCount = 1;
  13.             newCount += parseInt(countCartValue);
  14.             $("#countCart_"+id).html(newCount);
  15.             //$("#countCart_"+id).html(countCartValue+1);
  16.             }
  17.         </script>
  18.         <xsl:apply-templates select="/site"/>
  19.     </xsl:template>
  20.    
  21.     <xsl:template match="/site">
  22.         <!-- <h1>Поиск</h1> -->
  23.        
  24.         <!-- Форма поиска -->
  25.         <form method="get" action="/search/">
  26.             <input type="text" name="text" value="{query}" maxlength="200" class="search_input_bg"/>&#xA0;
  27.             <input type="submit" class="search_ok" value=""/>
  28.         </form>
  29.         <br/>
  30.         <xsl:if test="query!=''">
  31.             <!-- <p>
  32.                 <strong>Найдено <xsl:value-of select="total"/>&#xA0;<xsl:call-template name="declension">
  33.                 <xsl:with-param name="number" select="total"/></xsl:call-template></strong>.</p> -->
  34.            
  35.             <xsl:if test="total!=0">
  36.                 <!-- <ol start="{(page) * limit + 1}"> -->
  37.                     <div id="search_pages">
  38.                         <ul>
  39.                             <xsl:apply-templates select="search_page" mode="new">
  40.                             </xsl:apply-templates>
  41.                         </ul>
  42.                     </div>
  43.                     <!-- </ol> -->
  44.                
  45.                 <!-- Строка ссылок на другие страницы результата поиска -->
  46.                 <table border="0" width="100%">
  47.                     <tr>
  48.                         <td width="220" style="padding-top: 0px;">
  49.                             <div class="pages_description ffg" style="clear: both">
  50.                                 <ul>
  51.                                    
  52.                                    
  53.                                     <xsl:if test="total &gt; 0 and limit &gt; 0">
  54.                                        
  55.                                         <xsl:variable name="count_pages" select="ceiling(total div limit)"/>
  56.                                        
  57.                                         <xsl:variable name="visible_pages" select="2"/>
  58.                                        
  59.                                         <xsl:variable name="real_visible_pages"><xsl:choose>
  60.                                                 <xsl:when test="$count_pages &lt; $visible_pages"><xsl:value-of select="$count_pages"/></xsl:when>
  61.                                                 <xsl:otherwise><xsl:value-of select="$visible_pages"/></xsl:otherwise>
  62.                                         </xsl:choose></xsl:variable>
  63.                                        
  64.                                         <!-- Считаем количество выводимых ссылок перед текущим элементом -->
  65.                                         <xsl:variable name="pre_count_page"><xsl:choose>
  66.                                                 <xsl:when test="page  - (floor($real_visible_pages div 2)) &lt; 0">
  67.                                                     <xsl:value-of select="page"/>
  68.                                                 </xsl:when>
  69.                                                 <xsl:when test="($count_pages  - page) &lt; floor($real_visible_pages div 2)">
  70.                                                     <xsl:value-of select="$real_visible_pages - ($count_pages  - page) - 1"/>
  71.                                                 </xsl:when>
  72.                                                 <xsl:otherwise>
  73.                                                     <xsl:choose>
  74.                                                         <xsl:when test="round($real_visible_pages div 2) = $real_visible_pages div 2">
  75.                                                             <xsl:value-of select="floor($real_visible_pages div 2) - 1"/>
  76.                                                         </xsl:when>
  77.                                                         <xsl:otherwise>
  78.                                                             <xsl:value-of select="floor($real_visible_pages div 2)"/>
  79.                                                            
  80.                                                            
  81.                                                         </xsl:otherwise>
  82.                                                     </xsl:choose>
  83.                                                 </xsl:otherwise>
  84.                                         </xsl:choose></xsl:variable>
  85.                                        
  86.                                         <!-- Считаем количество выводимых ссылок после текущего элемента -->
  87.                                         <xsl:variable name="post_count_page"><xsl:choose>
  88.                                                 <xsl:when test="0 &gt; page - (floor($real_visible_pages div 2) - 1)">
  89.                                                     <xsl:value-of select="$real_visible_pages - page"/>
  90.                                                 </xsl:when>
  91.                                                 <xsl:when test="($count_pages  - page) &lt; floor($real_visible_pages div 2)">
  92.                                                     <xsl:value-of select="$real_visible_pages - $pre_count_page - 1"/>
  93.                                                 </xsl:when>
  94.                                                 <xsl:otherwise>
  95.                                                     <xsl:value-of select="$real_visible_pages - $pre_count_page - 1"/>
  96.                                                 </xsl:otherwise>
  97.                                                
  98.                                         </xsl:choose></xsl:variable>
  99.                                        
  100.                                         <xsl:variable name="i"><xsl:choose>
  101.                                                 <xsl:when test="page + 1 = $count_pages"><xsl:value-of select="page - $real_visible_pages + 1"/></xsl:when>
  102.                                                 <xsl:when test="page - $pre_count_page &gt; 0"><xsl:value-of select="page - $pre_count_page"/></xsl:when>
  103.                                                 <xsl:otherwise>0</xsl:otherwise>
  104.                                         </xsl:choose></xsl:variable>
  105.                                        
  106.                                         <xsl:call-template name="for_arrows_down_prev">
  107.                                             <xsl:with-param name="limit" select="limit"/>
  108.                                             <xsl:with-param name="page" select="page"/>
  109.                                             <xsl:with-param name="total" select="total"/>
  110.                                             <xsl:with-param name="visible_pages" select="10000"/>
  111.                                         </xsl:call-template>
  112.                                        
  113.                                     </xsl:if>
  114.                                    
  115.                                    
  116.                                    
  117.                                    
  118.                                 </ul>
  119.                             </div>
  120.                         </td>
  121.                         <td width="100%" style="padding-top: 0px;">
  122.                             <div class="pages ffg" style="clear: both">
  123.                                 <ul>
  124.                                     <xsl:call-template name="for">
  125.                                         <xsl:with-param name="limit" select="limit"/>
  126.                                         <xsl:with-param name="page" select="page"/>
  127.                                         <xsl:with-param name="total" select="total"/>
  128.                                         <xsl:with-param name="visible_pages">9999</xsl:with-param>
  129.                                     </xsl:call-template>
  130.                                 </ul>
  131.                             </div>
  132.                         </td>
  133.                         <td width="220" style="padding-top: 0px;">
  134.                             <div class="pages_description ffg" style="clear: both">
  135.                                 <ul>
  136.                                    
  137.                                     <xsl:if test="total &gt; 0 and limit &gt; 0">
  138.                                        
  139.                                         <xsl:variable name="count_pages" select="ceiling(total div limit)"/>
  140.                                        
  141.                                         <xsl:variable name="visible_pages" select="2"/>
  142.                                        
  143.                                         <xsl:variable name="real_visible_pages"><xsl:choose>
  144.                                                 <xsl:when test="$count_pages &lt; $visible_pages"><xsl:value-of select="$count_pages"/></xsl:when>
  145.                                                 <xsl:otherwise><xsl:value-of select="$visible_pages"/></xsl:otherwise>
  146.                                         </xsl:choose></xsl:variable>
  147.                                        
  148.                                         <!-- Считаем количество выводимых ссылок перед текущим элементом -->
  149.                                         <xsl:variable name="pre_count_page"><xsl:choose>
  150.                                                 <xsl:when test="page  - (floor($real_visible_pages div 2)) &lt; 0">
  151.                                                     <xsl:value-of select="page"/>
  152.                                                 </xsl:when>
  153.                                                 <xsl:when test="($count_pages  - page) &lt; floor($real_visible_pages div 2)">
  154.                                                     <xsl:value-of select="$real_visible_pages - ($count_pages  - page) - 1"/>
  155.                                                 </xsl:when>
  156.                                                 <xsl:otherwise>
  157.                                                     <xsl:choose>
  158.                                                         <xsl:when test="round($real_visible_pages div 2) = $real_visible_pages div 2">
  159.                                                             <xsl:value-of select="floor($real_visible_pages div 2) - 1"/>
  160.                                                         </xsl:when>
  161.                                                         <xsl:otherwise>
  162.                                                             <xsl:value-of select="floor($real_visible_pages div 2)"/>
  163.                                                            
  164.                                                            
  165.                                                         </xsl:otherwise>
  166.                                                     </xsl:choose>
  167.                                                 </xsl:otherwise>
  168.                                         </xsl:choose></xsl:variable>
  169.                                        
  170.                                         <!-- Считаем количество выводимых ссылок после текущего элемента -->
  171.                                         <xsl:variable name="post_count_page"><xsl:choose>
  172.                                                 <xsl:when test="0 &gt; page - (floor($real_visible_pages div 2) - 1)">
  173.                                                     <xsl:value-of select="$real_visible_pages - page"/>
  174.                                                 </xsl:when>
  175.                                                 <xsl:when test="($count_pages  - page) &lt; floor($real_visible_pages div 2)">
  176.                                                     <xsl:value-of select="$real_visible_pages - $pre_count_page - 1"/>
  177.                                                 </xsl:when>
  178.                                                 <xsl:otherwise>
  179.                                                     <xsl:value-of select="$real_visible_pages - $pre_count_page - 1"/>
  180.                                                 </xsl:otherwise>
  181.                                         </xsl:choose></xsl:variable>
  182.                                        
  183.                                         <xsl:variable name="i"><xsl:choose>
  184.                                                 <xsl:when test="page + 1 = $count_pages"><xsl:value-of select="page - $real_visible_pages + 1"/></xsl:when>
  185.                                                 <xsl:when test="page - $pre_count_page &gt; 0"><xsl:value-of select="page - $pre_count_page"/></xsl:when>
  186.                                                 <xsl:otherwise>0</xsl:otherwise>
  187.                                         </xsl:choose></xsl:variable>
  188.                                        
  189.                                         <xsl:call-template name="for_arrows_down_next">
  190.                                             <xsl:with-param name="limit" select="limit"/>
  191.                                             <xsl:with-param name="page" select="page"/>
  192.                                             <xsl:with-param name="total" select="total"/>
  193.                                             <xsl:with-param name="visible_pages" select="10000"/>
  194.                                         </xsl:call-template>
  195.                                        
  196.                                     </xsl:if>
  197.                                    
  198.                                    
  199.                                    
  200.                                 </ul>
  201.                             </div>
  202.                         </td>
  203.                     </tr>
  204.                 </table>
  205.                
  206.                
  207.                
  208.                
  209.                
  210.             </xsl:if>
  211.         </xsl:if>
  212.        
  213.         <xsl:if test="query = ''">
  214.             <p>Введите поисковой запрос.</p>
  215.         </xsl:if>
  216.     </xsl:template>
  217.    
  218.     <xsl:template match="search_page">
  219.         <li>
  220.             <a href="{url}">
  221.                 <xsl:value-of select="title"/>
  222.             </a>
  223.             <br/>
  224.            
  225.             <!--<xsl:value-of select="url" />-->
  226.             <xsl:apply-templates select="url"/>&#xA0;·&#xA0; <xsl:value-of select="size"/> Кб&#xA0;·&#xA0;<xsl:value-of select="date"/></li>
  227.     </xsl:template>
  228.    
  229.    
  230.     <xsl:template match="search_page" mode="new">
  231.         <li>
  232.             <div class="search_page" style="height: 300px;">
  233.                 <div class="i-head">
  234.                     <a href="{url}" style="text-decoration:none;" title="{search_page/name}">
  235.                         <img src="{image_small}" width="179" height="179" border="0" alt="{search_page/name}" />
  236.                     </a>
  237.                 </div>
  238.                 <div class="i-body">
  239.                 <h2><a href="{url}"><xsl:value-of select="shop_item/name"/></a></h2>
  240.                 </div>
  241.                 <div class="i-foot">
  242.                 <div class="i-price"><xsl:value-of select="format-number(shop_item/price, '### ##0', 'my')" />,<span class="f18">00 P</span></div>
  243.                     <div class="i-buy">
  244.                         <input type="hidden" size="3" value="1" id="count_{shop_item/@id}"/>
  245.                         <a href="/shop/cart/?action=add&amp;search_page_id={shop_item/@id}" class="bttn button-bg" title="Добавить в корзину"
  246.                             onclick="return AddIntoCart('/shop/', {shop_item/@id}, document.getElementById('count_{shop_item/@id}').value)">
  247.                             <img src="/images/none.gif" class="basket" alt="" />
  248.                         <span>Купить</span><span onclick="countCartAdd({shop_item/@id});" style="position: absolute; width: 95px; height: 20px; margin: -6px 0 0 -85px; padding: 5px 0 0 10px; z-index: 999;"></span>
  249.                         </a>
  250.                 <div style="margin-top: 10px;">Товара в корзине <b><span id="countCart_{shop_item/@id}"><!-- <xsl:value-of select="@countCart" /> -->0</span></b> шт.</div>
  251.                     </div>
  252.                 </div>
  253.             </div>
  254.         </li>
  255.        
  256.         <!-- <li>
  257.             <a href="{url}">
  258.                 <xsl:value-of select="title"/>
  259.             </a>
  260.             <br/>
  261.            
  262.             <xsl:apply-templates select="url"/>&#xA0;·&#xA0; <xsl:value-of select="size"/> Кб&#xA0;·&#xA0;<xsl:value-of select="date"/></li> -->
  263.     </xsl:template>
  264.    
  265.     <xsl:template name="url" match="text()">
  266.         <xsl:param name="str" select="."/>
  267.        
  268.         <xsl:param name="max">50</xsl:param>
  269.         <xsl:param name="hvost">10</xsl:param>
  270.        
  271.         <xsl:param name="begin">
  272.             <xsl:choose>
  273.                 <xsl:when test="string-length($str) &gt; $max">
  274.                     <xsl:value-of select="substring($str, 1, $max - $hvost)"/>
  275.                 </xsl:when>
  276.                
  277.                 <xsl:otherwise>
  278.                     <xsl:value-of select="substring($str, 1)"/>
  279.                 </xsl:otherwise>
  280.             </xsl:choose>
  281.         </xsl:param>
  282.        
  283.         <xsl:param name="end">
  284.             <xsl:choose>
  285.                 <xsl:when test="string-length($str) &gt; $max">
  286.                     <xsl:value-of select="substring($str, string-length($str) - $hvost + 1, $hvost)"/>
  287.                 </xsl:when>
  288.                
  289.                 <xsl:otherwise>
  290.                 </xsl:otherwise>
  291.             </xsl:choose>
  292.         </xsl:param>
  293.        
  294.        
  295.         <xsl:param name="result">
  296.             <xsl:choose>
  297.                 <xsl:when test="$end != ''">
  298.                     <xsl:value-of select="concat($begin, '…', $end)"/>
  299.                 </xsl:when>
  300.                 <xsl:otherwise>
  301.                     <xsl:value-of select="$begin"/>
  302.                 </xsl:otherwise>
  303.             </xsl:choose>
  304.         </xsl:param>
  305.        
  306.         <xsl:value-of disable-output-escaping="yes" select="$result"/>
  307.     </xsl:template>
  308.    
  309.     <!-- Цикл для вывода строк ссылок -->
  310.     <xsl:template name="for_original">
  311.         <xsl:param name="limit"/>
  312.         <xsl:param name="page"/>
  313.         <xsl:param name="pre_count_page"/>
  314.         <xsl:param name="post_count_page"/>
  315.         <xsl:param name="i" select="0"/>
  316.         <xsl:param name="total"/>
  317.         <xsl:param name="visible_pages"/>
  318.         <xsl:param name="prefix">page</xsl:param>
  319.        
  320.         <xsl:variable name="n" select="ceiling($total div $limit)"/>
  321.        
  322.         <xsl:variable name="start_page"><xsl:choose>
  323.                 <xsl:when test="$page + 1 = $n"><xsl:value-of select="$page - $visible_pages + 1"/></xsl:when>
  324.                 <xsl:when test="$page - $pre_count_page &gt; 0"><xsl:value-of select="$page - $pre_count_page"/></xsl:when>
  325.                 <xsl:otherwise>0</xsl:otherwise>
  326.         </xsl:choose></xsl:variable>
  327.        
  328.         <xsl:if test="$i = $start_page and $page != 0">
  329.             <span class="ctrl">
  330.                 &#8592; Ctrl
  331.             </span>
  332.         </xsl:if>
  333.        
  334.         <xsl:if test="$i = ($page + $post_count_page + 1) and $n != ($page+1)">
  335.             <span class="ctrl">
  336.                 Ctrl &#8594;
  337.             </span>
  338.         </xsl:if>
  339.        
  340.         <xsl:if test="$total &gt; $limit and ($page + $post_count_page + 1) &gt; $i">
  341.            
  342.             <!-- Определяем адрес ссылки -->
  343.             <xsl:variable name="number_link">
  344.                 <xsl:choose>
  345.                     <!-- Если не нулевой уровень -->
  346.                     <xsl:when test="$i != 0">&amp;<xsl:value-of select="$prefix"/>=<xsl:value-of select="$i + 1"/></xsl:when>
  347.                     <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  348.                     <xsl:otherwise></xsl:otherwise>
  349.                 </xsl:choose>
  350.             </xsl:variable>
  351.            
  352.             <!-- Выводим ссылку на первую страницу -->
  353.             <xsl:if test="$page - $pre_count_page &gt; 0 and $i = $start_page">
  354.                 <a href="./?text={/site/queryencode}" class="page_link" style="text-decoration: none;">&#x2190;</a>
  355.             </xsl:if>
  356.            
  357.             <!-- Ставим ссылку на страницу-->
  358.             <xsl:if test="$i != $page">
  359.                 <xsl:if test="($page - $pre_count_page) &lt;= $i and $i &lt; $n">
  360.                     <!-- Выводим ссылки на видимые страницы -->
  361.                     <a href="./?text={/site/queryencode}{$number_link}" class="page_link">
  362.                         <xsl:value-of select="$i + 1"/>
  363.                     </a>
  364.                 </xsl:if>
  365.                
  366.                 <!-- Выводим ссылку на последнюю страницу -->
  367.                 <xsl:if test="$i+1 &gt;= ($page + $post_count_page + 1) and $n &gt; ($page + 1 + $post_count_page)">
  368.                     <a href="./?text={/site/queryencode}&amp;{$prefix}={$n}" class="page_link" style="text-decoration: none;"></a>
  369.                 </xsl:if>
  370.             </xsl:if>
  371.            
  372.             <!-- Ссылка на предыдущую страницу для Ctrl + влево -->
  373.             <xsl:if test="$page != 0 and $i = $page">
  374.                 <xsl:variable name="prev_number_link">
  375.                     <xsl:choose>
  376.                         <!-- Если не нулевой уровень -->
  377.                         <xsl:when test="($page) != 0">page-<xsl:value-of select="$i"/>/</xsl:when>
  378.                         <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  379.                         <xsl:otherwise></xsl:otherwise>
  380.                     </xsl:choose>
  381.                 </xsl:variable>
  382.                
  383.                 <a href="./?text={/site/queryencode}{$prev_number_link}" id="id_prev"></a>
  384.             </xsl:if>
  385.            
  386.             <!-- Ссылка на следующую страницу для Ctrl + вправо -->
  387.             <xsl:if test="($n - 1) > $page and $i = $page">
  388.                 <a href="./?text={/site/queryencode}&amp;{$prefix}={$page+2}" id="id_next"></a>
  389.             </xsl:if>
  390.            
  391.             <!-- Не ставим ссылку на страницу-->
  392.             <xsl:if test="$i = $page">
  393.                 <span class="current">
  394.                     <xsl:value-of select="$i+1"/>
  395.                 </span>
  396.             </xsl:if>
  397.            
  398.             <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
  399.             <xsl:call-template name="for_original">
  400.                 <xsl:with-param name="i" select="$i + 1"/>
  401.                 <xsl:with-param name="limit" select="$limit"/>
  402.                 <xsl:with-param name="page" select="$page"/>
  403.                 <xsl:with-param name="total" select="$total"/>
  404.                 <xsl:with-param name="pre_count_page" select="$pre_count_page"/>
  405.                 <xsl:with-param name="post_count_page" select="$post_count_page"/>
  406.                 <xsl:with-param name="visible_pages" select="$visible_pages"/>
  407.             </xsl:call-template>
  408.         </xsl:if>
  409.     </xsl:template>
  410.    
  411.     <!-- Склонение после числительных -->
  412.     <xsl:template name="declension">
  413.        
  414.         <xsl:param name="number" select="number"/>
  415.        
  416.         <!-- Именительный падеж -->
  417.         <xsl:variable name="nominative">
  418.             <xsl:text>страница</xsl:text>
  419.         </xsl:variable>
  420.        
  421.         <!-- Родительный падеж, единственное число -->
  422.         <xsl:variable name="genitive_singular">
  423.             <xsl:text>страницы</xsl:text>
  424.         </xsl:variable>
  425.        
  426.         <xsl:variable name="genitive_plural">
  427.             <xsl:text>страниц</xsl:text>
  428.         </xsl:variable>
  429.        
  430.         <xsl:variable name="last_digit">
  431.             <xsl:value-of select="$number mod 10"/>
  432.         </xsl:variable>
  433.        
  434.         <xsl:variable name="last_two_digits">
  435.             <xsl:value-of select="$number mod 100"/>
  436.         </xsl:variable>
  437.        
  438.         <xsl:choose>
  439.             <xsl:when test="$last_digit = 1 and $last_two_digits != 11">
  440.                 <xsl:value-of select="$nominative"/>
  441.             </xsl:when>
  442.             <xsl:when test="$last_digit = 2 and $last_two_digits != 12     or     $last_digit = 3 and $last_two_digits != 13     or     $last_digit = 4 and $last_two_digits != 14">
  443.                 <xsl:value-of select="$genitive_singular"/>
  444.             </xsl:when>
  445.             <xsl:otherwise>
  446.                 <xsl:value-of select="$genitive_plural"/>
  447.             </xsl:otherwise>
  448.         </xsl:choose>
  449.     </xsl:template>
  450.    
  451.    
  452.    
  453.     <!-- Цикл для вывода строк ссылок -->
  454.     <xsl:template name="for_arrows_down_prev">
  455.        
  456.         <xsl:param name="i" select="0"/>
  457.         <xsl:param name="limit"/>
  458.         <xsl:param name="page"/>
  459.         <xsl:param name="total"/>
  460.         <xsl:param name="visible_pages"/>
  461.        
  462.         <xsl:variable name="n" select="ceiling($total div $limit)"/>
  463.        
  464.         <!-- Считаем количество выводимых ссылок перед текущим элементом -->
  465.         <xsl:variable name="pre_count_page">
  466.             <xsl:choose>
  467.                 <xsl:when test="$page &gt; ($n - (round($visible_pages div 2) - 1))">
  468.                     <xsl:value-of select="$visible_pages - ($n - $page)"/>
  469.                 </xsl:when>
  470.                 <xsl:otherwise>
  471.                     <xsl:value-of select="round($visible_pages div 2) - 1"/>
  472.                 </xsl:otherwise>
  473.             </xsl:choose>
  474.         </xsl:variable>
  475.        
  476.         <!-- Считаем количество выводимых ссылок после текущего элемента -->
  477.         <xsl:variable name="post_count_page">
  478.             <xsl:choose>
  479.                 <xsl:when test="0 &gt; $page - (round($visible_pages div 2) - 1)">
  480.                     <xsl:value-of select="$visible_pages - $page"/>
  481.                 </xsl:when>
  482.                 <xsl:otherwise>
  483.                     <xsl:choose>
  484.                         <xsl:when test="round($visible_pages div 2) = ($visible_pages div 2)">
  485.                             <xsl:value-of select="$visible_pages div 2"/>
  486.                         </xsl:when>
  487.                         <xsl:otherwise>
  488.                             <xsl:value-of select="round($visible_pages div 2) - 1"/>
  489.                         </xsl:otherwise>
  490.                     </xsl:choose>
  491.                 </xsl:otherwise>
  492.             </xsl:choose>
  493.         </xsl:variable>
  494.         <!-- ############################################################################################## -->
  495.        
  496.        
  497.         <!-- ############ след и в конец ############### -->
  498.         <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
  499.         <xsl:variable name="parent_group_id" select="/shop/ТекущаяГруппа"/>
  500.        
  501.         <!-- Путь для тэга -->
  502.         <xsl:variable name="tag_path_end">
  503.             <xsl:if test="count(/shop/tag) = 1">tag/<xsl:value-of select="/shop/tag/urlencode"/>/</xsl:if>
  504.         </xsl:variable>
  505.        
  506.         <!-- Определяем группу для формирования адреса ссылки -->
  507.         <xsl:variable name="group_link_end">
  508.             <xsl:choose>
  509.                 <!-- Если группа не корневая (!=0) -->
  510.                 <xsl:when test="$parent_group_id != 0">
  511.                     <xsl:value-of select="/shop//group[@id=$parent_group_id]/url"/>
  512.                 </xsl:when>
  513.                 <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  514.                 <xsl:otherwise></xsl:otherwise>
  515.             </xsl:choose>
  516.         </xsl:variable>
  517.        
  518.        
  519.         <!-- Передаем фильтр -->
  520.         <xsl:variable name="filter_end">
  521.             <xsl:choose>
  522.                 <xsl:when test="/site/apply_filter/node()">&amp;on_page=<xsl:value-of select="/site/on_page"/>
  523.                     <xsl:if test="/shop/property_xml/node()">
  524.                         <!-- GET для доп. свойств -->
  525.                         <xsl:value-of select="/shop/property_xml"/>
  526.                     </xsl:if>
  527.                 </xsl:when>
  528.                 <xsl:otherwise></xsl:otherwise>
  529.             </xsl:choose>
  530.         </xsl:variable>
  531.        
  532.         <!-- Определяем первый символ вопрос или амперсанд -->
  533.         <xsl:variable name="first_symbol_end">
  534.             <xsl:choose>
  535.                 <xsl:when test="$filter_end != ''">&amp;</xsl:when>
  536.                 <xsl:otherwise>?</xsl:otherwise>
  537.             </xsl:choose>
  538.         </xsl:variable>
  539.        
  540.         <!-- Данные для стрелок сортировки -->
  541.         <xsl:variable name="arrows">
  542.             <xsl:choose>
  543.                 <xsl:when test="(/shop/sort_by_field = 1) or (/shop/sort_by_field = 2)">
  544.                     <xsl:choose>
  545.                         <!-- Стрелка вверх -->
  546.                         <xsl:when test="/shop/order_direction = 'ASC'">
  547.                             <xsl:value-of select="$first_symbol_end"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&amp;order_direction=1</xsl:when>
  548.                         <!-- Стрелка вниз -->
  549.                         <xsl:otherwise>
  550.                             <xsl:value-of select="$first_symbol_end"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&amp;order_direction=2</xsl:otherwise>
  551.                     </xsl:choose>
  552.                 </xsl:when>
  553.                 <xsl:otherwise></xsl:otherwise>
  554.             </xsl:choose>
  555.         </xsl:variable>
  556.        
  557.         <!-- Определяем адрес ссылки -->
  558.         <xsl:variable name="number_link_end">
  559.             <xsl:choose>
  560.                 <!-- Если не нулевой уровень -->
  561.                 <xsl:when test="$i != 0">page-<xsl:value-of select="$i"/>/</xsl:when>
  562.                 <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  563.                 <xsl:otherwise></xsl:otherwise>
  564.             </xsl:choose>
  565.         </xsl:variable>
  566.        
  567.         <xsl:if test="$total &gt; $limit and $n &gt; $i">
  568.            
  569.             <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
  570.             <!-- <xsl:variable name="parent_group_id" select="/shop/ТекущаяГруппа"/> -->
  571.            
  572.             <!-- Путь для тэга -->
  573.             <xsl:variable name="tag_path">
  574.                 <xsl:if test="count(/shop/tag) = 1">tag/<xsl:value-of select="/shop/tag/urlencode"/>/</xsl:if>
  575.             </xsl:variable>
  576.            
  577.             <!-- Определяем группу для формирования адреса ссылки -->
  578.             <xsl:variable name="group_link">
  579.                 <xsl:choose>
  580.                     <!-- Если группа не корневая (!=0) -->
  581.                     <xsl:when test="$parent_group_id != 0">
  582.                         <xsl:value-of select="/shop//group[@id=$parent_group_id]/url"/>
  583.                     </xsl:when>
  584.                     <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  585.                     <xsl:otherwise></xsl:otherwise>
  586.                 </xsl:choose>
  587.             </xsl:variable>
  588.            
  589.             <!-- Определяем адрес ссылки -->
  590.             <xsl:variable name="number_link">
  591.                 <xsl:choose>
  592.                     <!-- Если не нулевой уровень -->
  593.                     <xsl:when test="$i != 0">page-<xsl:value-of select="$i+1"/>/</xsl:when>
  594.                     <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  595.                     <xsl:otherwise></xsl:otherwise>
  596.                 </xsl:choose>
  597.             </xsl:variable>
  598.            
  599.             <!-- Передаем фильтр -->
  600.             <xsl:variable name="filter">
  601.                 <xsl:choose>
  602.                     <xsl:when test="/site/apply_filter/node()">&amp;on_page=<xsl:value-of select="/site/on_page"/>
  603.                         <xsl:if test="/shop/property_xml/node()">
  604.                             <!-- GET для доп. свойств -->
  605.                             <xsl:value-of select="/shop/property_xml"/>
  606.                         </xsl:if>
  607.                     </xsl:when>
  608.                     <xsl:otherwise></xsl:otherwise>
  609.                 </xsl:choose>
  610.             </xsl:variable>
  611.            
  612.             <!-- Определяем первый символ вопрос или амперсанд -->
  613.             <xsl:variable name="first_symbol">
  614.                 <xsl:choose>
  615.                     <xsl:when test="$filter != ''">&amp;</xsl:when>
  616.                     <xsl:otherwise>?</xsl:otherwise>
  617.                 </xsl:choose>
  618.             </xsl:variable>
  619.            
  620.            
  621.             <!-- ############ первая и предыдущая ############### -->
  622.             <!-- Выводим ссылку на первую страницу -->
  623.             <xsl:if test="$i = 0">
  624.                 <xsl:choose>
  625.                     <xsl:when test="$page &gt; 0">
  626.                     <li class="back"><a href="./?text={/site/queryencode}&amp;page={$page}{$group_link_end}{$tag_path_end}{$filter_end}{$arrows}">Предыдущая</a></li>
  627.                     </xsl:when>
  628.                     <xsl:otherwise>
  629.                         <!-- <a id="arrow_left" class="nav_bottom_left inactive ie">112</a> -->
  630.                     </xsl:otherwise>
  631.                 </xsl:choose>
  632.                
  633.             </xsl:if>
  634.             <!-- /    ######## первая и предыдущая ############### -->
  635.            
  636.            
  637.             <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
  638.             <xsl:call-template name="for_arrows_down_prev">
  639.                 <xsl:with-param name="i" select="$i + 1"/>
  640.                 <xsl:with-param name="limit" select="$limit"/>
  641.                 <xsl:with-param name="page" select="$page"/>
  642.                 <xsl:with-param name="total" select="$total"/>
  643.                 <xsl:with-param name="visible_pages" select="$visible_pages"/>
  644.             </xsl:call-template>
  645.         </xsl:if>
  646.         <xsl:if test="$i >= $n">
  647.             <xsl:choose>
  648.                 <xsl:when test="$page+1 != $n">
  649.                     <!-- <a href="./?text={/site/queryencode}&amp;page={$page+2}{$group_link_end}{$tag_path_end}{$filter_end}{$arrows}" class="nav_bottom_right ie">113</a> -->
  650.                 </xsl:when>
  651.                 <xsl:otherwise>
  652.                     <!-- <a id="arrow_right" class="nav_bottom_right inactive ie">114</a> -->
  653.                 </xsl:otherwise>
  654.             </xsl:choose>
  655.            
  656.         </xsl:if>
  657.        
  658.     </xsl:template>
  659.    
  660.     <!-- Цикл для вывода строк ссылок -->
  661.     <xsl:template name="for_arrows_down_next">
  662.        
  663.         <xsl:param name="i" select="0"/>
  664.         <xsl:param name="limit"/>
  665.         <xsl:param name="page"/>
  666.         <xsl:param name="total"/>
  667.         <xsl:param name="visible_pages"/>
  668.        
  669.         <xsl:variable name="n" select="ceiling($total div $limit)"/>
  670.        
  671.         <!-- Считаем количество выводимых ссылок перед текущим элементом -->
  672.         <xsl:variable name="pre_count_page">
  673.             <xsl:choose>
  674.                 <xsl:when test="$page &gt; ($n - (round($visible_pages div 2) - 1))">
  675.                     <xsl:value-of select="$visible_pages - ($n - $page)"/>
  676.                 </xsl:when>
  677.                 <xsl:otherwise>
  678.                     <xsl:value-of select="round($visible_pages div 2) - 1"/>
  679.                 </xsl:otherwise>
  680.             </xsl:choose>
  681.         </xsl:variable>
  682.        
  683.         <!-- Считаем количество выводимых ссылок после текущего элемента -->
  684.         <xsl:variable name="post_count_page">
  685.             <xsl:choose>
  686.                 <xsl:when test="0 &gt; $page - (round($visible_pages div 2) - 1)">
  687.                     <xsl:value-of select="$visible_pages - $page"/>
  688.                 </xsl:when>
  689.                 <xsl:otherwise>
  690.                     <xsl:choose>
  691.                         <xsl:when test="round($visible_pages div 2) = ($visible_pages div 2)">
  692.                             <xsl:value-of select="$visible_pages div 2"/>
  693.                         </xsl:when>
  694.                         <xsl:otherwise>
  695.                             <xsl:value-of select="round($visible_pages div 2) - 1"/>
  696.                         </xsl:otherwise>
  697.                     </xsl:choose>
  698.                 </xsl:otherwise>
  699.             </xsl:choose>
  700.         </xsl:variable>
  701.         <!-- ############################################################################################## -->
  702.        
  703.        
  704.         <!-- ############ след и в конец ############### -->
  705.         <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
  706.         <xsl:variable name="parent_group_id" select="/shop/ТекущаяГруппа"/>
  707.        
  708.         <!-- Путь для тэга -->
  709.         <xsl:variable name="tag_path_end">
  710.             <xsl:if test="count(/shop/tag) = 1">tag/<xsl:value-of select="/shop/tag/urlencode"/>/</xsl:if>
  711.         </xsl:variable>
  712.        
  713.         <!-- Определяем группу для формирования адреса ссылки -->
  714.         <xsl:variable name="group_link_end">
  715.             <xsl:choose>
  716.                 <!-- Если группа не корневая (!=0) -->
  717.                 <xsl:when test="$parent_group_id != 0">
  718.                     <xsl:value-of select="/shop//group[@id=$parent_group_id]/url"/>
  719.                 </xsl:when>
  720.                 <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  721.                 <xsl:otherwise></xsl:otherwise>
  722.             </xsl:choose>
  723.         </xsl:variable>
  724.        
  725.        
  726.         <!-- Передаем фильтр -->
  727.         <xsl:variable name="filter_end">
  728.             <xsl:choose>
  729.                 <xsl:when test="/site/apply_filter/node()">&amp;on_page=<xsl:value-of select="/site/on_page"/>
  730.                     <xsl:if test="/shop/property_xml/node()">
  731.                         <!-- GET для доп. свойств -->
  732.                         <xsl:value-of select="/shop/property_xml"/>
  733.                     </xsl:if>
  734.                 </xsl:when>
  735.                 <xsl:otherwise></xsl:otherwise>
  736.             </xsl:choose>
  737.         </xsl:variable>
  738.        
  739.         <!-- Определяем первый символ вопрос или амперсанд -->
  740.         <xsl:variable name="first_symbol_end">
  741.             <xsl:choose>
  742.                 <xsl:when test="$filter_end != ''">&amp;</xsl:when>
  743.                 <xsl:otherwise>?</xsl:otherwise>
  744.             </xsl:choose>
  745.         </xsl:variable>
  746.        
  747.         <!-- Данные для стрелок сортировки -->
  748.         <xsl:variable name="arrows">
  749.             <xsl:choose>
  750.                 <xsl:when test="(/shop/sort_by_field = 1) or (/shop/sort_by_field = 2)">
  751.                     <xsl:choose>
  752.                         <!-- Стрелка вверх -->
  753.                         <xsl:when test="/shop/order_direction = 'ASC'">
  754.                             <xsl:value-of select="$first_symbol_end"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&amp;order_direction=1</xsl:when>
  755.                         <!-- Стрелка вниз -->
  756.                         <xsl:otherwise>
  757.                             <xsl:value-of select="$first_symbol_end"/>sort_by_field=<xsl:value-of select="/shop/sort_by_field"/>&amp;order_direction=2</xsl:otherwise>
  758.                     </xsl:choose>
  759.                 </xsl:when>
  760.                 <xsl:otherwise></xsl:otherwise>
  761.             </xsl:choose>
  762.         </xsl:variable>
  763.        
  764.         <!-- Определяем адрес ссылки -->
  765.         <xsl:variable name="number_link_end">
  766.             <xsl:choose>
  767.                 <!-- Если не нулевой уровень -->
  768.                 <xsl:when test="$i != 0">page-<xsl:value-of select="$i"/>/</xsl:when>
  769.                 <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  770.                 <xsl:otherwise></xsl:otherwise>
  771.             </xsl:choose>
  772.         </xsl:variable>
  773.        
  774.         <xsl:if test="$total &gt; $limit and $n &gt; $i">
  775.            
  776.             <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
  777.             <!-- <xsl:variable name="parent_group_id" select="/shop/ТекущаяГруппа"/> -->
  778.            
  779.             <!-- Путь для тэга -->
  780.             <xsl:variable name="tag_path">
  781.                 <xsl:if test="count(/shop/tag) = 1">tag/<xsl:value-of select="/shop/tag/urlencode"/>/</xsl:if>
  782.             </xsl:variable>
  783.            
  784.             <!-- Определяем группу для формирования адреса ссылки -->
  785.             <xsl:variable name="group_link">
  786.                 <xsl:choose>
  787.                     <!-- Если группа не корневая (!=0) -->
  788.                     <xsl:when test="$parent_group_id != 0">
  789.                         <xsl:value-of select="/shop//group[@id=$parent_group_id]/url"/>
  790.                     </xsl:when>
  791.                     <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  792.                     <xsl:otherwise></xsl:otherwise>
  793.                 </xsl:choose>
  794.             </xsl:variable>
  795.            
  796.             <!-- Определяем адрес ссылки -->
  797.             <xsl:variable name="number_link">
  798.                 <xsl:choose>
  799.                     <!-- Если не нулевой уровень -->
  800.                     <xsl:when test="$i != 0">page-<xsl:value-of select="$i+1"/>/</xsl:when>
  801.                     <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  802.                     <xsl:otherwise></xsl:otherwise>
  803.                 </xsl:choose>
  804.             </xsl:variable>
  805.            
  806.             <!-- Передаем фильтр -->
  807.             <xsl:variable name="filter">
  808.                 <xsl:choose>
  809.                     <xsl:when test="/site/apply_filter/node()">&amp;on_page=<xsl:value-of select="/site/on_page"/>
  810.                         <xsl:if test="/shop/property_xml/node()">
  811.                             <!-- GET для доп. свойств -->
  812.                             <xsl:value-of select="/shop/property_xml"/>
  813.                         </xsl:if>
  814.                     </xsl:when>
  815.                     <xsl:otherwise></xsl:otherwise>
  816.                 </xsl:choose>
  817.             </xsl:variable>
  818.            
  819.             <!-- Определяем первый символ вопрос или амперсанд -->
  820.             <xsl:variable name="first_symbol">
  821.                 <xsl:choose>
  822.                     <xsl:when test="$filter != ''">&amp;</xsl:when>
  823.                     <xsl:otherwise>?</xsl:otherwise>
  824.                 </xsl:choose>
  825.             </xsl:variable>
  826.            
  827.            
  828.             <!-- ############ первая и предыдущая ############### -->
  829.             <!-- Выводим ссылку на первую страницу -->
  830.             <xsl:if test="$i = 0">
  831.                 <xsl:choose>
  832.                     <xsl:when test="$page &gt; 0">
  833.                     <!-- <li class="back"><a href="./?text={/site/queryencode}&amp;page={$page}{$group_link_end}{$tag_path_end}{$filter_end}{$arrows}">Предыдущая</a></li> -->
  834.                     </xsl:when>
  835.                     <xsl:otherwise>
  836.                         <!-- <a id="arrow_left" class="nav_bottom_left inactive ie">112</a> -->
  837.                     </xsl:otherwise>
  838.                 </xsl:choose>
  839.                
  840.             </xsl:if>
  841.             <!-- /    ######## первая и предыдущая ############### -->
  842.            
  843.            
  844.             <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
  845.             <xsl:call-template name="for_arrows_down_next">
  846.                 <xsl:with-param name="i" select="$i + 1"/>
  847.                 <xsl:with-param name="limit" select="$limit"/>
  848.                 <xsl:with-param name="page" select="$page"/>
  849.                 <xsl:with-param name="total" select="$total"/>
  850.                 <xsl:with-param name="visible_pages" select="$visible_pages"/>
  851.             </xsl:call-template>
  852.         </xsl:if>
  853.         <xsl:if test="$i >= $n">
  854.             <xsl:choose>
  855.                 <xsl:when test="$page+1 != $n">
  856.                 <li class="next"><a href="./?text={/site/queryencode}&amp;page={$page+2}{$group_link_end}{$tag_path_end}{$filter_end}{$arrows}">Следующая</a></li>
  857.                 </xsl:when>
  858.                 <xsl:otherwise>
  859.                     <!-- <a id="arrow_right" class="nav_bottom_right inactive ie">114</a> -->
  860.                 </xsl:otherwise>
  861.             </xsl:choose>
  862.            
  863.         </xsl:if>
  864.        
  865.     </xsl:template>
  866.    
  867.    
  868.     <!-- Цикл для вывода строк ссылок -->
  869.     <xsl:template name="for">
  870.         <xsl:param name="i" select="0"/>
  871.         <xsl:param name="prefix">page</xsl:param>
  872.         <xsl:param name="limit"/>
  873.         <xsl:param name="page"/>
  874.         <xsl:param name="total"/>
  875.         <xsl:param name="visible_pages"/>
  876.        
  877.         <xsl:variable name="n" select="$total div $limit"/>
  878.        
  879.         <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
  880.         <xsl:variable name="parent_group_id" select="/site/parent_group_id"/>
  881.        
  882.        
  883.         <!-- Считаем количество выводимых ссылок перед текущим элементом -->
  884.         <xsl:variable name="pre_count_page">
  885.            
  886.             <xsl:choose>
  887.                 <xsl:when test="$page &gt; ($n - (round($visible_pages div 2) - 1))">
  888.                     <xsl:value-of select="$visible_pages - ($n - $page)"/>
  889.                 </xsl:when>
  890.                 <xsl:otherwise>
  891.                     <xsl:value-of select="round($visible_pages div 2) - 1"/>
  892.                 </xsl:otherwise>
  893.             </xsl:choose>
  894.         </xsl:variable>
  895.        
  896.         <!-- Считаем количество выводимых ссылок после текущего элемента -->
  897.         <xsl:variable name="post_count_page">
  898.             <xsl:choose>
  899.                 <xsl:when test="0 &gt; $page - (round($visible_pages div 2) - 1)">
  900.                     <xsl:value-of select="$visible_pages - $page"/>
  901.                 </xsl:when>
  902.                 <xsl:otherwise>
  903.                     <xsl:choose>
  904.                         <xsl:when test="round($visible_pages div 2) = ($visible_pages div 2)">
  905.                             <xsl:value-of select="$visible_pages div 2"/>
  906.                         </xsl:when>
  907.                         <xsl:otherwise>
  908.                             <xsl:value-of select="round($visible_pages div 2) - 1"/>
  909.                         </xsl:otherwise>
  910.                     </xsl:choose>
  911.                 </xsl:otherwise>
  912.             </xsl:choose>
  913.         </xsl:variable>
  914.        
  915.         <!-- Передаем фильтр -->
  916.         <xsl:variable name="filter">
  917.             <xsl:choose>
  918.                 <xsl:when test="/site/apply_filter/node()">&amp;on_page=<xsl:value-of select="/site/on_page"/>
  919.                     <xsl:if test="/shop/property_xml/node()">
  920.                         <!-- GET для доп. свойств -->
  921.                         <xsl:value-of select="/shop/property_xml"/>
  922.                     </xsl:if>
  923.                 </xsl:when>
  924.                 <xsl:otherwise></xsl:otherwise>
  925.             </xsl:choose>
  926.         </xsl:variable>
  927.        
  928.         <!-- <xsl:if test="$i = 0 and $page != 0">
  929.             <span class="ctrl">
  930.                 &#8592; Ctrl
  931.             </span>
  932.         </xsl:if>
  933.        
  934.         <xsl:if test="$i >= $n and ($n - 1) > $page">
  935.             <span class="ctrl">
  936.                 Ctrl &#8594;
  937.             </span>
  938.         </xsl:if> -->
  939.        
  940.         <xsl:if test="$total &gt; $limit and $n &gt; $i">
  941.            
  942.             <!-- Определяем адрес ссылки -->
  943.             <xsl:variable name="number_link">
  944.                 <xsl:choose>
  945.                     <!-- Если не нулевой уровень -->
  946.                     <xsl:when test="$i != 0">&amp;<xsl:value-of select="$prefix"/>=<xsl:value-of select="$i + 1"/></xsl:when>
  947.                     <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  948.                     <xsl:otherwise></xsl:otherwise>
  949.                 </xsl:choose>
  950.             </xsl:variable>
  951.            
  952.            
  953.             <!-- Ставим ссылку на страницу-->
  954.             <xsl:if test="$i != $page">
  955.                 <!-- Выводим ссылку на первую страницу -->
  956.                 <!-- <xsl:if test="$page - $pre_count_page &gt; 0 and $i = 0">
  957.                     <a href="./?text={/site/queryencode}" class="page_link" style="text-decoration: none;">&#x2190;</a>
  958.                 </xsl:if> -->
  959.                
  960.                 <xsl:choose>
  961.                     <xsl:when test="$i &gt;= ($page - $pre_count_page) and ($page + $post_count_page) &gt;= $i">
  962.                         <!-- Выводим ссылки на видимые страницы -->
  963.                     <li><a href="./?text={/site/queryencode}{$number_link}{$filter}"><xsl:value-of select="$i + 1"/></a></li>
  964.                     </xsl:when>
  965.                     <xsl:otherwise></xsl:otherwise>
  966.                 </xsl:choose>
  967.                
  968.                 <!-- Выводим ссылку на последнюю страницу -->
  969.                 <xsl:if test="$i+1 &gt;= $n and $n &gt; ($page + 1 + $post_count_page)">
  970.                     <xsl:choose>
  971.                         <xsl:when test="$n &gt; round($n)">
  972.                             <!-- Выводим ссылку на последнюю страницу -->
  973.                             <!-- <a href="./?text={/site/queryencode}&amp;{$prefix}={round($n+1)}" class="page_link" style="text-decoration: none;">→</a> -->
  974.                         </xsl:when>
  975.                         <xsl:otherwise>
  976.                             <!-- <a href="./?text={/site/queryencode}&amp;{$prefix}={round($n)}" class="page_link" style="text-decoration: none;">→</a> -->
  977.                         </xsl:otherwise>
  978.                     </xsl:choose>
  979.                 </xsl:if>
  980.             </xsl:if>
  981.            
  982.            
  983.            
  984.             <!-- Ссылка на предыдущую страницу для Ctrl + влево -->
  985.             <xsl:if test="$page != 0 and $i = $page">
  986.                 <xsl:variable name="prev_number_link">
  987.                     <xsl:choose>
  988.                         <!-- Если не нулевой уровень -->
  989.                         <xsl:when test="($page) != 0">&amp;<xsl:value-of select="$prefix"/>=<xsl:value-of select="$i"/></xsl:when>
  990.                         <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
  991.                         <xsl:otherwise></xsl:otherwise>
  992.                     </xsl:choose>
  993.                 </xsl:variable>
  994.                
  995.                 <!-- <a href="./?text={/site/queryencode}{$prev_number_link}" id="id_prev"></a> -->
  996.             </xsl:if>
  997.            
  998.             <!-- Ссылка на следующую страницу для Ctrl + вправо -->
  999.             <xsl:if test="($n - 1) > $page and $i = $page">
  1000.                 <!-- <a href="./?text={/site/queryencode}&amp;{$prefix}={$page+2}" id="id_next"></a> -->
  1001.             </xsl:if>
  1002.            
  1003.             <!-- Не ставим ссылку на страницу-->
  1004.             <xsl:if test="$i = $page">
  1005.                 <!-- <span class="current">
  1006.                     <xsl:value-of select="$i+1"/>
  1007.                 </span> -->
  1008.             <li class="active"><span><xsl:value-of select="$i+1"/></span></li>
  1009.             </xsl:if>
  1010.            
  1011.             <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
  1012.             <xsl:call-template name="for">
  1013.                 <xsl:with-param name="i" select="$i + 1"/>
  1014.                 <xsl:with-param name="prefix" select="$prefix"/>
  1015.                 <xsl:with-param name="limit" select="$limit"/>
  1016.                 <xsl:with-param name="page" select="$page"/>
  1017.                 <xsl:with-param name="total" select="$total"/>
  1018.                 <xsl:with-param name="visible_pages" select="$visible_pages"/>
  1019.             </xsl:call-template>
  1020.         </xsl:if>
  1021.     </xsl:template>
  1022.    
  1023.    
  1024. </xsl:stylesheet>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement