Логотип

Документация по макросам и шаблонам UMI.CMS

core navibar()

Название

%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.

Дополнительные сведения

<?=$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>

Элементы и атрибуты

<items>

Ветвь, описывающая список страниц входящих в навибар, включая текущую.

<item>

Элемент, описывающий отдельную страницу из списка.

@id

Идентификатор страницы

@link

Адрес страницы

@xlink:href

Ссылка UPage на страницу

Примеры использования

Для того, чтобы вставить навибар в определенное место на странице, необходимо вызвать макрос по протоколу 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%

Выводит ссылку на страницу, которая является пунктом навибара.

element_active

Выводит отдельный последний пункт навибара в том случае, если параметр full в макросе равен «0».

%text%

Выводит название страницы, которая является пунктом навибара.

%link%

Выводит ссылку на страницу, которая является пунктом навибара.

quantificator

Разделитель, который вставляется между пунктами навибара.

Примеры использования

Простой вывод навибара: %core navibar()%.

Простой вывод навибара по пользовательскому шаблону: %core navibar('sample')%.

Вывод навибара, где последний пункт обрезается: %core navibar('default', 1, 0, 1)%.

Вывод навибара, где последний пункт выводится в особом оформлении, а первые 2 пункта обрезаются: %core navibar('default', 0, 1, 0)%.