Class kartik\sidenav\SideNav
Inheritance | kartik\sidenav\SideNav » yii\widgets\Menu » yii\base\Widget » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | kartik\base\BootstrapInterface, yii\base\Configurable, yii\base\ViewContextInterface |
Uses Traits | kartik\base\BootstrapTrait |
Subclasses | kartik\widgets\SideNav |
A custom extended side navigation menu extending Yii2 yii\widgets\Menu widget and styled using Bootstrap CSS library components.
For example,
echo SideNav::widget([
'items' => [
[
'url' => ['/site/index'],
'label' => 'Home',
'icon' => 'home'
],
[
'url' => ['/site/about'],
'label' => 'About',
'icon' => 'info-sign',
'items' => [
['url' => '#', 'label' => 'Item 1'],
['url' => '#', 'label' => 'Item 2'],
],
],
],
]);
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\widgets\Menu |
$activateParents | boolean | Whether to activate parent menu items when one of the corresponding child menu items is active. | yii\widgets\Menu |
$activeCssClass | string | The CSS class to be appended to the active menu item. | yii\widgets\Menu |
$addlCssClass | string | Additional CSS class to be appended to each navigation item link. | kartik\sidenav\SideNav |
$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 |
$bsColCssPrefixes | array | The bootstrap grid column css prefixes mapping, the key is the bootstrap versions, and the value is an array containing the sizes and their corresponding grid column css prefixes. | kartik\base\BootstrapTrait |
$bsCssMap | array | CSS conversion mappings across bootstrap library versions. | kartik\base\BootstrapTrait |
$bsExtBasename | integer | The yii2 bootstrap extension base name (readonly property available via getter method getBsExtBasename()) | kartik\base\BootstrapTrait |
$bsVer | integer | Bootstrap version number currently set (readonly property available via getter method getBsVer()) | kartik\base\BootstrapTrait |
$bsVersion | integer|string | The bootstrap library version that you wish to use for this specific extension / widget. | kartik\base\BootstrapTrait |
$containerOptions | array | Options for the sidenav container | kartik\sidenav\SideNav |
$counter | integer | A counter used to generate $id for widgets. | yii\base\Widget |
$defaultBtnCss | string | Default bootstrap button CSS (readonly property available via getter method getDefaultBtnCss()) | kartik\base\BootstrapTrait |
$defaultIconPrefix | string | Default icon prefix (readonly property available via getter method getDefaultIconPrefix()) | kartik\base\BootstrapTrait |
$dropdownClass | string | Bootstrap dropdown class name based on currently configured bootstrap version (readonly property available via getter method getDropdownClass()) | kartik\base\BootstrapTrait |
$encodeLabels | boolean | Whether the labels for menu items should be HTML-encoded. | yii\widgets\Menu |
$firstItemCssClass | string|null | The CSS class that will be assigned to the first item in the main menu or each submenu. | yii\widgets\Menu |
$heading | array | String/boolean the sidenav heading. | kartik\sidenav\SideNav |
$headingOptions | array | Options for the sidenav heading | kartik\sidenav\SideNav |
$hideEmptyItems | boolean | Whether to hide empty menu items. | yii\widgets\Menu |
$iconPrefix | string | Prefix for the icon in $items. | kartik\sidenav\SideNav |
$id | string|null | ID of the widget. Note that the type of this property differs in getter and setter. See getId() and setId() for details. | yii\base\Widget |
$indItem | string | Indicator for a menu sub-item | kartik\sidenav\SideNav |
$indMenuClose | string | Indicator for a closed sub-menu | kartik\sidenav\SideNav |
$indMenuOpen | string | Indicator for a opened sub-menu | kartik\sidenav\SideNav |
$itemOptions | array | List of HTML attributes shared by all menu $items. | yii\widgets\Menu |
$items | array | List of sidenav menu items. | kartik\sidenav\SideNav |
$labelTemplate | string | The template used to render the body of a menu which is NOT a link. | yii\widgets\Menu |
$lastItemCssClass | string|null | The CSS class that will be assigned to the last item in the main menu or each submenu. | yii\widgets\Menu |
$linkTemplate | string | The template used to render the body of a menu which is a link. | yii\widgets\Menu |
$options | array | The HTML attributes for the menu's container tag. | yii\widgets\Menu |
$params | array|null | The parameters used to determine if a menu item is active or not. | yii\widgets\Menu |
$route | string|null | The route used to determine if a menu item is active or not. | yii\widgets\Menu |
$stack | yii\base\Widget[] | The widgets that are currently being rendered (not ended). | yii\base\Widget |
$submenuTemplate | string | The template used to render a list of sub-menus. | yii\widgets\Menu |
$type | string | The menu container style. | kartik\sidenav\SideNav |
$view | yii\web\View | The view object that can be used to render views or view files. Note that the type of this property differs in getter and setter. See getView() and setView() for details. | yii\base\Widget |
$viewPath | string | The directory containing the view files for this widget. | yii\base\Widget |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
$_bsVer | integer | Current bootstrap version number | kartik\base\BootstrapTrait |
$_defaultBtnCss | string | Default bootstrap button CSS | kartik\base\BootstrapTrait |
$_defaultIconPrefix | string | Default icon CSS prefix | kartik\base\BootstrapTrait |
$_isBs4 | boolean | Flag to detect whether bootstrap 4. | kartik\base\BootstrapTrait |
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\BaseObject |
__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 |
addCssClass() | Adds bootstrap CSS class to options by parsing the bootstrap version for the specified Bootstrap CSS type. | kartik\base\BootstrapTrait |
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\BaseObject |
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 |
getBSClass() | Gets the respective Bootstrap class based on currently configured bootstrap version. | kartik\base\BootstrapTrait |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
getBsVer() | Gets the current set bootstrap version number. | kartik\base\BootstrapTrait |
getCssClass() | Gets bootstrap css class by parsing the bootstrap version for the specified BS CSS type. | kartik\base\BootstrapTrait |
getDefaultBtnCss() | Gets the default button CSS | kartik\base\BootstrapTrait |
getDefaultIconPrefix() | Gets the default icon css prefix | kartik\base\BootstrapTrait |
getDropdownClass() | Gets the respective bootstrap dropdown class name based on currently configured bootstrap version. | kartik\base\BootstrapTrait |
getId() | Returns the ID of the widget. | yii\base\Widget |
getView() | Returns the view object that can be used to render views or view files. | yii\base\Widget |
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() | kartik\sidenav\SideNav | |
isBs() | Validate Bootstrap version | kartik\base\BootstrapTrait |
isBs4() | Validate if Bootstrap 4.x version. | kartik\base\BootstrapTrait |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
removeCssClass() | Removes bootstrap CSS class from options by parsing the bootstrap version for the specified Bootstrap CSS type. | kartik\base\BootstrapTrait |
render() | Renders a view. | yii\base\Widget |
renderFile() | Renders a view file. | yii\base\Widget |
run() | Renders the side navigation menu. | kartik\sidenav\SideNav |
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 |
---|---|---|
configureBsVersion() | Configures the bootstrap version settings | kartik\base\BootstrapTrait |
getBsExtBasename() | The yii2-bootstrap extension base name. | kartik\base\BootstrapTrait |
initBsVersion() | Initializes bootstrap versions for the widgets and asset bundles. | kartik\base\BootstrapTrait |
isItemActive() | Checks whether a menu item is active. | yii\widgets\Menu |
isSameVersion() | Compares two versions and checks if they are of the same major BS version. | kartik\base\BootstrapTrait |
markTopItems() | Marks each topmost level item which is not a submenu | kartik\sidenav\SideNav |
normalizeItems() | Normalizes the $items property to remove invisible items and activate certain items. | yii\widgets\Menu |
parseVer() | Parses and returns the major BS version | kartik\base\BootstrapTrait |
renderItem() | Renders the content of a side navigation menu item. | kartik\sidenav\SideNav |
renderItems() | Recursively renders the menu items (without the container tag). | yii\widgets\Menu |
renderMenu() | Renders the main menu | kartik\sidenav\SideNav |
setCssClass() | Appends or inserts a CSS class to a HTML tag markup | kartik\sidenav\SideNav |
validateItems() | Validates each item for a valid label and url. | kartik\sidenav\SideNav |
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 |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
TYPE_ACTIVE | 'active' | kartik\sidenav\SideNav | |
TYPE_DANGER | 'danger' | kartik\sidenav\SideNav | |
TYPE_DEFAULT | 'default' | kartik\sidenav\SideNav | |
TYPE_INFO | 'info' | kartik\sidenav\SideNav | |
TYPE_PRIMARY | 'primary' | kartik\sidenav\SideNav | |
TYPE_SECONDARY | 'secondary' | kartik\sidenav\SideNav | |
TYPE_SUCCESS | 'success' | kartik\sidenav\SideNav | |
TYPE_WARNING | 'warning' | kartik\sidenav\SideNav |
Property Details
Additional CSS class to be appended to each navigation item link. For a submenu this class will be
automatically removed when opened and added back when closed. You can add multiple class separated by spaces.
This defaults to text-secondary
for bsVersion 4.x
and empty string for bsVersion 3.x
.
Note: If you need to add a permanent CSS class to a link - do not use this and instead directly edit the $linkTemplate property.
Options for the sidenav container
String/boolean the sidenav heading. This is not HTML encoded When set to false or null, no heading container will be displayed.
Options for the sidenav heading
Prefix for the icon in $items. This string will be prepended
before the icon name to get the icon CSS class. This defaults to glyphicon glyphicon-
for usage with glyphicons available with Bootstrap.
Indicator for a menu sub-item
Indicator for a closed sub-menu
Indicator for a opened sub-menu
List of sidenav menu items. Each menu item should be an array of the following structure:
- label: string, optional, specifies the menu item label. When $encodeLabels is true, the label will be HTML-encoded. If the label is not specified, an empty string will be used.
- icon: string, optional, specifies the glyphicon name to be placed before label.
- url: string or array, optional, specifies the URL of the menu item. It will be processed by yii\helpers\Url::to(). When this is set, the actual menu item content will be generated using $linkTemplate;
- visible: boolean, optional, whether this menu item is visible. Defaults to true.
- items: array, optional, specifies the sub-menu items. Its format is the same as the parent items.
- active: boolean, optional, whether this menu item is in active state (currently selected). If a menu item is active, its CSS class will be appended with $activeCssClass. If this option is not set, the menu item will be set active automatically when the current request is triggered by url. For more details, please refer to isItemActive().
- template: string, optional, the template used to render the content of this menu item.
The token
{url}
will be replaced by the URL associated with this menu item, and the token{label}
will be replaced by the label of the menu item. If this option is not set, $linkTemplate will be used instead. - options: array, optional, the HTML attributes for the menu item tag.
The menu container style. This is one of the bootstrap panel
contextual state classes. Defaults to default
.
Method Details
public void init ( ) |
Marks each topmost level item which is not a submenu
protected void markTopItems ( ) |
Renders the content of a side navigation menu item.
protected string renderItem ( $item ) | ||
$item | array | The menu item to be rendered. Please refer to $items to see what data might be in the item. |
return | string | The rendering result |
---|---|---|
throws | yii\base\InvalidConfigException |
Renders the main menu
protected void renderMenu ( ) |
Renders the side navigation menu.
with the heading and panel containers
public void run ( ) |
Appends or inserts a CSS class to a HTML tag markup
protected static string|string[] setCssClass ( $html, $class, $tag = 'a' ) | ||
$html | string | |
$class | ||
$tag | string |
Validates each item for a valid label and url.
protected void validateItems ( $item ) | ||
$item | ||
throws | yii\base\InvalidConfigException |
---|