Esempio n. 1
0
 public function actionDelpicture($id)
 {
     $picture = HolePictures::model()->findByPk((int) $id);
     if (!$picture) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     if ($picture->user_id != Yii::app()->user->id && Yii::app()->user->level < 80 && $picture->hole->USER_ID != Yii::app()->user->id) {
         throw new CHttpException(403, 'Доступ запрещен.');
     }
     $picture->delete();
     if (!isset($_GET['ajax'])) {
         $this->redirect(array('view', 'id' => $picture->hole->ID));
     }
 }
Esempio n. 2
0
 public function savePictures()
 {
     foreach ($this->deletepict as $pictid) {
         $pictmodel = HolePictures::model()->findByPk((int) $pictid);
         if ($pictmodel) {
             $pictmodel->delete();
         }
     }
     $imagess = $this->getUpploadedPictures();
     //print_r($imagess);exit;
     $id = $this->ID;
     $prefix = '';
     $path = $_SERVER['DOCUMENT_ROOT'] . Yii::app()->params['imagePath'];
     if (!is_dir($path . 'original/' . $id)) {
         if (!mkdir($path . 'original/' . $id)) {
             $this->addError('upploadedPictures', Yii::t('errors', 'GREENSIGHT_ERROR_CANNOT_CREATE_DIR'));
             return false;
         }
         if (!mkdir($path . 'medium/' . $id)) {
             unlink($path . 'original/' . $id);
             $this->addError('upploadedPictures', Yii::t('errors', 'GREENSIGHT_ERROR_CANNOT_CREATE_DIR'));
             return false;
         }
         if (!mkdir($path . 'small/' . $id)) {
             unlink($path . 'original/' . $id);
             unlink($path . 'medium/' . $id);
             $this->addError('upploadedPictures', Yii::t('errors', 'GREENSIGHT_ERROR_CANNOT_CREATE_DIR'));
             return false;
         }
     }
     $_params = $this->params;
     $file_counter = 0;
     $k = $this->ID;
     foreach ($imagess as $_file) {
         if (!$_file->hasError) {
             $imgname = rand() . '.jpg';
             $image = $this->imagecreatefromfile($_file->getTempName(), $_image_info);
             if (!$image) {
                 $this->addError('pictures', Yii::t('errors', 'GREENSIGHT_ERROR_UNSUPPORTED_IMAGE_TYPE'));
                 return false;
             }
             $aspect = max($_image_info[0] / $_params['big_sizex'], $_image_info[1] / $_params['big_sizey']);
             if ($aspect > 1) {
                 $new_x = floor($_image_info[0] / $aspect);
                 $new_y = floor($_image_info[1] / $aspect);
                 $newimage = imagecreatetruecolor($new_x, $new_y);
                 imagecopyresampled($newimage, $image, 0, 0, 0, 0, $new_x, $new_y, $_image_info[0], $_image_info[1]);
                 imagejpeg($newimage, $path . 'original/' . $id . '/' . $imgname);
             } else {
                 imagejpeg($image, $path . 'original/' . $id . '/' . $imgname);
             }
             $aspect = max($_image_info[0] / $_params['medium_sizex'], $_image_info[1] / $_params['medium_sizey']);
             $new_x = floor($_image_info[0] / $aspect);
             $new_y = floor($_image_info[1] / $aspect);
             $newimage = imagecreatetruecolor($new_x, $new_y);
             imagecopyresampled($newimage, $image, 0, 0, 0, 0, $new_x, $new_y, $_image_info[0], $_image_info[1]);
             imagejpeg($newimage, $path . 'medium/' . $id . '/' . $imgname);
             imagedestroy($newimage);
             $aspect = min($_image_info[0] / $_params['small_sizex'], $_image_info[1] / $_params['small_sizey']);
             $newimage = imagecreatetruecolor($_params['small_sizex'], $_params['small_sizey']);
             imagecopyresampled($newimage, $image, 0, 0, $_image_info[0] > $_image_info[1] ? floor(($_image_info[0] - $aspect * $_params['small_sizex']) / 2) : 0, $_image_info[0] < $_image_info[1] ? floor(($_image_info[1] - $aspect * $_params['small_sizey']) / 2) : 0, $_params['small_sizex'], $_params['small_sizey'], ceil($aspect * $_params['small_sizex']), ceil($aspect * $_params['small_sizey']));
             imagejpeg($newimage, $path . 'small/' . $id . '/' . $imgname);
             imagedestroy($newimage);
             imagedestroy($image);
             $imgmodel = new HolePictures();
             $imgmodel->type = $this->scenario == 'fix' ? 'fixed' : 'fresh';
             $imgmodel->filename = $imgname;
             $imgmodel->hole_id = $this->ID;
             $imgmodel->user_id = Yii::app()->user->id;
             $imgmodel->ordering = $imgmodel->lastOrder + 1;
             $imgmodel->save();
         }
     }
     return true;
 }