Здравствуйте!Как вывести все содержимое ИС (группы,подгруппы,инф.эл-ты) в раскрытом виде? Т.е. мне нужна простая реализация древовидного вывода содержимого информационной системы.
Есть ИС "Услуги" и вот как выглядит
Услуга 1 (группа)
-- Услуга 1.1. (инф. эл-т)
-- --Услуга 1.1. (инф. эл-т)
-- Услуга 1.1. (инф. эл-т)
Услуга 2 (инф.элемент)
Услуга 3 (инф.элемент)
Услуга 4 (инф.элемент)
Т.е. мне просто нужно,чтобы это все было в таком виде. Что я пока для этого сделал:
XSL:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="http://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- СписокЭлементовИнфосистемы -->
<xsl:template match="/">
<xsl:apply-templates select="/informationsystem"/>
</xsl:template>
<xsl:variable name="n" select="number(3)"/>
<xsl:template match="/informationsystem">
<!-- Получаем ID родительской группы и записываем в переменную $group -->
<xsl:variable name="group" select="group"/>
<!-- Отображение подгрупп данной группы, только если подгруппы есть и не идет фильтра по меткам -->
<xsl:if test="count(tag) = 0 and informationsystem_item and count(.//informationsystem_group[parent_id=$group]) > 0">
<ul class="aside-list">
<xsl:apply-templates select=".//informationsystem_group[parent_id=$group][position() mod $n = 1]" mode="groups"/>
<xsl:apply-templates select="informationsystem_item"/>
</ul>
</xsl:if>
</xsl:template>
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<xsl:template match="informationsystem_group" mode="groups">
<ul class="aside-list">
<a href="{url}" class="aside-link"><span><xsl:value-of disable-output-escaping="yes" select="name"/></span></a>
<div class="aside-link">
<ul class="aside-list--inner">
<xsl:apply-templates select="informationsystem_item"/>
</ul>
</div>
</ul>
</xsl:template>
<!-- Шаблон вывода информационного элемента -->
<xsl:template match="informationsystem_item">
<li class="aside-item">
<a href="{url}" class="aside-link"><span><xsl:value-of disable-output-escaping="yes" select="name"/></span></a>
</li>
</xsl:template>
</xsl:stylesheet>
В макет:
<?php
if (Core::moduleIsActive('informationsystem'))
{
// Услуги на главной
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
Core_Entity::factory('Informationsystem', 19));
$Informationsystem_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('УслугиСлеваСайт2')
)
->groupsMode('all')
->limit(20)
->show();
}
?>
Но выходит только вот так:
Услуга 1 (группа)
Услуга 2 (инф.элемент)
Услуга 3 (инф.элемент)
Услуга 4 (инф.элемент)
т.е. подгрупп нет. Как быть?