mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 06:15:19 +08:00
Calculation of activity menu item through the closure
Extended documentation
This commit is contained in:

committed by
SilverFire - Dmitry Naumenko

parent
8d813f7bf1
commit
4afbad1aae
@ -60,7 +60,8 @@ class Menu extends Widget
|
|||||||
* otherwise, [[labelTemplate]] will be used.
|
* otherwise, [[labelTemplate]] will be used.
|
||||||
* - visible: boolean, optional, whether this menu item is visible. Defaults to true.
|
* - 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.
|
* - 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).
|
* - active: boolean or closure that returns boolean, optional, whether this menu item is in active state (currently selected).
|
||||||
|
* When using a closure, its signature should be `function ($item, $hasActiveChild, $widget)`.
|
||||||
* If a menu item is active, its CSS class will be appended with [[activeCssClass]].
|
* 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
|
* 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()]].
|
* is triggered by `url`. For more details, please refer to [[isItemActive()]].
|
||||||
@ -285,6 +286,8 @@ class Menu extends Widget
|
|||||||
} else {
|
} else {
|
||||||
$items[$i]['active'] = false;
|
$items[$i]['active'] = false;
|
||||||
}
|
}
|
||||||
|
} elseif ($item['active'] instanceof \Closure) {
|
||||||
|
$active = $items[$i]['active'] = call_user_func($item['active'], $item, $hasActiveChild, $this);
|
||||||
} elseif ($item['active']) {
|
} elseif ($item['active']) {
|
||||||
$active = true;
|
$active = true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user