本文整理汇总了PHP中yii\widgets\Menu::isItemActive方法的典型用法代码示例。如果您正苦于以下问题:PHP Menu::isItemActive方法的具体用法?PHP Menu::isItemActive怎么用?PHP Menu::isItemActive使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yii\widgets\Menu
的用法示例。
在下文中一共展示了Menu::isItemActive方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isItemActive
protected function isItemActive($item)
{
if ($item['url'] == Url::to('')) {
return true;
} elseif (isset($item['url']) && is_array($item['url']) && isset($item['url'][0])) {
$route = $item['url'][0];
if ($route[0] !== '/' && Yii::$app->controller) {
$route = Yii::$app->controller->module->getUniqueId() . '/' . $route;
}
if (ltrim($route, '/') !== $this->route) {
return false;
}
unset($item['url']['#']);
if (count($item['url']) > 1) {
$params = $item['url'];
unset($params[0]);
foreach ($params as $name => $value) {
if ($value !== null && (!isset($this->params[$name]) || $this->params[$name] != $value)) {
return false;
}
}
}
return true;
} else {
return parent::isItemActive($item);
}
}
示例2: isItemActive
protected function isItemActive($item)
{
if (is_string($item['url'])) {
return $item['url'] === Yii::$app->request->url;
} else {
return parent::isItemActive($item);
}
}
示例3: isItemActive
/**
* 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.
* @param array $item the menu item to be checked
* @return boolean whether the menu item is active
*/
protected function isItemActive($item)
{
if (isset($item['urlActive']) && is_array($item['urlActive'])) {
foreach ($item['urlActive'] as $auxUrl) {
$auxItem = $item;
$auxItem['url'] = $auxUrl;
if (parent::isItemActive($auxItem)) {
return true;
}
}
}
return parent::isItemActive($item);
}
示例4: isItemActive
/**
* 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.
* @param array $item the menu item to be checked
* @return boolean whether the menu item is active
*/
protected function isItemActive($item)
{
$res = parent::isItemActive($item);
if (!$res) {
$preg = null;
if (isset($item['preg']) && !empty($item['preg'])) {
$preg = $item['preg'];
} elseif (isset($item['url'])) {
$preg = $item['url'] . ($item['url'] != '/' ? '/*' : '');
}
if (!empty($preg)) {
$preg = '/^' . str_replace('*', '(.*?)', str_replace('/', '\\/', $preg)) . '$/is';
$res = preg_match($preg, Yii::$app->request->url) || preg_match($preg, Yii::$app->request->url . '/');
}
}
return $res;
}
示例5: isItemActive
/**
* 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.
* @param array $item the menu item to be checked
* @return boolean whether the menu item is active
*/
protected function isItemActive($item)
{
$res = parent::isItemActive($item);
if (!$res && isset($item['activeUrl'])) {
if (is_array($item['activeUrl'])) {
$route = $item['activeUrl'][0];
} else {
$route = $item['activeUrl'];
}
if ($route[0] !== '/' && Yii::$app->controller) {
$route = Yii::$app->controller->module->getUniqueId() . '/' . $route;
}
$route = ltrim($route, '/');
$preg = '/^' . str_replace('*', '(.*?)', str_replace('/', '\\/', $route)) . '$/is';
$res = preg_match($preg, $this->route);
}
return $res;
}
示例6: isItemActive
/**
* @param array $item
* @return bool
*/
protected function isItemActive($item)
{
return isset($item['scope']) ? in_array(\Yii::$app->controller->id, $item['scope']) : parent::isItemActive($item);
}
示例7: isItemActive
/**
* Checks whether a menu item is active.
* This is true when the module/controller part of the current route matches module/controller part of the provided item.
* Implemented to activate correct menu when editing record (because there is no menu pointing to these controller actions).
*
* @param array $item the menu item to be checked
* @return boolean whether the menu item is active
*/
protected function isItemActive($item)
{
if (parent::isItemActive($item)) {
return true;
}
$route = Yii::$app->controller->getRoute();
$route = substr($route, 0, strrpos($route, '/'));
$menuRoute = trim($item['url'][0], '/');
if (substr($menuRoute, 0, strrpos($menuRoute, '/')) === $route) {
return true;
}
return false;
}
示例8: isItemActive
/**
* @inheritdoc
*/
protected function isItemActive($item)
{
if (isset($item['url']) && is_string($item['url']) && $item['url'] === Url::current()) {
return true;
} elseif (isset($item['url'])) {
if (is_array($item['url'])) {
$url = $item['url'][0];
} else {
$url = $item['url'];
}
$url = str_replace("/index", "", $url);
if (strpos('/' . Yii::$app->request->pathInfo, $url) !== false) {
return true;
} else {
return false;
}
} else {
return parent::isItemActive($item);
}
}