Blame view

common/models/Event.php 3.96 KB
3f2bc3d0   Administrator   first commit
1
2
3
4
  <?php
  
  namespace common\models;
  
873e3d80   Administrator   14.09.16
5
  use common\modules\product\models\Product;
3f2bc3d0   Administrator   first commit
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  use Yii;
  use yii\behaviors\TimestampBehavior;
  /**
   * This is the model class for table "event".
   *
   * @property integer $event_id
   * @property string $name
   * @property string $alias
   * @property string $body
   * @property string $image
   * @property string $meta_title
   * @property string $description
   * @property string $h1
   * @property string $seo_text
   * @property integer $created_at
   * @property integer $updated_at
   * @property integer $end_at
873e3d80   Administrator   14.09.16
23
24
   * @property integer $status
   * @property integer $banner
3f2bc3d0   Administrator   first commit
25
26
27
   */
  class Event extends \yii\db\ActiveRecord
  {
445bce5f   Karnovsky A   -
28
      public $imageUpload;
873e3d80   Administrator   14.09.16
29
      public $products_file;
3f2bc3d0   Administrator   first commit
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  
      /**
       * @inheritdoc
       */
      public static function tableName()
      {
          return 'event';
      }
  
      /**
       * @inheritdoc
       */
      public function behaviors()
      {
          return [
              TimestampBehavior::className(),
              'slug' => [
                  'class' => 'common\behaviors\Slug',
                  'in_attribute' => 'name',
                  'out_attribute' => 'alias',
                  'translit' => true
              ],
              [
                  'class'              => 'common\behaviors\ShowImage',
              ],
          ];
      }
  
  
      public function beforeSave($insert)
      {
          if (parent::beforeSave($insert)) {
873e3d80   Administrator   14.09.16
62
63
  
              $this->end_at = !empty($this->end_at) ? strtotime($this->end_at) : '';
3f2bc3d0   Administrator   first commit
64
65
66
67
68
69
70
              return true;
          } else {
              return false;
          }
      }
  
      public function afterFind(){
873e3d80   Administrator   14.09.16
71
          $this->end_at = !empty($this->end_at) ? date("Y-m-d", $this->end_at) : '';
3f2bc3d0   Administrator   first commit
72
73
74
75
76
77
78
79
80
81
82
      }
  
  
      /**
       * @inheritdoc
       */
      public function rules()
      {
          return [
              [['body', 'seo_text'], 'string'],
              [['created_at', 'updated_at' ], 'integer'],
873e3d80   Administrator   14.09.16
83
              [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at','banner'], 'string', 'max' => 255],
3f2bc3d0   Administrator   first commit
84
              [['name','body'], 'required'],
445bce5f   Karnovsky A   -
85
86
              [['imageUpload'], 'safe'],
              [['imageUpload'], 'file', 'extensions' => 'jpg, gif, png'],
873e3d80   Administrator   14.09.16
87
              [['products_file'], 'file'],
3f2bc3d0   Administrator   first commit
88
89
90
91
92
93
94
95
96
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
873e3d80   Administrator   14.09.16
97
              'event_id' => Yii::t('app', 'ID акции'),
3f2bc3d0   Administrator   first commit
98
99
100
101
102
103
104
105
106
107
108
              'name' => Yii::t('app', 'name'),
              'alias' => Yii::t('app', 'alias'),
              'body' => Yii::t('app', 'body'),
              'image' => Yii::t('app', 'image'),
              'meta_title' => Yii::t('app', 'meta_title'),
              'description' => Yii::t('app', 'description'),
              'h1' => Yii::t('app', 'h1'),
              'seo_text' => Yii::t('app', 'seo_text'),
              'created_at' => Yii::t('app', 'created_at'),
              'updated_at' => Yii::t('app', 'updated_at'),
              'end_at' => Yii::t('app', 'end_at'),
873e3d80   Administrator   14.09.16
109
110
              'status' => Yii::t('app', 'Статус акции'),
              'products_file' => Yii::t('app', 'Загрузка файла'),
3f2bc3d0   Administrator   first commit
111
112
          ];
      }
445bce5f   Karnovsky A   -
113
114
  
  
873e3d80   Administrator   14.09.16
115
116
117
118
119
120
121
122
123
124
125
126
      public function isActive(){
          if($this->status){
  
              if(!empty($this->end_at) && (strtotime($this->end_at) <= strtotime(date("Y-m-d")))){
                  return false;
              }
              return true;
          }
          return false;
      }
  
  
445bce5f   Karnovsky A   -
127
      public function getImageFile() {
873e3d80   Administrator   14.09.16
128
          return empty($this->image) ? null : Yii::getAlias('@imagesDir/event/'. $this->image);
445bce5f   Karnovsky A   -
129
130
131
132
      }
  
      public function getImageUrl()
      {
873e3d80   Administrator   14.09.16
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
          return empty($this->image) ? null : Yii::getAlias('@imagesUrl/event/' . $this->image);
      }
  
      public function getBannerFile() {
          return empty($this->image) ? null : Yii::getAlias('@imagesDir/event/'. $this->banner);
      }
  
  
      public function getProducts(){
          return $this->hasMany(Product::className(),['product_id' => 'product_id'] )->viaTable('events_to_products', ['event_id' => 'event_id']);
      }
  
      public function getBannerUrl()
      {
          return empty($this->image) ? null : Yii::getAlias('@imagesUrl/event/' . $this->banner);
445bce5f   Karnovsky A   -
148
      }
3f2bc3d0   Administrator   first commit
149
  }