Добрый день. Есть меню из 6 пунктов вида:
Главная Пункт 1 Пункт 2 Пункт 3 Пункт 4 Пункт 5 Пункт 6
При нахождении на главной ее мы в меню не отображаем, при нахождении в разделе Пункт 1 его не отображаем и т.д. по аналогии.
Мне необходимо после 3-го пункта делать отступ, чтобы получалось нечто вида
Пункт 1 Пункт 2 Пункт 3 Пункт 4 Пункт 5 Пункт 6
Главная Пункт 2 Пункт 3 Пункт 4 Пункт 5 Пункт 6
и т.д.
В структуре сайта нумерация проставлена.
если использовать position() = 3, то находясь в Пункте 3 отступа нет, т.к. он не отображается. Я так понял, что position() берет номер из структуры.
Чем можно заменить position()? Пробовал count() чтобы считать элементы, но так у меня и не получилось.
<?xml version="1.0" encoding="utf-8"?>
<!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="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:template match="/document">
<!-- Выбираем узлы структуры первого уровня -->
<xsl:apply-templates select="structure[show=1]"/>
</xsl:template>
<xsl:template match="structure">
<!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
<xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
<!-- Показывать ссылку, или нет -->
<xsl:choose>
<xsl:when 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:if test="current_structure_id = 1 and link != '/'">
<span>
<img src="{propertys/property[@name='menu_icon']/small_image/property_file_path}" />
<!-- Ссылка на пункт меню -->
<a href="{$link}" title="{name}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</span>
</xsl:if>
<xsl:if test="current_structure_id != 1 and $current_structure_id != @id">
<span>
<xsl:if test="position()=3">
<xsl:attribute name="style">margin-right: 170px</xsl:attribute>
</xsl:if>
<img src="{propertys/property[@name='menu_icon']/small_image/property_file_path}" />
<!-- Ссылка на пункт меню -->
<a href="{$link}" title="{name}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</span>
</xsl:if>
</xsl:when>
<!-- Если не показывать ссылку - выводим просто имя ссылки -->
<xsl:otherwise>
<xsl:if test="current_structure_id = 1 and link != '/'">
<span>
<img src="{propertys/property[@name='menu_icon']/small_image/property_file_path}" />
<xsl:value-of disable-output-escaping="yes" select="name"/>
</span>
</xsl:if>
<xsl:if test="current_structure_id != 1 and $current_structure_id != @id">
<span>
<img src="{propertys/property[@name='menu_icon']/small_image/property_file_path}" />
<xsl:value-of disable-output-escaping="yes" select="name"/>
</span>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>