isItemActive() protected method

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 isItemActive ( array $item ) : boolean
$item array the menu item to be checked
return boolean whether the menu item is active
Beispiel #1
0
 protected function isItemActive($item)
 {
     if (isset($item['url']) && is_string($item['url']) && $item['url'] === Url::current()) {
         return true;
     }
     return parent::isItemActive($item);
 }
Beispiel #2
0
 /**
  * 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);
 }
Beispiel #3
0
 /**
  * @inheritdoc
  */
 protected function isItemActive($item)
 {
     // Let the parent check if active.
     $ret = parent::isItemActive($item);
     // If not already active, check some other things.
     if (!$ret && isset($item['url'][0])) {
         $route = $item['url'][0];
         if ($route[0] !== '/' && Yii::$app->controller) {
             $route = Yii::$app->controller->module->getUniqueId() . '/' . $route;
         }
         $routeTrimmed = ltrim($route, '/');
         // Also check if the index route.
         $ret = $routeTrimmed . '/index' === $this->route;
         // Also check if the user profile.
         if (!$ret) {
             // XXX: Workaround for user profile not following the convention.
             $ret = $this->route === $routeTrimmed || strpos($this->route, $routeTrimmed . '/') !== false;
         }
     }
     return $ret;
 }
Beispiel #4
0
 /**
  * Adds additional checks
  * @inheritdoc
  */
 protected function isItemActive($item)
 {
     if (parent::isItemActive($item)) {
         return true;
     }
     if (!isset($item['url'])) {
         return false;
     }
     $route = null;
     $itemUrl = $item['url'];
     $requestUrl = Yii::$app->request->getUrl();
     if (is_array($itemUrl) && isset($itemUrl[0])) {
         $route = $itemUrl[0];
         if ($route[0] !== '/' && Yii::$app->controller) {
             $route = Yii::$app->controller->module->getUniqueId() . '/' . $route;
         }
     } else {
         $route = $itemUrl;
     }
     $isActive = $route === $requestUrl;
     return $isActive;
 }
Beispiel #5
0
 protected function isItemActive($item)
 {
     if (ArrayHelper::keyExists('active', $item)) {
         return ArrayHelper::remove($item, 'active', false);
     } else {
         return parent::isItemActive($item);
         // TODO: Change the autogenerated stub
     }
 }
Beispiel #6
0
 /**
  * @param array $item
  * @return bool
  */
 protected function isItemActive($item)
 {
     return isset($item['scope']) ? in_array(\Yii::$app->controller->id, $item['scope']) : parent::isItemActive($item);
 }