85  /  331

Управление шаблоном навигационной цепочки

Просмотров: 4452 (Статистика ведётся с 06.02.2017)

Цепочка навигации подключается в шаблоне дизайна сайта с помощью компонента Навигационная цепочка (bitrix:breadcrumb). Для него может быть создано любое количество шаблонов, т.е. внешних видов. Все они хранятся в папке компонента /bitrix/components/bitrix/breadcrumb/templates/<название шаблона>/. Все созданные шаблоны будут отображаться в настройках компонента. Таким образом для каждого шаблона сайта может быть установлен свой шаблон оформления компонента цепочки навигации. Структура шаблона показа навигационной цепочки аналогична структуре шаблона показа меню.

Управление навигационной цепочкой и ее шаблоном оформления осуществляется также, как при работе с другими компонентами 2.0. В режиме правки сайта с помощью кнопки управления вы можете быстро перейти к форме изменения параметров компонента либо скопировать шаблон компонента, а затем отредактировать его.


Алгоритм построения цепочки навигации и формирования ее внешнего вида:

  1. Сбор пунктов навигационной цепочки ведется начиная от корня сайта и заканчивая текущим разделом. Для каждого очередного раздела подключается файл .section.php. Если в данном файле будет инициализирована переменная $sChainTemplate, то ее значение будет использовано в качестве пути к шаблону навигационной цепочки. В процессе перебора разделов, каждое последующее значение этой переменной перетирает предыдущее, таким образом, чем "глубже" раздел в иерархии разделов сайта, тем "важнее" его переменная $sChainTemplate.
  2. Если после сбора пунктов навигационной цепочки путь к шаблону не определён, то проверяется существование файла:

    /bitrix/templates/ID текущего шаблона сайта/chain_template.php

    Если такой файл существует, то путь к нему и принимается за путь к шаблону навигационной цепочки, в противном случае используется значение по умолчанию:

    /bitrix/templates/.default/chain_template.php

Шаблон навигационной цепочки при ее выводе будет подключаться каждый раз на очередном пункте цепочки. Поэтому основная его задача - обеспечить внешний вид только одного пункта цепочки.

Основными переменными используемыми в шаблоне являются:

  • $sChainProlog - HTML код выводимый перед навигационной цепочкой
  • $sChainBody - HTML код определяющий внешний вид одного пункта навигационной цепочки
  • $sChainEpilog - HTML код выводимый после навигационной цепочки
  • $strChain - HTML код всей навигационной цепочки собранный к моменту подключения шаблона

Вышепредставленные переменные будут хранить в себе HTML-код, который определит внешний вид навигационной цепочки.

Также в шаблоне будут доступны следующие дополнительные переменные:

  • $TITLE - заголовок очередного пункта навигационной цепочки
  • $LINK - ссылка на очередном пункте навигационной цепочки
  • $arCHAIN - копия массива элементов навигационной цепочки
  • $arCHAIN_LINK - ссылка на массив элементов навигационной цепочки
  • $ITEM_COUNT - количество элементов массива навигационной цепочки
  • $ITEM_INDEX - порядковый номер очередного пункта навигационной цепочки

Пример шаблона компонента навигационной цепочки:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

if(empty($arResult))
  return "";

$strReturn = '<ul class="breadcrumb-navigation">';
for($index = 0, $itemSize = count($arResult); $index < $itemSize; $index++)
{
   if($index > 0)
          $strReturn .= '<li><span>&nbsp;&gt;&nbsp;</span></li>';
   $title = htmlspecialcharsex($arResult[$index]["TITLE"]);
   if($arResult[$index]["LINK"] <> "")
          $strReturn .= '<li><a href="'.$arResult[$index]["LINK"].'" title="'.$title.'">'.$title.'</a></li>';
   else
          $strReturn .= '<li>'.$title.'</li>';
}
$strReturn .= '</ul>';
return $strReturn;
?>

Примечание:

При подключении навигационной цепочки с помощью функции ShowNavChain() ее шаблон может быть задан дополнительно для отдельного раздела сайта.
Для этого непосредственно в файле .section.php определяется переменная $sChainTemplate, где задается полный путь к шаблону показа навигационной цепочки. Например:

$sChainTemplate = "/bitrix/templates/demo/chain_template.php"

Шаблон навигационной цепочки может быть также задан при вызове функции ShowNavChain() как один из параметров функции.

$APPLICATION->ShowNavChain("/bitrix/templates/.default/chain_template_bottom.php")


20
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии