<?=$this->render($this->macros('core', 'navibar'), 'library/navibar')?>
Пример вызова
udata://core/navibar
XML-ответ UData
При вызове макроса через адресную строку, ответ UData будет следующим:
<udata module="core" method="navibar" generation-time="0.001805">
<items/>
</udata>
Примеры использования
Для того, чтобы вставить навибар в определенное место на странице, необходимо вызвать макрос по протоколу UData. Укажем в шаблоне дизайна место вывода меню при помощи инструкции apply-templates
, и допишем три шаблона — общий, для обработки результатов, шаблон для отдельного элемента, и шаблон для последнего элемента (текущей страницы):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<html>
<head></head>
<body>
// вызов макроса
<xsl:apply-templates select="document('udata://core/navibar')/udata"/>
// контент страницы и другое
<xsl:apply-templates select="result"/>
</body>
</html>
</xsl:template>
// шаблон для обработки результатов макроса
<xsl:template match="udata[@method = 'navibar']">
<ul class="navibar">
<xsl:apply-templates select="items/item" mode="navibar"/>
</ul>
</xsl:template>
// шаблон для элементов со ссылками
<xsl:template match="item" mode="navibar">
<li>
<a href="{@link}"><xsl:value-of select="."/></a>
// разделитель
<xsl:text> » </xsl:text>
</li>
</xsl:template>
// шаблон для последнего элемента
<xsl:template match="item[position() = last()]" mode="navibar">
<li><xsl:value-of select="."/></li>
</xsl:template>
</xsl:stylesheet>
Используемые шаблоны
Макрос оперирует шаблонами, находящимися в каталоге /tpls/content/navibar/
.
Используемые блоки шаблона
navibar
Выводит блок оформления для навибара.
- %elements%
-
Выводит список пунктов, которые необходимо вывести в навибаре.
navibar_empty
Если в навибаре нет пунктов, которые необходимо вывести, то выводится содержание этого блока.
element
Выводит отдельный пункт навибара.
- %text%
-
Выводит название страницы, которая является пунктом навибара.
- %link%
-
Выводит ссылку на страницу, которая является пунктом навибара.
Примеры использования
Простой вывод навибара: %core navibar()%.
Простой вывод навибара по пользовательскому шаблону: %core navibar('sample')%.
Вывод навибара, где последний пункт обрезается: %core navibar('default', 1, 0, 1)%.
Вывод навибара, где последний пункт выводится в особом оформлении, а первые 2 пункта обрезаются: %core navibar('default', 0, 1, 0)%.
Название
%core navibar()% — Выводит навибар для текущей страницы
Параметры: core navibar([template = 'default', full = '1', offsetLeft = '0', offsetRight = '0'])
- template
-
Имя шаблона, по которому следует выводит навибар.В XSLT-шаблонизаторе игнорируется.
- full
-
Если этот параметр равен «0», то для последнего пункта в навибаре будет использоваться блок element_active. Если он равен «1», то для всех пунктов навибара используется блок element. По умолчанию этот параметр равен «1».В XSLT-шаблонизаторе игнорируется.
- offsetLeft
-
Количество пунктов навибара, которые отсекаются начиная от начала. По умолчанию этот параметр равен «0».
- offsetRight
-
Количество пунктов навибара, которые отсекаются начиная от конца. По умолчанию этот параметр равен «0».
Описание
Макрос выводит на страницу навибар (он же «хлебные крошки», «breadcrumbs») для текущей страницы.
Вывод навибара осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода свойства будет использован шаблон по умолчанию — default.tpl
.