Blame view

common/models/Blog.php 5.16 KB
4ca21c3e   Alexey Boroda   first commit
1
  <?php
4d7ee438   Alexey Boroda   Changes:
2
3
4
5
6
7
8
9
10
      
      namespace common\models;
      
      use common\behaviors\SaveImgBehavior;
      use Yii;
      use yii\db\ActiveQuery;
      use yii\db\ActiveRecord;
      use common\models\BlogCategory;
      
4ca21c3e   Alexey Boroda   first commit
11
      /**
4d7ee438   Alexey Boroda   Changes:
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
       * This is the model class for table "blog".
       * @property integer $id
       * @property integer $date
       * @property string  $title
       * @property string  $body
       * @property string  $image
       * @property string  $translit
       * @property string  $meta_title
       * @property string  $meta_keywords
       * @property string  $meta_description
       * @property string  $seo_text
       * @property string  $h1
       * @property string  $body_preview
       * @property integer $date_end
       * @property array   $categories
       * @property array $categoryItems
4ca21c3e   Alexey Boroda   first commit
28
       */
4d7ee438   Alexey Boroda   Changes:
29
      class Blog extends ActiveRecord
4ca21c3e   Alexey Boroda   first commit
30
      {
4d7ee438   Alexey Boroda   Changes:
31
32
          private $_categoryItems;
          
4d7ee438   Alexey Boroda   Changes:
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
          /**
           * @inheritdoc
           */
          public static function tableName()
          {
              return 'blog';
          }
          
          /**
           * @inheritdoc
           */
          public function behaviors()
          {
              return [
                  'slug' => [
                      'class'         => 'common\behaviors\Slug',
                      'in_attribute'  => 'title',
                      'out_attribute' => 'translit',
                      'translit'      => true,
                  ],
                  [
                      'class' => SaveImgBehavior::className(),
b8a993f6   Alexey Boroda   -Image behavior a...
55
56
57
58
59
60
                      'fields' => [
                          [
                              'name' => 'image',
                              'directory' => 'blog',
                          ],
                      ],
4d7ee438   Alexey Boroda   Changes:
61
62
63
64
65
66
67
68
69
70
71
72
73
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
                  ],
              ];
          }
          
          /**
           * @inheritdoc
           */
          public function rules()
          {
              return [
                  [
                      [ 'date' ],
                      'default',
                      'value' => function() {
                          return time();
                      },
                  ],
                  [
                      [
                          'date',
                          'date_end',
                      ],
                      'safe',
                  ],
                  [
                      [
                          'title',
                          'body',
                      ],
                      'required',
                  ],
                  [
                      [
                          'body',
                          'body_preview',
                          'seo_text',
                      ],
                      'string',
                  ],
                  [
                      [
                          'title',
4d7ee438   Alexey Boroda   Changes:
103
104
105
106
107
108
109
110
111
112
                          'translit',
                          'meta_title',
                          'meta_keywords',
                          'meta_description',
                          'h1',
                      ],
                      'string',
                      'max' => 255,
                  ],
                  [
4d7ee438   Alexey Boroda   Changes:
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
                      [
                          'date',
                          'date_end',
                      ],
                      'filter',
                      'filter' => function($value) {
                          return strtotime($value) ? : time();
                      },
                  ],
                  [
                      [
                          'categoryItems',
                      ],
                      'safe',
                  ],
              ];
          }
          
          /**
           * @inheritdoc
           */
          public function attributeLabels()
          {
              return [
                  'id'               => 'ID',
5a29abd6   Alexey Boroda   -Admin panel pret...
138
                  'date'             => 'Дата публикации',
4d7ee438   Alexey Boroda   Changes:
139
                  'date_end'         => 'Date end',
5a29abd6   Alexey Boroda   -Admin panel pret...
140
141
142
                  'title'            => 'Название',
                  'body'             => 'Текст',
                  'body_preview'     => 'Текс (предпросмотр)',
4d7ee438   Alexey Boroda   Changes:
143
144
145
146
147
148
149
150
                  'image'            => 'Image',
                  'imageUrl'         => Yii::t('app', 'Image'),
                  'translit'         => 'Translit',
                  'meta_title'       => 'Meta Title',
                  'meta_keywords'    => 'Meta Keywords',
                  'meta_description' => 'Meta Description',
                  'seo_text'         => 'Seo Text',
                  'h1'               => 'H1',
5a29abd6   Alexey Boroda   -Admin panel pret...
151
152
                  'imageUpload'      => 'Картинка',
                  'categoryItems'    => 'Категории',
4d7ee438   Alexey Boroda   Changes:
153
154
155
              ];
          }
          
4d7ee438   Alexey Boroda   Changes:
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
          /**
           * @return ActiveQuery
           */
          public function getCategories()
          {
              return $this->hasMany(BlogCategory::className(), [ 'id' => 'category_id' ])
                          ->viaTable('blog_to_category', [ 'blog_id' => 'id' ]);
          }
          
          public function getCategoryItemsAsArray()
          {
              return BlogCategory::find()
                  ->select('name')
                  ->indexBy('id')
                  ->asArray()
                  ->column();
          }
      
          public function getCategoryItems()
          {
              return $this->_categoryItems;
          }
          
          public function setCategoryItems($items)
          {
              $this->_categoryItems = $items;
          }
4ca21c3e   Alexey Boroda   first commit
183
      }