Эта тема очень долго обсуждалась на форуме, но я так и не нашёл ответ.
Есть ИС "Портфолио". В нем три подгруппы. При отображении корня ИС выходит названия подгрупп.
Задача: Поправить XSL так что бы в корне выводилось определённое количество элементов из подгруп.
Я знаю как сделать это через шаблон, просто добавить в HTML конструкцию вызова ИС и указать там количество выводимых элементов, но это не решение.
Вот XSL:
<xsl:template match="/">
<xsl:apply-templates select="/document"/>
</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">
<h1>
<xsl:value-of disable-output-escaping="yes" select="blocks/name"/>
</h1>
<!-- Описание выводится при отсутствии фильтрации по тэгам -->
<xsl:if test="count(blocks/tags/tag) = 0">
<xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
</xsl:if>
<xsl:variable name="group_id" select="@id"/>
<xsl:apply-templates select="/document/blocks/items//item[@group_id=$group_id]"/>
</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>
</xsl:if>
<!-- Отображение подгрупп данной группы, только если подгруппы есть -->
<xsl:if test="count(.//group[@parent_id=$parent_group_id]) > 0">
Разделы:
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
</xsl:if>
<!-- Отображение записи информационной системы -->
<table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td>
<div style="margin-left:8px; margin-top:8px; margin-right:8px"><div class="floats">
<xsl:apply-templates select="blocks/items/item[item_status=1]"/>
</div></div></td></tr></table>
<!-- Строка ссылок на другие страницы информационной системы -->
<xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
<p>
<!-- Ссылка, для которой дописываются суффиксы page-XX/ -->
<xsl:variable name="link">
<xsl:value-of select="/document/blocks/url"/>
<xsl:if test="$parent_group_id != 0">
<xsl:value-of select="/document/blocks//group[@id = $parent_group_id]/fullpath"/>
</xsl:if>
</xsl:variable>
<xsl:call-template name="for">
<xsl:with-param name="link" select="$link"/>
<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">5</xsl:with-param>
</xsl:call-template>
</p>
</xsl:if>
<div style="clear: both"></div>
<xsl:if test="ОтображатьСсылкуНаАрхив=1">
<div class="archives_4_ie"></div>
<a href="{blocks/url}">
<img src="/images/archives.png" style="filter: alpha(opacity=0); margin: 0px 0px -4px 0px"/>
</a>
<a href="{blocks/url}">Архив "<xsl:value-of disable-output-escaping="yes" select="blocks/name"/>"</a>
</xsl:if>
</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">
  <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>
<!-- ======================== -->
<!-- Данные об инф. элементах -->
<!-- ======================== -->
<xsl:template match="blocks/items/item">
<div class="left">
<div class="r">
<div>
<a href="{item_path}">
<img src="{item_small_image}" alt="{item_name}" style="margin: 3px 10px 10px 0px; border: 0px solid #999999;" align="left"/>
</a><br />
<!-- Название -->
<div style="text-align: center;">
<a href="{item_path}">
<xsl:value-of disable-output-escaping="yes" select="item_name"/>
</a>
</div>
</div>
</div>
<div class="min"></div>
</div>
</xsl:template>
<!-- /// Метки для информационного элемента /// -->
<xsl:template match="tags/tag">
<a href="{/document/blocks/url}tag/{tag_path_name}/" class="tag">
<xsl:value-of select="tag_name"/>
</a>
<xsl:if test="position() != last()">,</xsl:if> </xsl:template>
(дальше код вывода ссылок на страницы, я его опустил что бы не засорять форум.)
Вопрос: как изменить XSL?
Заранее спасибо.