Blame view

common/models/Event.php 3.71 KB
4253cbec   root   first commit
1
2
3
  <?php
  
  namespace common\models;
1da76554   Administrator   big commti
4
5
  use common\behaviors\SaveImgBehavior;
  use common\modules\product\models\Product;
4253cbec   root   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
1da76554   Administrator   big commti
23
24
   * @property integer $status
   * @property integer $banner
4253cbec   root   first commit
25
26
27
28
   */
  class Event extends \yii\db\ActiveRecord
  {
      public $imageUpload;
1da76554   Administrator   big commti
29
      public $products_file;
4253cbec   root   first commit
30
31
32
33
34
35
36
37
38
  
      /**
       * @inheritdoc
       */
      public static function tableName()
      {
          return 'event';
      }
  
1da76554   Administrator   big commti
39
40
41
  
  
  
4253cbec   root   first commit
42
43
44
45
46
47
      /**
       * @inheritdoc
       */
      public function behaviors()
      {
          return [
1da76554   Administrator   big commti
48
49
              [
                  'class'     => SaveImgBehavior::className(),
612a4ea1   Administrator   big commti
50
51
52
53
                  'fields' => [
                      ['name'=>'imageUpload','directory' => 'event' ],
                      ['name'=>'banner','directory' => 'event' ],
                  ]
1da76554   Administrator   big commti
54
              ],
4253cbec   root   first commit
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
              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)) {
1da76554   Administrator   big commti
72
73
  
              $this->end_at = !empty($this->end_at) ? strtotime($this->end_at) : '';
4253cbec   root   first commit
74
75
76
77
78
79
80
              return true;
          } else {
              return false;
          }
      }
  
      public function afterFind(){
1da76554   Administrator   big commti
81
          $this->end_at = !empty($this->end_at) ? date("Y-m-d", $this->end_at) : '';
4253cbec   root   first commit
82
83
84
85
86
87
88
89
90
91
92
      }
  
  
      /**
       * @inheritdoc
       */
      public function rules()
      {
          return [
              [['body', 'seo_text'], 'string'],
              [['created_at', 'updated_at' ], 'integer'],
1da76554   Administrator   big commti
93
              [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at','banner'], 'string', 'max' => 255],
4253cbec   root   first commit
94
95
96
              [['name','body'], 'required'],
              [['imageUpload'], 'safe'],
              [['imageUpload'], 'file', 'extensions' => 'jpg, gif, png'],
1da76554   Administrator   big commti
97
              [['products_file'], 'file'],
4253cbec   root   first commit
98
99
100
101
102
103
104
105
106
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
1da76554   Administrator   big commti
107
              'event_id' => Yii::t('app', 'ID акции'),
4253cbec   root   first commit
108
109
110
111
112
113
114
115
116
117
118
              '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'),
1da76554   Administrator   big commti
119
120
              'status' => Yii::t('app', 'Статус акции'),
              'products_file' => Yii::t('app', 'Загрузка файла'),
4253cbec   root   first commit
121
122
123
124
          ];
      }
  
  
1da76554   Administrator   big commti
125
126
127
128
129
130
131
132
133
134
135
136
      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;
      }
  
  
1da76554   Administrator   big commti
137
138
139
  
      public function getProducts(){
          return $this->hasMany(Product::className(),['product_id' => 'product_id'] )->viaTable('events_to_products', ['event_id' => 'event_id']);
4253cbec   root   first commit
140
141
      }
  
612a4ea1   Administrator   big commti
142
  
4253cbec   root   first commit
143
  }