ab4d7cb1
andryeyev
Page + Языковая в...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?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
{
|
18ac4398
Yarik
Добавлен блог (ча...
|
15
|
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
16
17
|
//Переменная, для хранения текущего объекта языка
static $current = null;
|
18ac4398
Yarik
Добавлен блог (ча...
|
18
|
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
19
20
21
|
//Получение текущего объекта языка
static function getCurrent()
{
|
18ac4398
Yarik
Добавлен блог (ча...
|
22
|
if (self::$current === null) {
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
23
24
25
26
27
|
self::$current = self::getDefaultLang();
}
return self::$current;
}
|
18ac4398
Yarik
Добавлен блог (ча...
|
28
|
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
29
|
//Установка текущего объекта языка и локаль пользователя
|
18ac4398
Yarik
Добавлен блог (ча...
|
30
|
static function setCurrent($lang_code = null)
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
31
|
{
|
18ac4398
Yarik
Добавлен блог (ча...
|
32
|
$language = self::getLangByUrl($lang_code);
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
33
34
35
|
self::$current = ($language === null) ? self::getDefaultLang() : $language;
// задаем
Yii::$app->language = self::$current->lang_code;
|
0769f724
Yarik
Изменен метод уст...
|
36
|
Yii::$app->params['lang_id'] = self::$current->language_id;
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
37
|
}
|
18ac4398
Yarik
Добавлен блог (ча...
|
38
|
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
39
40
41
|
//Получения объекта языка по умолчанию
static function getDefaultLang()
{
|
b15a9aec
Yarik
Добавил языки, ад...
|
42
|
return Language::find()->where('is_default = :default', [':default' => 1])->one();
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
43
|
}
|
18ac4398
Yarik
Добавлен блог (ча...
|
44
|
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
45
|
//Получения объекта языка по буквенному идентификатору
|
18ac4398
Yarik
Добавлен блог (ча...
|
46
|
static function getLangByUrl($lang_code = null)
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
47
|
{
|
18ac4398
Yarik
Добавлен блог (ча...
|
48
|
if ($lang_code === null) {
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
49
|
return null;
|
18ac4398
Yarik
Добавлен блог (ча...
|
50
51
52
|
} else {
$language = Language::find()->where('lang_code = :what', [':what' => $lang_code])->one();
return $language === null ? null : $language;
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
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
|
}
}
/**
* @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'),
];
}
|
18ac4398
Yarik
Добавлен блог (ча...
|
85
86
87
88
89
90
|
public static function getActiveLanguages()
{
return Language::find()->where(['>=', 'language_id', 1])->andWhere(['active' => 1])->orderBy('is_default DESC')->indexBy('language_id')->all();
}
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
91
|
}
|