Class yii\bootstrap\Nav
Inheritance | yii\bootstrap\Nav » yii\bootstrap\Widget » yii\base\Widget » yii\base\Component » yii\base\Object |
---|---|
Implements | yii\base\Configurable, yii\base\ViewContextInterface |
Uses Traits | yii\bootstrap\BootstrapWidgetTrait |
Subclasses | lispa\amos\core\toolbar\Nav, lispa\amos\layout\toolbar\Nav |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2-bootstrap/blob/master/Nav.php |
Nav renders a nav HTML component.
For example:
echo Nav::widget([
'items' => [
[
'label' => 'Home',
'url' => ['site/index'],
'linkOptions' => [...],
],
[
'label' => 'Dropdown',
'items' => [
['label' => 'Level 1 - Dropdown A', 'url' => '#'],
'<li class="divider"></li>',
'<li class="dropdown-header">Dropdown Header</li>',
['label' => 'Level 1 - Dropdown B', 'url' => '#'],
],
],
[
'label' => 'Login',
'url' => ['site/login'],
'visible' => Yii::$app->user->isGuest
],
],
'options' => ['class' =>'nav-pills'], // set this to nav-tab to get tab-styled navigation
]);
Note: Multilevel dropdowns beyond Level 1 are not supported in Bootstrap 3.
See also:
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$activateItems | boolean | Whether to automatically activate items according to whether their route setting matches the currently requested route. | yii\bootstrap\Nav |
$activateParents | boolean | Whether to activate parent menu items when one of the corresponding child menu items is active. | yii\bootstrap\Nav |
$autoIdPrefix | string | The prefix to the automatically generated widget IDs. | yii\base\Widget |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
$clientEvents | array | The event handlers for the underlying Bootstrap JS plugin. | yii\bootstrap\BootstrapWidgetTrait |
$clientOptions | array | The options for the underlying Bootstrap JS plugin. | yii\bootstrap\BootstrapWidgetTrait |
$counter | integer | A counter used to generate $id for widgets. | yii\base\Widget |
$dropDownCaret | string | This property allows you to customize the HTML which is used to generate the drop down caret symbol, which is displayed next to the button text to indicate the drop down functionality. | yii\bootstrap\Nav |
$dropdownClass | string | Name of a class to use for rendering dropdowns within this widget. | yii\bootstrap\Nav |
$encodeLabels | boolean | Whether the nav items labels should be HTML-encoded. | yii\bootstrap\Nav |
$id | string | ID of the widget. | yii\base\Widget |
$items | array | List of items in the nav widget. | yii\bootstrap\Nav |
$options | array | The HTML attributes for the widget container tag. | yii\bootstrap\Widget |
$params | array | The parameters used to determine if a menu item is active or not. | yii\bootstrap\Nav |
$route | string | The route used to determine if a menu item is active or not. | yii\bootstrap\Nav |
$stack | yii\base\Widget[] | The widgets that are currently being rendered (not ended). | yii\base\Widget |
$view | yii\web\View | The view object that can be used to render views or view files. | yii\bootstrap\BootstrapWidgetTrait |
$viewPath | string | The directory containing the view files for this widget. | yii\base\Widget |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\Object |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
afterRun() | This method is invoked right after a widget is executed. | yii\base\Widget |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
beforeRun() | This method is invoked right before the widget is executed. | yii\base\Widget |
begin() | Begins a widget. | yii\base\Widget |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\Object |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
end() | Ends a widget. | yii\base\Widget |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getId() | Returns the ID of the widget. | yii\base\Widget |
getView() | yii\bootstrap\BootstrapWidgetTrait | |
getViewPath() | Returns the directory containing the view files for this widget. | yii\base\Widget |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the widget. | yii\bootstrap\Nav |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
render() | Renders a view. | yii\base\Widget |
renderFile() | Renders a view file. | yii\base\Widget |
renderItem() | Renders a widget's item. | yii\bootstrap\Nav |
renderItems() | Renders widget items. | yii\bootstrap\Nav |
run() | Renders the widget. | yii\bootstrap\Nav |
setId() | Sets the ID of the widget. | yii\base\Widget |
setView() | Sets the view object to be used by this widget. | yii\base\Widget |
trigger() | Triggers an event. | yii\base\Component |
widget() | Creates a widget instance and runs it. | yii\base\Widget |
Protected Methods
Method | Description | Defined By |
---|---|---|
isChildActive() | Check to see if a child item is active optionally activating the parent. | yii\bootstrap\Nav |
isItemActive() | Checks whether a menu item is active. | yii\bootstrap\Nav |
registerClientEvents() | Registers JS event handlers that are listed in $clientEvents. | yii\bootstrap\BootstrapWidgetTrait |
registerPlugin() | Registers a specific Bootstrap plugin and the related events | yii\bootstrap\BootstrapWidgetTrait |
renderDropdown() | Renders the given items as a dropdown. | yii\bootstrap\Nav |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_AFTER_RUN | yii\base\WidgetEvent | An event raised right after executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_BEFORE_RUN | yii\base\WidgetEvent | An event raised right before executing a widget. (available since version 2.0.11) | yii\base\Widget |
EVENT_INIT | yii\base\Event | An event that is triggered when the widget is initialized via init(). (available since version 2.0.11) | yii\base\Widget |
Property Details
Whether to automatically activate items according to whether their route setting matches the currently requested route.
See also isItemActive().
Whether to activate parent menu items when one of the corresponding child menu items is active.
This property allows you to customize the HTML which is used to generate the drop down caret symbol,
which is displayed next to the button text to indicate the drop down functionality.
Defaults to null
which means <span class="caret"></span>
will be used. To disable the caret, set this property to be an empty string.
Name of a class to use for rendering dropdowns within this widget. Defaults to yii\bootstrap\Dropdown.
Whether the nav items labels should be HTML-encoded.
List of items in the nav widget. Each array element represents a single menu item which can be either a string or an array with the following structure:
- label: string, required, the nav item label.
- url: optional, the item's URL. Defaults to "#".
- visible: bool, optional, whether this menu item is visible. Defaults to true.
- linkOptions: array, optional, the HTML attributes of the item's link.
- options: array, optional, the HTML attributes of the item container (LI).
- active: bool, optional, whether the item should be on active state or not.
- dropDownOptions: array, optional, the HTML options that will passed to the yii\bootstrap\Dropdown widget.
- items: array|string, optional, the configuration array for creating a yii\bootstrap\Dropdown widget, or a string representing the dropdown menu. Note that Bootstrap does not support sub-dropdown menus.
- encode: bool, optional, whether the label will be HTML-encoded. If set, supersedes the $encodeLabels option for only this item.
If a menu item is a string, it will be rendered directly without HTML encoding.
The parameters used to determine if a menu item is active or not.
If not set, it will use $_GET
.
See also:
The route used to determine if a menu item is active or not. If not set, it will use the route of the current request.
See also:
Method Details
Initializes the widget.
public void init ( ) |
Check to see if a child item is active optionally activating the parent.
protected array isChildActive ( $items, &$active ) | ||
$items | array | @see items |
$active | boolean | Should the parent be active too |
return | array | @see items |
---|
Checks whether a menu item is active.
This is done by checking if $route and $params match that specified in the url
option of the menu item.
When the url
option of a menu item is specified in terms of an array, its first element is treated
as the route for the item and the rest of the elements are the associated parameters.
Only when its route and parameters match $route and $params, respectively, will a menu item
be considered active.
protected boolean isItemActive ( $item ) | ||
$item | array | The menu item to be checked |
return | boolean | Whether the menu item is active |
---|
Renders the given items as a dropdown.
This method is called to create sub-menus.
protected string renderDropdown ( $items, $parentItem ) | ||
$items | array | The given items. Please refer to yii\bootstrap\Dropdown::$items for the array structure. |
$parentItem | array | The parent item information. Please refer to $items for the structure of this array. |
return | string | The rendering result. |
---|
Renders a widget's item.
public string renderItem ( $item ) | ||
$item | string|array | The item to render. |
return | string | The rendering result. |
---|---|---|
throws | yii\base\InvalidConfigException |
Renders widget items.
public void renderItems ( ) |
Renders the widget.
public void run ( ) |