protected function renderContent() { if (isset($this->block) && $this->block != null) { if (isset($_POST['ResetAvatar'])) { //So we will start to check the info from the user $current_user = User::model()->findByPk(user()->id); if ($current_user) { if ($current_user->avatar != null && $current_user->avatar != '') { //We will delete the old avatar here $old_avatar_path = $current_user->avatar; if (file_exists(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $old_avatar_path)) { @unlink(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $old_avatar_path); } //Delete old file Sizes $sizes = AvatarSize::getSizes(); foreach ($sizes as $size) { if (file_exists(AVATAR_FOLDER . DIRECTORY_SEPARATOR . $size['id'] . DIRECTORY_SEPARATOR . $old_avatar_path)) { @unlink(AVATAR_FOLDER . DIRECTORY_SEPARATOR . $size['id'] . DIRECTORY_SEPARATOR . $old_avatar_path); } } $current_user->avatar = ''; if ($current_user->save()) { echo "1"; Yii::app()->end(); } } } else { throw new CHttpException('403', 'Wrong Link!'); } } Yii::app()->controller->redirect(bu() . '/profile'); } }
protected function renderContent() { if (isset($this->block) && $this->block != null) { $model = new UserAvatarForm(); if (isset($_POST['UserAvatarForm'])) { $model->attributes = $_POST['UserAvatarForm']; $model->image = CUploadedFile::getInstance($model, 'image'); if ($model->validate()) { //Get the User Id to determine the folder $folder = user()->id >= 1000 ? (string) (round(user()->id / 1000) * 1000) : '1000'; $filename = user()->id . '_' . gen_uuid(); if (!(file_exists(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $folder) && AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $folder)) { mkdir(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $folder, 0777, true); } if (file_exists(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $folder . DIRECTORY_SEPARATOR . $filename . '.' . strtolower(CFileHelper::getExtension($model->image->name)))) { $filename .= '_' . time(); } $filename = $filename . '.' . strtolower(CFileHelper::getExtension($model->image->name)); $path = $folder . DIRECTORY_SEPARATOR . $filename; if ($model->image->saveAs(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $path)) { //Generate thumbs // GxcHelpers::generateAvatarThumb($filename, $folder, $filename); //So we will start to check the info from the user $current_user = User::model()->findByPk(user()->id); if ($current_user) { if ($current_user->avatar != null && $current_user->avatar != '') { //We will delete the old avatar here $old_avatar_path = $current_user->avatar; $current_user->avatar = $path; if (file_exists(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $old_avatar_path)) { @unlink(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $old_avatar_path); } //Delete old file Sizes $sizes = AvatarSize::getSizes(); foreach ($sizes as $size) { if (file_exists(AVATAR_FOLDER . DIRECTORY_SEPARATOR . $size['id'] . DIRECTORY_SEPARATOR . $old_avatar_path)) { @unlink(AVATAR_FOLDER . DIRECTORY_SEPARATOR . $size['id'] . DIRECTORY_SEPARATOR . $old_avatar_path); } } } else { //$current_user $current_user->avatar = $path; } $current_user->save(); } } else { throw new CHttpException('503', 'Error while uploading!'); } } } $this->render(BlockRenderWidget::setRenderOutput($this), array('model' => $model)); } else { echo ''; } }
public static function generateAvatarThumb($upload_name, $folder, $filename) { //Start to check if the File type is Image type, so we Generate Everythumb size for it if (in_array(strtolower(CFileHelper::getExtension($upload_name)), array('gif', 'jpg', 'png'))) { //Start to create Thumbs for it $sizes = AvatarSize::getSizes(); foreach ($sizes as $size) { if (!(file_exists(AVATAR_FOLDER . DIRECTORY_SEPARATOR . $size['id'] . DIRECTORY_SEPARATOR . $folder) && AVATAR_FOLDER . DIRECTORY_SEPARATOR . $size . DIRECTORY_SEPARATOR . $folder)) { mkdir(AVATAR_FOLDER . DIRECTORY_SEPARATOR . $size['id'] . DIRECTORY_SEPARATOR . $folder, 0777, true); } $thumbs = new ImageResizer(AVATAR_FOLDER . DIRECTORY_SEPARATOR . 'root' . DIRECTORY_SEPARATOR . $folder . DIRECTORY_SEPARATOR, $filename, AVATAR_FOLDER . DIRECTORY_SEPARATOR . $size['id'] . DIRECTORY_SEPARATOR . $folder . DIRECTORY_SEPARATOR, $filename, $size['width'], $size['height'], $size['ratio'], 90, '#FFFFFF'); $thumbs->output(); } } }