Articles.php
2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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
62
63
64
65
66
67
68
69
70
71
<?php
namespace app\modules\admin\models;
use app\components\Translite;
use app\components\resize;
use yii\web\UploadedFile;
class Articles extends \yii\db\ActiveRecord
{
public $old_image;
public static function tableName()
{
return 'articles';
}
public function rules()
{
return [
[['title'], 'required'],
[['old_image','date','body','translit','meta_title','meta_keywords','meta_description'], 'safe'],
[['image'], 'file', 'extensions'=>'jpg, gif, png', 'skipOnEmpty'=>true],
];
}
public function attributeLabels()
{
return [
'title'=>'Название',
'body'=>'Описание',
'date'=>'Дата',
'image'=>'Изображения',
];
}
public function beforeSave($insert) {
if (!$this->translit)
$this->translit = Translite::rusencode($this->title);
if($image = UploadedFile::getInstance($this,'image')){
$this->deleteImage($this->old_image);
//$this->image = $image;
$this->image = time() . '_' . rand(1, 1000) . '.' . $image->extension;
$image->saveAs('upload/articles/'.$this->image);
$resizeObj = new resize('upload/articles/'.$this->image);
$resizeObj -> resizeImage(100, 100, 'crop');
$resizeObj -> saveImage('upload/articles/ico/'.$this->image, 100);
}else $this->image = $this->old_image;
return parent::beforeSave($insert);
}
public function beforeDelete() {
$this->deleteImage($this->image);
return parent::beforeDelete();
}
public function deleteImage($file){
if(!empty($file)){
@unlink('upload/articles/'.$file);
@unlink('upload/articles/ico/'.$file);
}
}
}