Дерево каталога
Есть HTML код
Где
и так далее это группы в каталоге, а
это страницы внутри групп (не подгруппы)
как мне осуществить такой вывод?
Мне пока удалось вывести только группы
XSL
и XML
Подскажите что куда надо дописать что бы вся структура была видна как в html показано
<a href="#" id="menu1" title="Перейти в раздел" onmouseover="menushow('1');" onmouseout="menuhide('1');">Паркет</a>
<ul id="smenu1" onmouseover="menushow('1');" onmouseout="menuhide('1');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li class="act">
<a href="#" id="menu2" title="Перейти в раздел" onmouseover="menushow('2');" onmouseout="menuhide('2');">Массивная доска</a>
<ul id="smenu2" onmouseover="menushow('2');" onmouseout="menuhide('2');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li class="drop">
<a href="#" id="menu3" title="Перейти в раздел" onmouseover="menushow('3');" onmouseout="menuhide('3');">Паркетная доска</a>
<ul id="smenu3" onmouseover="menushow('3');" onmouseout="menuhide('3');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li class="drop">
<a href="#" id="menu4" title="Перейти в раздел" onmouseover="menushow('4');" onmouseout="menuhide('4');">Ламинат</a>
<ul id="smenu4" onmouseover="menushow('4');" onmouseout="menuhide('4');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li><a href="#" title="Перейти в раздел">Масло «OSMO»</a></li>
<li class="drop">
<a href="#" id="menu5" title="Перейти в раздел" onmouseover="menushow('5');" onmouseout="menuhide('5');">Паркетная химия</a>
<ul id="smenu5" onmouseover="menushow('5');" onmouseout="menuhide('5');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li><a href="#" title="Перейти в раздел">Соп. товары</a></li>
<ul id="smenu1" onmouseover="menushow('1');" onmouseout="menuhide('1');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li class="act">
<a href="#" id="menu2" title="Перейти в раздел" onmouseover="menushow('2');" onmouseout="menuhide('2');">Массивная доска</a>
<ul id="smenu2" onmouseover="menushow('2');" onmouseout="menuhide('2');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li class="drop">
<a href="#" id="menu3" title="Перейти в раздел" onmouseover="menushow('3');" onmouseout="menuhide('3');">Паркетная доска</a>
<ul id="smenu3" onmouseover="menushow('3');" onmouseout="menuhide('3');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li class="drop">
<a href="#" id="menu4" title="Перейти в раздел" onmouseover="menushow('4');" onmouseout="menuhide('4');">Ламинат</a>
<ul id="smenu4" onmouseover="menushow('4');" onmouseout="menuhide('4');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li><a href="#" title="Перейти в раздел">Масло «OSMO»</a></li>
<li class="drop">
<a href="#" id="menu5" title="Перейти в раздел" onmouseover="menushow('5');" onmouseout="menuhide('5');">Паркетная химия</a>
<ul id="smenu5" onmouseover="menushow('5');" onmouseout="menuhide('5');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
</li>
<li><a href="#" title="Перейти в раздел">Соп. товары</a></li>
Где
<a href="#" id="menu1" title="Перейти в раздел" onmouseover="menushow('1');" onmouseout="menuhide('1');">Паркет</a>
<a href="#" id="menu2" title="Перейти в раздел" onmouseover="menushow('2');" onmouseout="menuhide('2');">Массивная доска</a>
<a href="#" id="menu3" title="Перейти в раздел" onmouseover="menushow('3');" onmouseout="menuhide('3');">Паркетная доска</a>
<a href="#" id="menu2" title="Перейти в раздел" onmouseover="menushow('2');" onmouseout="menuhide('2');">Массивная доска</a>
<a href="#" id="menu3" title="Перейти в раздел" onmouseover="menushow('3');" onmouseout="menuhide('3');">Паркетная доска</a>
и так далее это группы в каталоге, а
<ul id="smenu2" onmouseover="menushow('2');" onmouseout="menuhide('2');">
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
<li><a href="#" title="Перейти в раздел">SLC</a></li>
<li><a href="#" title="Перейти в раздел">Bona</a></li>
<li><a href="#" title="Перейти в раздел">Loba</a></li>
<li><a href="#" title="Перейти в раздел">Kiesel</a></li>
<li><a href="#" title="Перейти в раздел">Wacol</a></li>
<li><a href="#" title="Перейти в раздел">Racoll</a></li>
<li><a href="#" title="Перейти в раздел">Berger</a></li>
</ul>
это страницы внутри групп (не подгруппы)
как мне осуществить такой вывод?
Мне пока удалось вывести только группы
XSL
<?xml version="1.0" encoding="windows-1251"?>
<!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="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/document">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:variable name="parent_group_id" select="blocks/parent_group_id" />
<!-- Если в находимся корне - выводим название информационной системы -->
<xsl:if test="blocks/parent_group_id=0">
<xsl:value-of disable-output-escaping="yes" select="blocks/description" />
</xsl:if>
<!-- Если в находимся в группе - выводим название группы -->
<xsl:if test="blocks/parent_group_id!=0">
<h1><xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name" /></h1>
<!-- Путь к группе -->
<p><xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path" /></p>
</xsl:if>
<!-- Отображение подгрупп данной группы -->
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups" />
<!-- Отображение записи информационного блока -->
<xsl:apply-templates select="blocks/items/item[item_status=1]" />
<p>
<!-- Строка ссылок на другие страницы информационного блока -->
<xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
<xsl:call-template name="for">
<xsl:with-param name="items_on_page" select="blocks/items/items_on_page" />
<xsl:with-param name="current_page" select="blocks/items/current_page" />
<xsl:with-param name="count_items" select="blocks/items/count_items" />
<xsl:with-param name="visible_pages" select="6" />
</xsl:call-template>
</xsl:if>
</p>
<div style="clear: both"></div>
</xsl:template>
<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="goup_path">
<xsl:variable name="parent_id" select="@parent_id" />
<xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path" />
<xsl:if test="@parent_id=0">
<a href="{/document/blocks/url}"><xsl:value-of disable-output-escaping="yes" select="/document/blocks/name" /></a>
</xsl:if>
<span class="path_arrow">→</span>
<a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name" /></a>
</xsl:template>
<!-- ======================================================== -->
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="groups">
<xsl:if test="count_items > 0">
<li class="drop">
<a href="#" id="{order+1}" title="Перейти в раздел" onmouseover="menushow('{order+1}');" onmouseout="menuhide('{order+1}');"><xsl:value-of disable-output-escaping="yes" select="name" /></a>
</li>
</xsl:if>
<xsl:if test="count_items = 0">
<li><a href="{/document/blocks/url}{fullpath}" title="Перейти в раздел"><xsl:value-of disable-output-escaping="yes" select="name" /></a></li>
</xsl:if>
</xsl:template>
<!-- ======================== -->
<!-- Данные об инф. элементах -->
<!-- ======================== -->
<xsl:template match="blocks/items/item">
<div style="margin-right:10px; margin-bottom: 5px;">
<p>
<!-- Дата время -->
<span class="news_date"><xsl:value-of disable-output-escaping="yes" select="item_datetime" /></span>
<br />
<!-- Название -->
<a href="{item_path}" class="news_title"><xsl:value-of disable-output-escaping="yes" select="item_name" /></a>
<br />
<!-- Изображение для информационного элемента (если есть) -->
<xsl:if test="item_small_image!=''">
<a href="{item_path}" class="news_title"><img src="/{item_small_image}" class="partner_img" alt="" style="margin: 3px 10px 10px 0px" align="left" /></a>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="item_description" />
<div style="clear: both;"></div>
</p>
</div>
</xsl:template>
<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
<xsl:param name="i" select="0" />
<xsl:param name="items_on_page" />
<xsl:param name="current_page" />
<xsl:param name="count_items" />
<xsl:param name="visible_pages" />
<xsl:variable name="n" select="$count_items div $items_on_page" />
<!-- Считаем количество выводимых ссылок перед текущим элементом -->
<xsl:variable name="pre_count_page">
<xsl:choose>
<xsl:when test="$current_page > ($n - (round($visible_pages div 2) - 1))">
<xsl:value-of select="$visible_pages - ($n - $current_page)" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="round($visible_pages div 2) - 1" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Считаем количество выводимых ссылок после текущего элемента -->
<xsl:variable name="post_count_page">
<xsl:choose>
<xsl:when test="0 > $current_page - (round($visible_pages div 2) - 1)">
<xsl:value-of select="$visible_pages - $current_page - 1" />
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="round($visible_pages div 2) = ($visible_pages div 2)">
<xsl:value-of select="$visible_pages div 2" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="round($visible_pages div 2) - 1" />
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$count_items > $items_on_page and $n > $i">
<!-- Ставим ссылку на страницу-->
<xsl:if test="$i != $current_page">
<!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
<xsl:variable name="parent_group_id" select="/document/blocks/parent_group_id" />
<!-- Определяем группу для формирования адреса ссылки -->
<xsl:variable name="group_link"><xsl:choose>
<!-- Если группа не корневая (!=0) -->
<xsl:when test="$parent_group_id != 0"><xsl:value-of select="/document/blocks//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:if test="$current_page - $pre_count_page > 0 and $i = 0">
<a href="{/document/blocks/url}{$group_link}" class="page_link" style="text-decoration: none;">←</a>
</xsl:if>
<xsl:choose>
<xsl:when test="$i >= ($current_page - $pre_count_page) and ($current_page + $post_count_page) >= $i">
<!-- Выводим ссылки на видимые страницы -->
<a href="{/document/blocks/url}{$group_link}{$number_link}" class="page_link"><xsl:value-of select="$i + 1" /></a>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
<!-- Выводим ссылку на последнюю страницу -->
<xsl:if test="$i+1 >= $n and $n > ($current_page + 1 + $post_count_page)">
<xsl:choose>
<xsl:when test="$n > round($n)">
<!-- Выводим ссылку на последнюю страницу -->
<a href="{/document/blocks/url}{$group_link}page-{round($n+1)}/" class="page_link" style="text-decoration: none;">→</a>
</xsl:when>
<xsl:otherwise>
<a href="{/document/blocks/url}{$group_link}page-{round($n)}/" class="page_link" style="text-decoration: none;">→</a>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</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="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="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/document">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:variable name="parent_group_id" select="blocks/parent_group_id" />
<!-- Если в находимся корне - выводим название информационной системы -->
<xsl:if test="blocks/parent_group_id=0">
<xsl:value-of disable-output-escaping="yes" select="blocks/description" />
</xsl:if>
<!-- Если в находимся в группе - выводим название группы -->
<xsl:if test="blocks/parent_group_id!=0">
<h1><xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name" /></h1>
<!-- Путь к группе -->
<p><xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path" /></p>
</xsl:if>
<!-- Отображение подгрупп данной группы -->
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups" />
<!-- Отображение записи информационного блока -->
<xsl:apply-templates select="blocks/items/item[item_status=1]" />
<p>
<!-- Строка ссылок на другие страницы информационного блока -->
<xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
<xsl:call-template name="for">
<xsl:with-param name="items_on_page" select="blocks/items/items_on_page" />
<xsl:with-param name="current_page" select="blocks/items/current_page" />
<xsl:with-param name="count_items" select="blocks/items/count_items" />
<xsl:with-param name="visible_pages" select="6" />
</xsl:call-template>
</xsl:if>
</p>
<div style="clear: both"></div>
</xsl:template>
<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="goup_path">
<xsl:variable name="parent_id" select="@parent_id" />
<xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path" />
<xsl:if test="@parent_id=0">
<a href="{/document/blocks/url}"><xsl:value-of disable-output-escaping="yes" select="/document/blocks/name" /></a>
</xsl:if>
<span class="path_arrow">→</span>
<a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name" /></a>
</xsl:template>
<!-- ======================================================== -->
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="groups">
<xsl:if test="count_items > 0">
<li class="drop">
<a href="#" id="{order+1}" title="Перейти в раздел" onmouseover="menushow('{order+1}');" onmouseout="menuhide('{order+1}');"><xsl:value-of disable-output-escaping="yes" select="name" /></a>
</li>
</xsl:if>
<xsl:if test="count_items = 0">
<li><a href="{/document/blocks/url}{fullpath}" title="Перейти в раздел"><xsl:value-of disable-output-escaping="yes" select="name" /></a></li>
</xsl:if>
</xsl:template>
<!-- ======================== -->
<!-- Данные об инф. элементах -->
<!-- ======================== -->
<xsl:template match="blocks/items/item">
<div style="margin-right:10px; margin-bottom: 5px;">
<p>
<!-- Дата время -->
<span class="news_date"><xsl:value-of disable-output-escaping="yes" select="item_datetime" /></span>
<br />
<!-- Название -->
<a href="{item_path}" class="news_title"><xsl:value-of disable-output-escaping="yes" select="item_name" /></a>
<br />
<!-- Изображение для информационного элемента (если есть) -->
<xsl:if test="item_small_image!=''">
<a href="{item_path}" class="news_title"><img src="/{item_small_image}" class="partner_img" alt="" style="margin: 3px 10px 10px 0px" align="left" /></a>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="item_description" />
<div style="clear: both;"></div>
</p>
</div>
</xsl:template>
<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
<xsl:param name="i" select="0" />
<xsl:param name="items_on_page" />
<xsl:param name="current_page" />
<xsl:param name="count_items" />
<xsl:param name="visible_pages" />
<xsl:variable name="n" select="$count_items div $items_on_page" />
<!-- Считаем количество выводимых ссылок перед текущим элементом -->
<xsl:variable name="pre_count_page">
<xsl:choose>
<xsl:when test="$current_page > ($n - (round($visible_pages div 2) - 1))">
<xsl:value-of select="$visible_pages - ($n - $current_page)" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="round($visible_pages div 2) - 1" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Считаем количество выводимых ссылок после текущего элемента -->
<xsl:variable name="post_count_page">
<xsl:choose>
<xsl:when test="0 > $current_page - (round($visible_pages div 2) - 1)">
<xsl:value-of select="$visible_pages - $current_page - 1" />
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="round($visible_pages div 2) = ($visible_pages div 2)">
<xsl:value-of select="$visible_pages div 2" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="round($visible_pages div 2) - 1" />
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$count_items > $items_on_page and $n > $i">
<!-- Ставим ссылку на страницу-->
<xsl:if test="$i != $current_page">
<!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
<xsl:variable name="parent_group_id" select="/document/blocks/parent_group_id" />
<!-- Определяем группу для формирования адреса ссылки -->
<xsl:variable name="group_link"><xsl:choose>
<!-- Если группа не корневая (!=0) -->
<xsl:when test="$parent_group_id != 0"><xsl:value-of select="/document/blocks//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:if test="$current_page - $pre_count_page > 0 and $i = 0">
<a href="{/document/blocks/url}{$group_link}" class="page_link" style="text-decoration: none;">←</a>
</xsl:if>
<xsl:choose>
<xsl:when test="$i >= ($current_page - $pre_count_page) and ($current_page + $post_count_page) >= $i">
<!-- Выводим ссылки на видимые страницы -->
<a href="{/document/blocks/url}{$group_link}{$number_link}" class="page_link"><xsl:value-of select="$i + 1" /></a>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
<!-- Выводим ссылку на последнюю страницу -->
<xsl:if test="$i+1 >= $n and $n > ($current_page + 1 + $post_count_page)">
<xsl:choose>
<xsl:when test="$n > round($n)">
<!-- Выводим ссылку на последнюю страницу -->
<a href="{/document/blocks/url}{$group_link}page-{round($n+1)}/" class="page_link" style="text-decoration: none;">→</a>
</xsl:when>
<xsl:otherwise>
<a href="{/document/blocks/url}{$group_link}page-{round($n)}/" class="page_link" style="text-decoration: none;">→</a>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</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="visible_pages" select="$visible_pages" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
и XML
<?xml version="1.0" encoding="windows-1251"?>
<document>
<ОтображатьСсылкуНаАрхив>1</ОтображатьСсылкуНаАрхив>
<ОтображатьСсылкиНаСледующиеСтраницы>0</ОтображатьСсылкиНаСледующиеСтраницы>
<blocks id="24">
<name>Каталог</name>
<description></description>
<url>/catalog/</url>
<access>0</access>
<parent_group_id>0</parent_group_id>
<count_items>0</count_items>
<count_items_on_page>10</count_items_on_page>
<count_all_items>4</count_all_items>
<count_groups>7</count_groups>
<count_all_groups>8</count_all_groups>
<group id="705" parent_id="0">
<name>Паркет</name>
<description>Для большинства из нас, паркетный пол - это пол собранный из планок штучного паркета. Торговая марка "Паркетный рай реализует штучный паркет широчайшего выбора, изготовленный лучшими</description>
<order>0</order>
<path>parket</path>
<fullpath>parket/</fullpath>
<access>0</access>
<count_items>3</count_items>
<count_all_items>3</count_all_items>
<count_groups>1</count_groups>
<count_all_groups>1</count_all_groups>
<big_image>information_groups_1251743368.jpg</big_image>
<small_image>small_information_groups_1251743368.jpg</small_image>
<allow_indexation>1</allow_indexation>
<seo_title>Паркет</seo_title>
<seo_description>Паркет</seo_description>
<seo_keywords>Паркет</seo_keywords>
<propertys>
</propertys>
<group id="712" parent_id="705">
<name>SLCa</name>
<description>SLCSLCSLCSLCSLC</description>
<order>0</order>
<path>slca</path>
<fullpath>parket/slca/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<allow_indexation>1</allow_indexation>
<seo_title>SLC</seo_title>
<seo_description>SLC</seo_description>
<seo_keywords>SLC</seo_keywords>
<propertys>
</propertys>
</group>
</group>
<group id="707" parent_id="0">
<name>Массивная доска</name>
<description>Паркетная доска — это трехслойная конструкция, имеющая паз и гребень. Поставляется уже в готовом виде, покрытая маслом или лаком. Паркетная доска отличается стабильностью при изменении температуры и влажности в помещении</description>
<order>1</order>
<path>massivnaja_doska</path>
<fullpath>massivnaja_doska/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<big_image>information_groups_1251743448.jpg</big_image>
<small_image>small_information_groups_1251743448.jpg</small_image>
<allow_indexation>1</allow_indexation>
<seo_title>Массивная доска</seo_title>
<seo_description>Массивная доска</seo_description>
<seo_keywords>Массивная доска</seo_keywords>
<propertys>
</propertys>
</group>
<group id="706" parent_id="0">
<name>Паркетная доска</name>
<description>Паркетная доска — это трехслойная конструкция, имеющая паз и гребень. Поставляется уже в готовом виде, покрытая маслом или лаком. Паркетная доска отличается стабильностью при изменении температуры и влажности в помещении</description>
<order>2</order>
<path>parketnaja_doska</path>
<fullpath>parketnaja_doska/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<big_image>information_groups_1251743419.jpg</big_image>
<small_image>small_information_groups_1251743419.jpg</small_image>
<allow_indexation>1</allow_indexation>
<seo_title>Паркетная доска</seo_title>
<seo_description>Паркетная доска</seo_description>
<seo_keywords>Паркетная доска</seo_keywords>
<propertys>
</propertys>
</group>
<group id="708" parent_id="0">
<name>Ламинат</name>
<description>Для большинства из нас, паркетный пол - это пол собранный из планок штучного паркета. Торговая марка "Паркетный рай реализует штучный паркет широчайшего выбора, изготовленный лучшими</description>
<order>3</order>
<path>laminat</path>
<fullpath>laminat/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<big_image>information_groups_1251743468.jpg</big_image>
<small_image>small_information_groups_1251743468.jpg</small_image>
<allow_indexation>1</allow_indexation>
<seo_title>Ламинат</seo_title>
<seo_description>Ламинат</seo_description>
<seo_keywords>Ламинат</seo_keywords>
<propertys>
</propertys>
</group>
<group id="711" parent_id="0">
<name>Масло OSMO</name>
<description>Масло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMO</description>
<order>4</order>
<path>maslo_osmo</path>
<fullpath>maslo_osmo/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<allow_indexation>1</allow_indexation>
<seo_title>Масло OSMO</seo_title>
<seo_description>Масло OSMO</seo_description>
<seo_keywords>Масло OSMO</seo_keywords>
<propertys>
</propertys>
</group>
<group id="709" parent_id="0">
<name>Паркетная химия</name>
<description>Паркетная химияПаркетная химия</description>
<order>5</order>
<path>parketnaja_khimija</path>
<fullpath>parketnaja_khimija/</fullpath>
<access>0</access>
<count_items>1</count_items>
<count_all_items>1</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<allow_indexation>1</allow_indexation>
<seo_title>Паркетная химия</seo_title>
<seo_description>Паркетная химия</seo_description>
<seo_keywords>Паркетная химия</seo_keywords>
<propertys>
</propertys>
</group>
<group id="710" parent_id="0">
<name>Соп. товары</name>
<description>Соп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарым</description>
<order>6</order>
<path>sop_tovary</path>
<fullpath>sop_tovary/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<allow_indexation>1</allow_indexation>
<seo_title>Соп. товары</seo_title>
<seo_description>Соп. товары</seo_description>
<seo_keywords>Соп. товары</seo_keywords>
<propertys>
</propertys>
</group>
<items>
<count_items>0</count_items>
<current_page>0</current_page>
<items_on_page>100</items_on_page>
</items>
</blocks>
</document>
<document>
<ОтображатьСсылкуНаАрхив>1</ОтображатьСсылкуНаАрхив>
<ОтображатьСсылкиНаСледующиеСтраницы>0</ОтображатьСсылкиНаСледующиеСтраницы>
<blocks id="24">
<name>Каталог</name>
<description></description>
<url>/catalog/</url>
<access>0</access>
<parent_group_id>0</parent_group_id>
<count_items>0</count_items>
<count_items_on_page>10</count_items_on_page>
<count_all_items>4</count_all_items>
<count_groups>7</count_groups>
<count_all_groups>8</count_all_groups>
<group id="705" parent_id="0">
<name>Паркет</name>
<description>Для большинства из нас, паркетный пол - это пол собранный из планок штучного паркета. Торговая марка "Паркетный рай реализует штучный паркет широчайшего выбора, изготовленный лучшими</description>
<order>0</order>
<path>parket</path>
<fullpath>parket/</fullpath>
<access>0</access>
<count_items>3</count_items>
<count_all_items>3</count_all_items>
<count_groups>1</count_groups>
<count_all_groups>1</count_all_groups>
<big_image>information_groups_1251743368.jpg</big_image>
<small_image>small_information_groups_1251743368.jpg</small_image>
<allow_indexation>1</allow_indexation>
<seo_title>Паркет</seo_title>
<seo_description>Паркет</seo_description>
<seo_keywords>Паркет</seo_keywords>
<propertys>
</propertys>
<group id="712" parent_id="705">
<name>SLCa</name>
<description>SLCSLCSLCSLCSLC</description>
<order>0</order>
<path>slca</path>
<fullpath>parket/slca/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<allow_indexation>1</allow_indexation>
<seo_title>SLC</seo_title>
<seo_description>SLC</seo_description>
<seo_keywords>SLC</seo_keywords>
<propertys>
</propertys>
</group>
</group>
<group id="707" parent_id="0">
<name>Массивная доска</name>
<description>Паркетная доска — это трехслойная конструкция, имеющая паз и гребень. Поставляется уже в готовом виде, покрытая маслом или лаком. Паркетная доска отличается стабильностью при изменении температуры и влажности в помещении</description>
<order>1</order>
<path>massivnaja_doska</path>
<fullpath>massivnaja_doska/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<big_image>information_groups_1251743448.jpg</big_image>
<small_image>small_information_groups_1251743448.jpg</small_image>
<allow_indexation>1</allow_indexation>
<seo_title>Массивная доска</seo_title>
<seo_description>Массивная доска</seo_description>
<seo_keywords>Массивная доска</seo_keywords>
<propertys>
</propertys>
</group>
<group id="706" parent_id="0">
<name>Паркетная доска</name>
<description>Паркетная доска — это трехслойная конструкция, имеющая паз и гребень. Поставляется уже в готовом виде, покрытая маслом или лаком. Паркетная доска отличается стабильностью при изменении температуры и влажности в помещении</description>
<order>2</order>
<path>parketnaja_doska</path>
<fullpath>parketnaja_doska/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<big_image>information_groups_1251743419.jpg</big_image>
<small_image>small_information_groups_1251743419.jpg</small_image>
<allow_indexation>1</allow_indexation>
<seo_title>Паркетная доска</seo_title>
<seo_description>Паркетная доска</seo_description>
<seo_keywords>Паркетная доска</seo_keywords>
<propertys>
</propertys>
</group>
<group id="708" parent_id="0">
<name>Ламинат</name>
<description>Для большинства из нас, паркетный пол - это пол собранный из планок штучного паркета. Торговая марка "Паркетный рай реализует штучный паркет широчайшего выбора, изготовленный лучшими</description>
<order>3</order>
<path>laminat</path>
<fullpath>laminat/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<big_image>information_groups_1251743468.jpg</big_image>
<small_image>small_information_groups_1251743468.jpg</small_image>
<allow_indexation>1</allow_indexation>
<seo_title>Ламинат</seo_title>
<seo_description>Ламинат</seo_description>
<seo_keywords>Ламинат</seo_keywords>
<propertys>
</propertys>
</group>
<group id="711" parent_id="0">
<name>Масло OSMO</name>
<description>Масло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMOМасло OSMO</description>
<order>4</order>
<path>maslo_osmo</path>
<fullpath>maslo_osmo/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<allow_indexation>1</allow_indexation>
<seo_title>Масло OSMO</seo_title>
<seo_description>Масло OSMO</seo_description>
<seo_keywords>Масло OSMO</seo_keywords>
<propertys>
</propertys>
</group>
<group id="709" parent_id="0">
<name>Паркетная химия</name>
<description>Паркетная химияПаркетная химия</description>
<order>5</order>
<path>parketnaja_khimija</path>
<fullpath>parketnaja_khimija/</fullpath>
<access>0</access>
<count_items>1</count_items>
<count_all_items>1</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<allow_indexation>1</allow_indexation>
<seo_title>Паркетная химия</seo_title>
<seo_description>Паркетная химия</seo_description>
<seo_keywords>Паркетная химия</seo_keywords>
<propertys>
</propertys>
</group>
<group id="710" parent_id="0">
<name>Соп. товары</name>
<description>Соп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарыСоп. товарым</description>
<order>6</order>
<path>sop_tovary</path>
<fullpath>sop_tovary/</fullpath>
<access>0</access>
<count_items>0</count_items>
<count_all_items>0</count_all_items>
<count_groups>0</count_groups>
<count_all_groups>0</count_all_groups>
<allow_indexation>1</allow_indexation>
<seo_title>Соп. товары</seo_title>
<seo_description>Соп. товары</seo_description>
<seo_keywords>Соп. товары</seo_keywords>
<propertys>
</propertys>
</group>
<items>
<count_items>0</count_items>
<current_page>0</current_page>
<items_on_page>100</items_on_page>
</items>
</blocks>
</document>
Подскажите что куда надо дописать что бы вся структура была видна как в html показано

Авторизация