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
|
// ==== FRONT ====
static function getPageByUrl ($url)
{
return yii::$app->db->createCommand('
SELECT
|
7c9d9ca1
andryeyev
Передел после сов...
|
110
111
|
`termin`.termin_id, `termin`.page_id,
`page`.show,
|
bb7d15c5
andryeyev
Итерация 3 (Templ...
|
112
|
`template`.template_file
|
7c9d9ca1
andryeyev
Передел после сов...
|
113
|
FROM `termin`
|
f603f834
andryeyev
Итерация 4 (SEO)
|
114
115
116
|
INNER JOIN `termin_lang` ON `termin_lang`.termin_id = `termin`.termin_id
AND `termin_lang`.lang_id = '.yii::$app->lang_id.'
AND `termin_lang`.termin_alias = "'.$url.'"
|
7c9d9ca1
andryeyev
Передел после сов...
|
117
118
|
INNER JOIN `page` ON `page`.page_id = `termin`.page_id
INNER JOIN `template` ON `template`.template_id = `termin_lang`.template_id
|
bb7d15c5
andryeyev
Итерация 3 (Templ...
|
119
120
121
122
123
124
125
|
')->queryOne();
}
static function isShow ($page)
{
return $page['show'] == 1 ? true : false;
}
|
703388f5
andryeyev
+ pageController
|
126
127
128
129
130
|
static function getPageById ($page_id)
{
return yii::$app->db->createCommand('
SELECT *
|
f603f834
andryeyev
Итерация 4 (SEO)
|
131
|
FROM `termin`
|
f9570cf9
andryeyev
fix: Загрузка ста...
|
132
|
INNER JOIN `termin_lang` ON `termin_lang`.termin_id = `termin`.termin_id
|
f603f834
andryeyev
Итерация 4 (SEO)
|
133
|
AND `termin_lang`.lang_id = '.yii::$app->lang_id.'
|
f9570cf9
andryeyev
fix: Загрузка ста...
|
134
135
136
|
INNER JOIN `page` ON `page`.page_id = `termin`.page_id
INNER JOIN `page_lang` ON `page_lang`.page_id = `page`.page_id
AND `page_lang`.lang_id = '.yii::$app->lang_id.'
|
f603f834
andryeyev
Итерация 4 (SEO)
|
137
|
WHERE `termin`.termin_id = "'.(int)$page_id.'"
|
703388f5
andryeyev
+ pageController
|
138
139
|
')->queryOne();
}
|
bb7d15c5
andryeyev
Итерация 3 (Templ...
|
140
141
142
|
// ==== YII ====
|
b507d689
andryeyev
Итерация 1 (Терми...
|
143
144
145
146
147
148
|
/**
* @inheritdoc
*/
public function rules()
{
return [
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
149
|
[['date_add', 'template_id', 'image_id', 'show'], 'required'],
|
b507d689
andryeyev
Итерация 1 (Терми...
|
150
|
[['date_add'], 'safe'],
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
151
|
[['template_id', 'image_id', 'show'], 'integer']
|
b507d689
andryeyev
Итерация 1 (Терми...
|
152
153
154
155
156
157
158
159
160
|
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
161
162
163
164
165
166
167
168
169
170
171
172
|
'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 (Терми...
|
173
|
];
|
48269590
andryeyev
+ Страница getDat...
|
174
|
}
|
703388f5
andryeyev
+ pageController
|
175
|
|
ab4d7cb1
andryeyev
Page + Языковая в...
|
176
|
}
|