CBreadcrumbs
| Пакет | zii.widgets |
|---|---|
| Наследование | class CBreadcrumbs » CWidget » CBaseController » CComponent |
| С момента | 1.1 |
| Исходный код | framework/zii/widgets/CBreadcrumbs.php |
Например, хлебные крошки «Главная > Пример статьи > Редактировать» означают, что пользователь просматривает страницу редактирования статьи «Пример статьи». Пользователь может нажать на «Пример статьи», чтобы перейти на эту страницу, или на «Главная», чтобы вернуться на главную страницу.
Для использования CBreadcrumbs, обычно необходимо настроить свойство links, которое указывает ссылки для отображения. Например,
$this->widget('zii.widgets.CBreadcrumbs', array(
'links'=>array(
'Sample post'=>array('post/view', 'id'=>12),
'Edit',
),
));
Так как хлебные крошки обычно отображаются почти на каждой странице сайта, лучше разместить этот виджет в макете представления. Можно определить свойство «breadcrumbs» в базовом классе контроллера и назначить его виджету в макете, как показано ниже:
$this->widget('zii.widgets.CBreadcrumbs', array(
'links'=>$this->breadcrumbs,
));
Затем, в каждом сценарии представления, нужно назначить свойство «breadcrumbs» по мере необходимости.
Общественные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| actionPrefix | строка | префикс к идентификаторам действий. | CWidget |
| activeLinkTemplate | строка | Строка, определяющая, как отображается каждый активный элемент. | CBreadcrumbs |
| controller | CController | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| encodeLabel | булево | указывает, следует ли кодировать метки ссылок в HTML. | CBreadcrumbs |
| homeLink | строка | первая гиперссылка в хлебных крошках (называемая домашней ссылкой). | CBreadcrumbs |
| htmlOptions | массив | HTML-атрибуты для тега контейнера хлебных крошек. | CBreadcrumbs |
| id | строка | Возвращает идентификатор виджета или генерирует новый, если запрошено. | CWidget |
| inactiveLinkTemplate | строка | Строка, определяющая, как отображается каждый неактивный элемент. | CBreadcrumbs |
| links | массив | список гиперссылок, которые должны появиться в хлебных крошках. | CBreadcrumbs |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| separator | строка | разделитель между ссылками в хлебных крошках. | CBreadcrumbs |
| skin | смешанное | название скина, используемого этим виджетом. | CWidget |
| tagName | строка | имя тега для контейнера хлебных крошек. | CBreadcrumbs |
| viewPath | строка | Возвращает директорию, содержащую файлы представлений для этого виджета. | CWidget |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с указанным именем, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CWidget |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства нулевым. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| actions() | Возвращает список действий, используемых этим виджетом. | CWidget |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| beginCache() | Начинает кэширование фрагмента. | CBaseController |
| beginClip() | Начинает запись клипа. | CBaseController |
| beginContent() | Начинает отображение содержимого, которое должно быть оформлено указанной схемой представления. | CBaseController |
| beginWidget() | Создаёт виджет и выполняет его. | CBaseController |
| canGetProperty() | Определяет, можно ли считать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createWidget() | Создаёт виджет и инициализирует его. | CBaseController |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединённое поведение. | CComponent |
| disableBehaviors() | Отключает все поведения, присоединённые к этому компоненту. | CComponent |
| enableBehavior() | Включает присоединённое поведение. | CComponent |
| enableBehaviors() | Включает все присоединённые к этому компоненту поведения. | CComponent |
| endCache() | Завершает кэширование фрагмента. | CBaseController |
| endClip() | Завершает запись клипа. | CBaseController |
| endContent() | Завершает отображение содержимого. | CBaseController |
| endWidget() | Завершает выполнение указанного виджета. | CBaseController |
| evaluateExpression() | Вычисляет PHP-выражение или обратный вызов в контексте этого компонента. | CComponent |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getEventHandlers() | Возвращает список присоединённых обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор виджета или генерирует новый, если это необходимо. | CWidget |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getViewFile() | Ищет файл сценария представления в соответствии с именем представления. | CWidget |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, имеются ли присоединённые обработчики для события с указанным именем. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует виджет. | CWidget |
| raiseEvent() | Вызывает событие. | CComponent |
| render() | Отображает представление. | CWidget |
| renderFile() | Отображает файл представления. | CBaseController |
| renderInternal() | Отображает файл представления. | CBaseController |
| run() | Отображает содержимое виджета. | CBreadcrumbs |
| setId() | Устанавливает идентификатор виджета. | CWidget |
| widget() | Создаёт виджет и выполняет его. | CBaseController |
Подробное описание свойств
activeLinkTemplate свойство (доступно с v1.1.11)
public string $activeLinkTemplate;
Строка, определяющая, как отображается каждый активный элемент. По умолчанию "{label}", где "{label}" будет заменён соответствующим меткой элемента, а "{url}" - URL элемента.
encodeLabel свойство
public boolean $encodeLabel;
необходимо ли кодировать метки ссылок в HTML. По умолчанию true.
homeLink свойство
public string $homeLink;
первая гиперссылка в хлебных крошках (называемая домашней ссылкой). Если это свойство не установлено, оно по умолчанию ссылается на CWebApplication::homeUrl с меткой «Домой». Если это свойство ложно, домашняя ссылка не будет отображаться.
htmlOptions свойство
public array $htmlOptions;
атрибуты HTML для тега контейнера хлебных крошек.
inactiveLinkTemplate свойство (доступно с v1.1.11)
public string $inactiveLinkTemplate;
Строка, определяющая, как отображается каждый неактивный элемент. По умолчанию "{label}", где "{label}" заменяется соответствующей меткой элемента. Обратите внимание, что в неактивном шаблоне параметра "{url}" нет.
links свойство
public array $links;
Список гиперссылок, которые должны отображаться в хлебных крошках. Если этот параметр пустой, виджет ничего не отобразит. Каждая пара "ключ-значение" в массиве будет использоваться для создания гиперссылки с помощью вызова CHtml::link(ключ, значение). Таким образом, ключ относится к метке ссылки, а значение может быть строкой или массивом (используется для создания URL). Для более подробной информации, пожалуйста, обратитесь к CHtml::link. Если ключ элемента — целое число, это означает, что элемент будет отображаться только как метка (означает текущую страницу).
Следующий пример сгенерирует хлебные крошки как "Главная > Пример статьи > Редактировать", где "Главная" указывает на домашнюю страницу, "Пример статьи" указывает на страницу "index.php?r=post/view&id=12", а "Редактировать" — это метка. Обратите внимание, что ссылка "Главная" указана отдельно через homeLink.
array(
'Sample post'=>array('post/view', 'id'=>12),
'Edit',
)
разделитель свойство
public string $separator;
разделитель между ссылками в хлебных крошках. По умолчанию ' » '.
имяТега свойство
public string $tagName;
имя тега для контейнера хлебных крошек. По умолчанию 'div'.
Подробное описание методов
run() метод
public void run() |
public function run()
{
if(empty($this->links))
return;
$definedLinks = $this->links;
echo CHtml::openTag($this->tagName,$this->htmlOptions)."\n";
$links=array();
if($this->homeLink===null)
$definedLinks=array(Yii::t('zii','Home') => Yii::app()->homeUrl)+$definedLinks;
elseif($this->homeLink!==false)
$links[]=$this->homeLink;
foreach($definedLinks as $label=>$url)
{
if(is_string($label) || is_array($url))
$links[]=strtr($this->activeLinkTemplate,array(
'{url}'=>CHtml::normalizeUrl($url),
'{label}'=>$this->encodeLabel ? CHtml::encode($label) : $label,
));
else
$links[]=str_replace('{label}',$this->encodeLabel ? CHtml::encode($url) : $url,$this->inactiveLinkTemplate);
}
echo implode($this->separator,$links);
echo CHtml::closeTag($this->tagName);
}
Отображает содержимое виджета.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CBreadcrumbs