d8c1a2e0
Yarik
Big commit artbox
|
1
2
3
4
5
6
7
8
9
|
<?php
namespace common\modules\language\models;
use Yii;
use yii\db\ActiveRecord;
/**
* This is the model class for table "language".
|
8af13427
Yarik
For leha commit.
|
10
11
|
*
* @property integer $id
|
d8c1a2e0
Yarik
Big commit artbox
|
12
13
14
15
|
* @property string $url
* @property string $local
* @property string $name
* @property boolean $default
|
8af13427
Yarik
For leha commit.
|
16
17
|
* @property integer $created_at
* @property integer $updated_at
|
d8c1a2e0
Yarik
Big commit artbox
|
18
|
*/
|
5c2eb7c8
Yarik
Big commit almost...
|
19
|
class Language extends ActiveRecord
|
d8c1a2e0
Yarik
Big commit artbox
|
20
|
{
|
5c2eb7c8
Yarik
Big commit almost...
|
21
|
|
e8ccb1b4
Yarik
Import beta
|
22
23
24
|
/**
* @var null|self
*/
|
8af13427
Yarik
For leha commit.
|
25
|
public static $current = null;
|
d8c1a2e0
Yarik
Big commit artbox
|
26
27
28
29
30
31
32
33
|
/**
* @inheritdoc
*/
public static function tableName()
{
return 'language';
}
|
5c2eb7c8
Yarik
Big commit almost...
|
34
|
|
d8c1a2e0
Yarik
Big commit artbox
|
35
36
37
38
39
40
41
|
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'timestamp' => [
|
5c2eb7c8
Yarik
Big commit almost...
|
42
|
'class' => 'yii\behaviors\TimestampBehavior',
|
d8c1a2e0
Yarik
Big commit artbox
|
43
44
|
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => [
|
8af13427
Yarik
For leha commit.
|
45
46
|
'created_at',
'updated_at',
|
d8c1a2e0
Yarik
Big commit artbox
|
47
48
|
],
ActiveRecord::EVENT_BEFORE_UPDATE => [
|
8af13427
Yarik
For leha commit.
|
49
|
'updated_at',
|
d8c1a2e0
Yarik
Big commit artbox
|
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
],
],
],
];
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[
[
'url',
'local',
'name',
|
8af13427
Yarik
For leha commit.
|
67
68
|
'created_at',
'updated_at',
|
d8c1a2e0
Yarik
Big commit artbox
|
69
70
71
72
73
74
75
76
77
|
],
'required',
],
[
[ 'default' ],
'boolean',
],
[
[
|
8af13427
Yarik
For leha commit.
|
78
79
|
'created_at',
'updated_at',
|
d8c1a2e0
Yarik
Big commit artbox
|
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
],
'integer',
],
[
[
'url',
'local',
'name',
],
'string',
'max' => 255,
],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
|
8af13427
Yarik
For leha commit.
|
101
|
'id' => Yii::t('app', 'Language ID'),
|
d8c1a2e0
Yarik
Big commit artbox
|
102
103
104
105
|
'url' => Yii::t('app', 'Url'),
'local' => Yii::t('app', 'Local'),
'name' => Yii::t('app', 'Name'),
'default' => Yii::t('app', 'Default'),
|
8af13427
Yarik
For leha commit.
|
106
107
|
'created_at' => Yii::t('app', 'Date Create'),
'updated_at' => Yii::t('app', 'Date Update'),
|
d8c1a2e0
Yarik
Big commit artbox
|
108
109
|
];
}
|
5c2eb7c8
Yarik
Big commit almost...
|
110
|
|
d8c1a2e0
Yarik
Big commit artbox
|
111
112
|
/**
* Get current language
|
8af13427
Yarik
For leha commit.
|
113
|
*
|
d8c1a2e0
Yarik
Big commit artbox
|
114
115
116
117
|
* @return null|Language
*/
public static function getCurrent()
{
|
8af13427
Yarik
For leha commit.
|
118
|
if (self::$current === null) {
|
d8c1a2e0
Yarik
Big commit artbox
|
119
120
121
122
|
self::$current = self::getDefaultLanguage();
}
return self::$current;
}
|
5c2eb7c8
Yarik
Big commit almost...
|
123
|
|
d8c1a2e0
Yarik
Big commit artbox
|
124
125
126
127
128
|
/**
* Set current language by Url param
*
* @param null|string $url Language url param
*/
|
8af13427
Yarik
For leha commit.
|
129
|
public static function setCurrent($url = null)
|
5c2eb7c8
Yarik
Big commit almost...
|
130
|
{
|
d8c1a2e0
Yarik
Big commit artbox
|
131
|
$language = self::getLanguageByUrl($url);
|
8af13427
Yarik
For leha commit.
|
132
|
self::$current = ( $language === null ) ? self::getDefaultLanguage() : $language;
|
d8c1a2e0
Yarik
Big commit artbox
|
133
134
|
Yii::$app->language = self::$current->local;
}
|
5c2eb7c8
Yarik
Big commit almost...
|
135
|
|
d8c1a2e0
Yarik
Big commit artbox
|
136
137
|
/**
* Get default language
|
8af13427
Yarik
For leha commit.
|
138
|
*
|
d8c1a2e0
Yarik
Big commit artbox
|
139
140
|
* @return null|Language
*/
|
5c2eb7c8
Yarik
Big commit almost...
|
141
142
|
public static function getDefaultLanguage()
{
|
d8c1a2e0
Yarik
Big commit artbox
|
143
144
145
|
/**
* @var null|Language $language
*/
|
5c2eb7c8
Yarik
Big commit almost...
|
146
147
148
|
$language = self::find()
->where([ 'default' => true ])
->one();
|
d8c1a2e0
Yarik
Big commit artbox
|
149
150
|
return $language;
}
|
5c2eb7c8
Yarik
Big commit almost...
|
151
|
|
d8c1a2e0
Yarik
Big commit artbox
|
152
153
154
155
156
157
158
|
/**
* Get language by Url param
*
* @param null|string $url Language url param
*
* @return null|Language
*/
|
8af13427
Yarik
For leha commit.
|
159
|
public static function getLanguageByUrl($url = null)
|
5c2eb7c8
Yarik
Big commit almost...
|
160
|
{
|
8af13427
Yarik
For leha commit.
|
161
162
|
if ($url === null) {
return null;
|
d8c1a2e0
Yarik
Big commit artbox
|
163
164
165
166
|
} else {
/**
* @var null|Language $language
*/
|
5c2eb7c8
Yarik
Big commit almost...
|
167
168
169
|
$language = self::find()
->where([ 'url' => $url ])
->one();
|
8af13427
Yarik
For leha commit.
|
170
171
|
if ($language === null) {
return null;
|
d8c1a2e0
Yarik
Big commit artbox
|
172
173
174
175
176
177
|
} else {
return $language;
}
}
}
}
|