alexmak,
посмотрите поиском по сайту. Вообще готовых меню в сети полно, просто стоит поискать, а как найдете понравившееся переделать на XSL, там ничего сложного.
Эх, а как бы хотя бы третий уровень вложенности сделать?
У меня структура такая:
Сервис/
Сервис/гарантия/
Сервис/гарантия/производитель1/
Сервис/гарантия/производитель2/
Сервис/негарантия/
По предложенному решению - второй уровень работает отлично, но что делать с третьим (что бы было видно производитель1, производитель2)?
Помогите пожалуйста
Уточню немного:
Вышеописаная структура - это не инфосистема, а некоторое количество статических страниц.
А задача стоит так:
на сайте есть раздел "Сервис"
Сейчас в этом разделе отображаются подразделы:
гарантия/
негарантия/
а нужно, что бы при переходе в подраздел "гарантия/"
отображались документы, находящиеся в подразделе "гарантия/"
и все подразделы раздела "сервис"
то есть
гарантия - активно
<xsl:template match="structure">
<li>
<!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
<xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
<!-- Показывать ссылку, или нет -->
<xsl:if test="show_link = 1">
<!-- Определяем адрес ссылки -->
<xsl:variable name="link"><xsl:choose>
<!-- Если внешняя ссылка -->
<xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when>
<!-- Иначе если внутренняя ссылка -->
<xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise>
</xsl:choose></xsl:variable>
<!-- Определяем стиль вывода ссылки -->
<xsl:variable name="link_style"><xsl:choose>
<!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
<xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">font-weight: bold</xsl:when>
<!-- Иначе обычный вывод с пустым стилем -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose></xsl:variable>
В разделе XSL шаблоны/меню
Создал XSL шаблон, приведеный Вами, с именем, который Вы указали, на странице не отображается ничего, там, где должно быть меню
А нужно именно то, что Вы показали в примере
Если row_structure сменить на structure_row (так будет правильно) - ошибка исчезает, но тогда в меню выводятся только группы инфосистемы.
Подскажите, пожалуйста, как мне быть?
Заранее спасибо!
www.dsaleks.ru - создание сайтов и интернет-магазинов