You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							42 lines
						
					
					
						
							1009 B
						
					
					
				
			
		
		
	
	
							42 lines
						
					
					
						
							1009 B
						
					
					
				| <?php | |
| /** | |
|  * Created by Error202 | |
|  * Date: 23.08.2018 | |
|  */ | |
|  | |
| namespace frontend\config; | |
|  | |
|  | |
| use core\helpers\LanguageHelper; | |
| use yii\web\UrlManager; | |
| use Yii; | |
|  | |
| class LanguageUrlManager extends UrlManager | |
| { | |
| 	public function init() | |
| 	{ | |
| 		if (basename(Yii::$app->getBasePath()) !== 'frontend') { | |
| 			return parent::init(); | |
| 		} | |
| 		LanguageHelper::setLanguage(Yii::$app->request->getUrl()); | |
| 		$langPrefix = Yii::$app->language . '/'; | |
| 		$finalRules[$langPrefix] = ''; | |
|  | |
| 		foreach ($this->rules as $rule => $path) { | |
| 			if ( is_array($path) && isset($path['pattern']) && isset($path[0]) ) { | |
| 				$finalRules[$langPrefix . ltrim($path['pattern'], '/')] = $path[0]; | |
| 			} | |
| 			else { | |
| 				$finalRules[$langPrefix . ltrim($rule, '/')] = $path; | |
| 			} | |
| 		} | |
| 		$this->rules = array_merge_recursive($finalRules, $this->rules); | |
| 		return parent::init(); | |
| 	} | |
|  | |
| 	public function createUrl( $params ) | |
| 	{ | |
| 		$url = parent::createUrl( $params ); | |
| 		return LanguageHelper::addLangToUrl($url, isset($params['language']) ? $params['language'] : null); | |
| 	} | |
| } |