Fotos.php
2.09 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
72
73
74
<?php
namespace app\modules\admin\models;
use Yii;
use app\components\Translite;
use app\components\resize;
use yii\web\UploadedFile;
class Fotos extends \yii\db\ActiveRecord
{
public $old_image;
public static function tableName()
{
return 'products_fotos';
}
public function rules()
{
return [
[['name'], 'required'],
[['product_id','old_image'], 'safe'],
[['image'], 'file', 'extensions'=>'jpg, gif, png', 'skipOnEmpty'=>true],
];
}
public function attributeLabels()
{
return [
'name'=>'Название',
'cost'=>'Цена',
'sort'=>'Сорт.',
'image'=>'Изображения',
];
}
public function beforeSave($insert) {
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/fotos/'.$this->image);
$resizeObj = new resize('upload/fotos/'.$this->image);
$resizeObj -> resizeImage(100, 100, 'crop');
$resizeObj -> saveImage('upload/fotos/ico/'.$this->image, 100);
$resizeObj -> resizeImage(400, 400, 'crop');
$resizeObj -> saveImage('upload/fotos/big/'.$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/fotos/'.$file);
@unlink('upload/fotos/ico/'.$file);
@unlink('upload/fotos/big/'.$file);
}
}
}