Blame view

app/modules/admin/models/Articles.php 2.02 KB
bf807468   Alex Savenko   first commit
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);

                          }            

          }        

  	

  

  }