/** * @param Page $page * @param CUploadedFile $image */ public function __construct(Page $page, CUploadedFile $image) { $name = PageUploadedImage::createName($page, $image); $fullPath = PageUploadedImage::getSavePath() . '/../page/' . $name; $image->saveAs($fullPath); @chmod($fullPath, 0666); // Check if page has main image $is_main = (int) PageImage::model()->countByAttributes(array('page_id' => $page->id, 'is_main' => 1)); $imageModel = new PageImage(); $imageModel->page_id = $page->id; $imageModel->name = $name; $imageModel->is_main = $is_main == 0 ? true : false; $imageModel->uploaded_by = Yii::app()->user->getId(); $imageModel->date_uploaded = date('Y-m-d H:i:s'); $imageModel->save(); $this->resize($fullPath); $this->watermark($fullPath); }
/** * @param Page $model */ public function updateMainImage(Page $model) { if (Yii::app()->request->getPost('mainImageId')) { // Clear current main image PageImage::model()->updateAll(array('is_main' => 0), 'page_id=:pid', array(':pid' => $model->id)); // Set new main image PageImage::model()->updateByPk(Yii::app()->request->getPost('mainImageId'), array('is_main' => 1)); } }
/** * Delete file, etc... */ public function afterDelete() { // Delete file if (file_exists($this->filePath)) { unlink($this->filePath); } // If main image was deleted if ($this->is_main) { // Get first image and set it as main $model = PageImage::model()->find(); if ($model) { $model->is_main = 1; $model->save(false); } } return parent::afterDelete(); }