Blame view

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