b507d689
andryeyev
Итерация 1 (Терми...
|
1
2
3
4
5
|
<?php
namespace common\models;
use Yii;
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
6
|
use common\models\PageLang;
|
b507d689
andryeyev
Итерация 1 (Терми...
|
7
8
9
10
11
12
|
/**
* This is the model class for table "page".
*
* @property integer $page_id
* @property string $date_add
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
13
|
* @property integer $template_id
|
b507d689
andryeyev
Итерация 1 (Терми...
|
14
15
16
17
18
|
* @property integer $image_id
* @property integer $show
*/
class Page extends \yii\db\ActiveRecord
{
|
48269590
andryeyev
+ Страница getDat...
|
19
20
|
var $data;
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
21
|
//public $title;
|
b507d689
andryeyev
Итерация 1 (Терми...
|
22
23
24
25
26
27
28
|
/**
* @inheritdoc
*/
public static function tableName()
{
return 'page';
}
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
29
|
|
48269590
andryeyev
+ Страница getDat...
|
30
31
32
33
|
// ==== DATA PAGE LANG ====
public function getData()
{
|
19423060
andryeyev
+ 1-уровневое мен...
|
34
|
$this->data = PageLang::find()->where(['page_id' => $this->page_id, 'lang_id' => yii::$app->lang_id])->one();
|
48269590
andryeyev
+ Страница getDat...
|
35
36
37
38
39
40
41
42
43
|
}
public function getDataByKey($key)
{
if (! $this->data)
{
$this->getData();
}
|
583ea05f
andryeyev
+ widget-select2
|
44
|
return isset ($this->data[$key]) ? $this->data[$key] : '';
|
48269590
andryeyev
+ Страница getDat...
|
45
46
47
|
}
// ==== DATA PAGE LANG FIELD ====
|
19423060
andryeyev
+ 1-уровневое мен...
|
48
|
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
49
50
|
public function getTitle()
{
|
48269590
andryeyev
+ Страница getDat...
|
51
|
return $this->getDataByKey('title');
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
52
53
54
55
|
}
public function getMeta_title()
{
|
48269590
andryeyev
+ Страница getDat...
|
56
|
return $this->getDataByKey('meta_title');
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
57
58
59
60
|
}
public function getMeta_description()
{
|
48269590
andryeyev
+ Страница getDat...
|
61
|
return $this->getDataByKey('meta_description');
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
62
63
64
65
|
}
public function getText()
{
|
48269590
andryeyev
+ Страница getDat...
|
66
|
return $this->getDataByKey('text');
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
67
68
69
70
|
}
public function getPage_alias()
{
|
48269590
andryeyev
+ Страница getDat...
|
71
|
return $this->getDataByKey('page_alias');
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
72
|
}
|
b507d689
andryeyev
Итерация 1 (Терми...
|
73
|
|
583ea05f
andryeyev
+ widget-select2
|
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
// ==== PAGE LANG FILTER FIELD ====
public function findPageLangField($post)
{
if (! $this->data)
{
$this->getData();
}
if (empty ($this->data) || empty ($post))
{
return false;
}
$result = array ();
foreach ($post as $key1 => $row1)
{
foreach ($this->data as $key2 => $row2)
{
if ($key1 == $key2)
{
$result[$key1] = $row1;
}
}
}
return $result;
}
|
bb7d15c5
andryeyev
Итерация 3 (Templ...
|
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
// ==== FRONT ====
static function getPageByUrl ($url)
{
return yii::$app->db->createCommand('
SELECT
`page`.show,
`controller`.controller_name,
`template`.template_file
FROM `page`
INNER JOIN `page_lang` ON `page_lang`.page_id = `page`.page_id
AND `page_lang`.lang_id = '.yii::$app->lang_id.'
AND `page_lang`.page_alias = "'.$url.'"
INNER JOIN `template` ON `template`.template_id = `page`.template_id
INNER JOIN `controller` ON `controller`.controller_id = `template`.controller_id
')->queryOne();
}
static function isShow ($page)
{
return $page['show'] == 1 ? true : false;
}
// ==== YII ====
|
b507d689
andryeyev
Итерация 1 (Терми...
|
129
130
131
132
133
134
|
/**
* @inheritdoc
*/
public function rules()
{
return [
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
135
|
[['date_add', 'template_id', 'image_id', 'show'], 'required'],
|
b507d689
andryeyev
Итерация 1 (Терми...
|
136
|
[['date_add'], 'safe'],
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
137
|
[['template_id', 'image_id', 'show'], 'integer']
|
b507d689
andryeyev
Итерация 1 (Терми...
|
138
139
140
141
142
143
144
145
146
|
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
147
148
149
150
151
152
153
154
155
156
157
158
|
'page_id' => Yii::t('field', 'page'),
'date_add' => Yii::t('field', 'date_add'),
'template_id' => Yii::t('field', 'template'),
'image_id' => Yii::t('field', 'image'),
'show' => Yii::t('field', 'show'),
'title' => Yii::t('field', 'title'),
'meta_title' => Yii::t('field', 'meta_title'),
'meta_description' => Yii::t('field', 'meta_description'),
'text' => Yii::t('field', 'text'),
'page_alias' => Yii::t('field', 'page_alias'),
'lang_id' => Yii::t('field', 'lang_id'),
|
b507d689
andryeyev
Итерация 1 (Терми...
|
159
|
];
|
48269590
andryeyev
+ Страница getDat...
|
160
161
162
163
164
165
166
|
}
/*
public function getPage()
{
return $this->hasMany(PageLang::className(), ['page_id' => 'page_id']);
}
*/
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
167
|
}
|