Blame view

common/components/urlManager/LangUrlRule.php 2 KB
4253cbec   root   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
  }