Beispiel #1
0
 public function updateCoverBack()
 {
     //Удаляем старую подложку обложки
     foreach (UserUrl::$IMAGE_SIZE as $image_size => $value) {
         $file_path = UserUrl::styleCoverBack(false, $this->id) . DIRECTORY_SEPARATOR . UserUrl::imageFile($this->cover_back_key, $image_size, 'png');
         if (file_exists($file_path)) {
             unlink($file_path);
         }
     }
     $file = UploadedFile::getInstance($this, 'photo');
     if ($file) {
         if ($file->size !== 0) {
             $file_id = AlphaId::id(rand(10000000000, 9999999999999));
             $file_path = UserUrl::styleCoverBack(false, $this->id) . DIRECTORY_SEPARATOR . UserUrl::imageFile($file_id, UserUrl::IMAGE_ORIGINAL, 'png');
             $file->saveAs($file_path);
             foreach (UserUrl::$IMAGE_SIZE as $image_size => $param) {
                 if ($image_size == UserUrl::IMAGE_ORIGINAL) {
                     continue;
                 }
                 $image = Yii::$app->image->load($file_path);
                 $type = Yii\image\drivers\Image::WIDTH;
                 $file_resize_path = UserUrl::styleCoverBack(false, $this->id) . DIRECTORY_SEPARATOR . UserUrl::imageFile($file_id, $image_size, 'png');
                 $image->resize($param['width'], $param['height'], $type);
                 $image->save($file_resize_path);
             }
             $this->cover_back_key = $file_id;
             if (!$this->save()) {
                 return ['error' => ['msg' => Yii::t('app', 'Ошибка записи в базу-данных')]];
             } else {
                 return ['response' => ['status' => true, 'cover_back_key' => $file_id, 'cover_back_thumb_url' => UserUrl::styleCoverBack(true, $this->id) . DIRECTORY_SEPARATOR . UserUrl::imageFile($file_id, UserUrl::IMAGE_THUMB, 'png')]];
             }
         } else {
             return ['error' => ['msg' => Yii::t('app', 'Данные не получены')]];
         }
     } else {
         return ['error' => ['msg' => Yii::t('app', 'Данные не получены')]];
     }
 }