Commit 910ba2701ba1be9f101697e6dc5ce3b5e1340cfc

Authored by Yarik
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 /**