Commit 9df164d216cfd9bfc0256be56c129cb00b151344
Merge remote-tracking branch 'origin/master'
# Conflicts: # components/LanguageUrlManager.php
Showing
1 changed file
with
20 additions
and
5 deletions
Show diff stats
components/LanguageUrlManager.php
| @@ -2,23 +2,39 @@ | @@ -2,23 +2,39 @@ | ||
| 2 | namespace artweb\artbox\language\components; | 2 | namespace artweb\artbox\language\components; |
| 3 | 3 | ||
| 4 | use artweb\artbox\language\models\Language; | 4 | use artweb\artbox\language\models\Language; |
| 5 | + use yii\web\NotFoundHttpException; | ||
| 5 | use yii\web\UrlManager; | 6 | use yii\web\UrlManager; |
| 6 | 7 | ||
| 7 | class LanguageUrlManager extends UrlManager | 8 | class LanguageUrlManager extends UrlManager |
| 8 | { | 9 | { |
| 10 | + /** | ||
| 11 | + * @var array | ||
| 12 | + */ | ||
| 13 | + public $badGetParams = []; | ||
| 14 | + | ||
| 15 | + public function parseRequest($request) | ||
| 16 | + { | ||
| 17 | + foreach ($request->get() as $param => $value) { | ||
| 18 | + if (in_array($param, $this->badGetParams)) { | ||
| 19 | + throw new NotFoundHttpException(); | ||
| 20 | + } | ||
| 21 | + } | ||
| 22 | + | ||
| 23 | + return parent::parseRequest($request); | ||
| 24 | + } | ||
| 9 | 25 | ||
| 10 | /** | 26 | /** |
| 11 | * @inheritdoc | 27 | * @inheritdoc |
| 12 | */ | 28 | */ |
| 13 | public function createUrl($params) | 29 | public function createUrl($params) |
| 14 | { | 30 | { |
| 15 | - if(isset( $params[ 'language_id' ] )) { | 31 | + if (isset($params[ 'language_id' ])) { |
| 16 | 32 | ||
| 17 | $language = Language::findOne($params[ 'language_id' ]); | 33 | $language = Language::findOne($params[ 'language_id' ]); |
| 18 | - if($language === NULL) { | 34 | + if ($language === null) { |
| 19 | $language = Language::getDefaultLanguage(); | 35 | $language = Language::getDefaultLanguage(); |
| 20 | } | 36 | } |
| 21 | - unset( $params[ 'language_id' ] ); | 37 | + unset($params[ 'language_id' ]); |
| 22 | } else { | 38 | } else { |
| 23 | 39 | ||
| 24 | $language = Language::getCurrent(); | 40 | $language = Language::getCurrent(); |
| @@ -26,8 +42,7 @@ | @@ -26,8 +42,7 @@ | ||
| 26 | 42 | ||
| 27 | $url = parent::createUrl($params); | 43 | $url = parent::createUrl($params); |
| 28 | 44 | ||
| 29 | - | ||
| 30 | - if($url == '/') { | 45 | + if ($url == '/') { |
| 31 | return '/' . $language->url; | 46 | return '/' . $language->url; |
| 32 | } else { | 47 | } else { |
| 33 | return '/' . $language->url . $url; | 48 | return '/' . $language->url . $url; |