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)); } }
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; }