Beispiel #1
0
 /**
  * @param array|string $params
  * @return string
  */
 public function createUrl($params)
 {
     $params = (array) $params;
     $language = isset($params['language']) ? $params['language'] : Language::getCurrent();
     if (!Language::isLanguage($language)) {
         $language = Language::getCurrent();
     }
     unset($params['route'], $params['language']);
     $params['0'] = $language . '/' . trim($params['0'], '/');
     return parent::createUrl($params);
 }
Beispiel #2
0
 /**
  * @return bool|string
  */
 protected function resolveRequestUri()
 {
     $pattern = [];
     $resolveRequestUri = parent::resolveRequestUri();
     if (Yii::$app->getUrlManager()->enablePrettyUrl === true) {
         $pattern[] = '/' . preg_replace('/\\//', '\\/', Yii::$app->getUrlManager()->suffix) . '/';
     }
     if (Yii::$app->getUrlManager()->showScriptName === true) {
         $pattern[] = '/' . preg_replace('/\\//', '\\/', $this->getScriptUrl()) . '/';
     }
     $requestUri = preg_replace($pattern, '', $resolveRequestUri);
     list($language, ) = explode('/', trim($requestUri, '/'));
     if (Language::isLanguage($language)) {
         Language::setCurrent($language);
     } else {
         Language::setCurrent($this->getPreferredLanguage(ArrayHelper::getColumn(Language::listing(), 'iso')));
     }
     return $resolveRequestUri;
 }