Здравствуйте,
По одному из примеров с форума сделал небольшую менюшку для информационной системы:
Вывод:
<?php
$InformationSystem = & singleton('InformationSystem');
$item_count = 999;
$InformationSystemId = 15;
$InformationGroupId = false; // false - из всех групп, 0 - из корневой группы
$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId, 'МенюИнфосистемы', $item_count, 0);
?>
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 select="/document"/>
</xsl:template>
<xsl:template match="/document">
<xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>
<!-- Отображение подгрупп данной группы, только если подгруппы есть и не идет фильтра по меткам -->
<xsl:if test="count(blocks/selected_tags/tag) = 0 and count(.//group[@parent_id=$parent_group_id]) > 0">
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
</xsl:if>
</xsl:template>
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<xsl:template match="group" mode="groups">
<li><a href="{/document/blocks/url}{fullpath}">
<b>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</b>
</a>
<ul>
<xsl:apply-templates select="group" mode="groups"/>
<xsl:variable name="group_id" select="@id"/>
<xsl:apply-templates select="/document/blocks/items//item[@group_id=$group_id]"/>
</ul>
</li>
</xsl:template>
<!-- Шаблон вывода информационного элемента -->
<xsl:template match="blocks/items/item">
<xsl:value-of disable-output-escaping="yes" select="item_name"/><br/>
</xsl:template>
</xsl:stylesheet>
Вывод работает, но проблема с ярлыками... ярлыки выводятся в той-же группе, где лежит его основной элемент, а должны быть в других группах где в общем они и лежат...
Например как должно быть:
группа 1
инфэлемент1
инфэлемент2
ярлык инфэлемента3
группа 2
инфэлемент3
инфэлемент4
ярлык инфэлемента1
ярлык инфэлемента2
...
Пример что получилось:
группа 1
инфэлемент1
ярлык инфэлемента1
инфэлемент2
ярлык инфэлемента2
группа 2
инфэлемент3
ярлык инфэлемента3
инфэлемент4
............
Подскажите, как модифицировать код, чтобы ярлыки попадали в нужную группу...???