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); |
|
} |
|
} |