/** * * @return BaseTheme|boolean */ public function getTheme() { if ($this->_theme === false || $this->_theme instanceof BaseTheme) { return $this->_theme; } if ($this->active === null) { if (($id = Yii::$app->user->id) !== null) { $this->active = Yii::$app->cache->get([self::THEME_KEY, $id]); } else { $this->active = Yii::$app->request->cookies->getValue(self::THEME_KEY, false); } if ($this->active === false && $this->default !== null) { $this->active = $this->default; } } if (isset($this->themes[$this->active])) { $theme = $this->themes[$this->active]; if (is_string($theme) && strpos($theme, '\\') === false) { $theme = ['class' => BaseTheme::className(), 'pathMap' => [Yii::$app->getBasePath() => [$theme]]]; } elseif (is_array($theme) && !isset($theme['class'])) { $theme['class'] = BaseTheme::className(); } $this->_theme = $this->themes[$this->active] = Yii::createObject($theme); } else { $this->_theme = false; } return $this->_theme; }