Commit 910ba2701ba1be9f101697e6dc5ce3b5e1340cfc
1 parent
8a735882
Language try redirect
Showing
2 changed files
with
13 additions
and
7 deletions
Show diff stats
components/LanguageRequest.php
| @@ -11,11 +11,6 @@ | @@ -11,11 +11,6 @@ | ||
| 11 | 11 | ||
| 12 | private $languageUrl; | 12 | private $languageUrl; |
| 13 | 13 | ||
| 14 | - public function processOld() | ||
| 15 | - { | ||
| 16 | - \Yii::$app->response->redirect('http://google.com'); | ||
| 17 | - } | ||
| 18 | - | ||
| 19 | public function getLanguageUrl() | 14 | public function getLanguageUrl() |
| 20 | { | 15 | { |
| 21 | if($this->languageUrl === NULL) { | 16 | if($this->languageUrl === NULL) { |
| @@ -23,8 +18,12 @@ | @@ -23,8 +18,12 @@ | ||
| 23 | 18 | ||
| 24 | $url_list = explode('/', $this->languageUrl); | 19 | $url_list = explode('/', $this->languageUrl); |
| 25 | 20 | ||
| 21 | + | ||
| 26 | $language_url = isset( $url_list[ 1 ] ) ? $url_list[ 1 ] : NULL; | 22 | $language_url = isset( $url_list[ 1 ] ) ? $url_list[ 1 ] : NULL; |
| 27 | - Language::setCurrent($language_url); | 23 | + $is_language = Language::setCurrent($language_url); |
| 24 | + if(!$is_language) { | ||
| 25 | + \Yii::$app->response->redirect('/'.Language::getCurrent()->url.$this->url, 302, false); | ||
| 26 | + } | ||
| 28 | 27 | ||
| 29 | if($language_url !== NULL && $language_url === Language::getCurrent()->url && strpos($this->languageUrl, Language::getCurrent()->url) === 1) { | 28 | if($language_url !== NULL && $language_url === Language::getCurrent()->url && strpos($this->languageUrl, Language::getCurrent()->url) === 1) { |
| 30 | $this->languageUrl = substr($this->languageUrl, strlen(Language::getCurrent()->url) + 1); | 29 | $this->languageUrl = substr($this->languageUrl, strlen(Language::getCurrent()->url) + 1); |
models/Language.php
| @@ -120,17 +120,24 @@ | @@ -120,17 +120,24 @@ | ||
| 120 | } | 120 | } |
| 121 | return self::$current; | 121 | return self::$current; |
| 122 | } | 122 | } |
| 123 | - | 123 | + |
| 124 | /** | 124 | /** |
| 125 | * Set current language by Url param | 125 | * Set current language by Url param |
| 126 | * | 126 | * |
| 127 | * @param null|string $url Language url param | 127 | * @param null|string $url Language url param |
| 128 | + * | ||
| 129 | + * @return bool | ||
| 128 | */ | 130 | */ |
| 129 | public static function setCurrent($url = null) | 131 | public static function setCurrent($url = null) |
| 130 | { | 132 | { |
| 131 | $language = self::getLanguageByUrl($url); | 133 | $language = self::getLanguageByUrl($url); |
| 132 | self::$current = ( $language === null ) ? self::getDefaultLanguage() : $language; | 134 | self::$current = ( $language === null ) ? self::getDefaultLanguage() : $language; |
| 133 | Yii::$app->language = self::$current->local; | 135 | Yii::$app->language = self::$current->local; |
| 136 | + if($language === null) { | ||
| 137 | + return false; | ||
| 138 | + } else { | ||
| 139 | + return true; | ||
| 140 | + } | ||
| 134 | } | 141 | } |
| 135 | 142 | ||
| 136 | /** | 143 | /** |