Blame view

common/components/urlManager/LangUrlRule.php 2.06 KB
eb56e5f2   Administrator   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  <?php

  /*

   * To change this template, choose Tools | Templates

   * and open the template in the editor.

   */

  

  /**

   * Description of LangUrlManager

   *

   * @author Ekstazi

   * @ver 1.2

   */

  namespace common\components\urlManager;

  use yii\rest\UrlRule;

  use Yii; 

  class LangUrlRule extends UrlRule{

      public $languages=array('en');

  	public $lang='ru';

      public $langParam='language';

  

      /*public function parsePathInfo($pathInfo)

      {

          parent::parsePathInfo($pathInfo);

          

          $userLang=Yii::app()->getRequest()->getPreferredLanguage();

          //if language pass via url use it

          if(isset($_GET[$this->langParam])&&in_array($_GET[$this->langParam],$this->languages)){

              Yii::app()->language=$_GET[$this->langParam];

          //else if preffered language is allowed

          }elseif(in_array($userLang,$this->languages)) {

              Yii::app()->language=$userLang;

          //else use the first language from the list

          }else Yii::app()->language=$this->lang;

  

      }*/

      //put your code here

  	

  	public function init(){

  	print '==';

  	print Yii::$app->getRequest()->getQueryParam('language');

  	return parent::init();

  	}

      public function createUrl($params=array()){

          $userLang=Yii::$app->getRequest()->getPreferredLanguage();

          //if language pass via url use it

          if(isset($_GET[$this->langParam])&&in_array($_GET[$this->langParam],$this->languages)){

              Yii::$app->language=$_GET[$this->langParam];

          //else if preffered language is allowed

          }elseif(in_array($userLang,$this->languages)) {

              Yii::$app->language=$userLang;

          //else use the first language from the list

          }else Yii::$app->language=$this->lang;

  		

  	//print_r($_GET);

          if(!isset($params[$this->langParam])){ if(Yii::$app->language != $this->lang)$params[$this->langParam]=Yii::$app->language;}

  		else if($params[$this->langParam] == $this->lang)unset($params[$this->langParam]);

  		//print_r($params);

          return parent::createUrl($params);

      }

      //put your code here

  }