Blame view

common/models/Language.php 2.22 KB
ab4d7cb1   andryeyev   Page + Языковая в...
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
  <?php
  
  namespace common\models;
  
  use Yii;
  
  /**
   * This is the model class for table "language".
   *
   * @property integer $language_id
   * @property string $lang_code
   */
  class Language extends \yii\db\ActiveRecord
  {
      
      //Переменная, для хранения текущего объекта языка
      static $current = null;
      
      //Получение текущего объекта языка
      static function getCurrent()
      {
          if (self::$current === null)
          {
              self::$current = self::getDefaultLang();
          }
  
          return self::$current;
      }
      
      //Установка текущего объекта языка и локаль пользователя
      static function setCurrent ($lang_code = null)
      {
          $language = self::getLangByUrl ($lang_code);
          self::$current = ($language === null) ? self::getDefaultLang() : $language;
          // задаем
          Yii::$app->language = self::$current->lang_code;
          Yii::$app->lang_id = self::$current->language_id;
      }
      
      //Получения объекта языка по умолчанию
      static function getDefaultLang()
      {
b15a9aec   Yarik   Добавил языки, ад...
43
          return Language::find()->where('is_default = :default', [':default' => 1])->one();
ab4d7cb1   andryeyev   Page + Языковая в...
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
      }
      
      //Получения объекта языка по буквенному идентификатору
      static function getLangByUrl ($lang_code = null)
      {
          if ($lang_code === null) 
          {
              return null;
          } 
          else 
          {
              $language = Language::find()->where('lang_code = :what', [':what' => $lang_code])->one(); 
              return $language === null ? null : $language; 
          }
      }
  
      /**
       * @inheritdoc
       */
      public static function tableName()
      {
          return 'language';
      }
  
      /**
       * @inheritdoc
       */
      public function rules()
      {
          return [
              [['lang_code'], 'required'],
              [['lang_code'], 'string', 'max' => 4]
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
              'language_id' => Yii::t('app/Lang', 'Language ID'),
              'lang_code' => Yii::t('app/Lang', 'Lang Code'),
          ];
      }
  }