Blame view

common/models/Page.php 4.46 KB
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
  }