From 6c83bad0e0ddb12eceab0a36543877e314f8223a Mon Sep 17 00:00:00 2001 From: Alexey Kachayev Date: Tue, 15 Sep 2009 22:23:25 +0000 Subject: [PATCH] =?UTF-8?q?=D0=92=20=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB?= =?UTF-8?q?=D1=8C=20Image=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=D0=B5=D0=BD=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?\=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B0?= =?UTF-8?q?=D0=B2=D0=B0=D1=82=D0=B0=D1=80=D0=BE=D0=BA=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B1=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/actions/ActionBlog.class.php | 33 +++++-------- engine/modules/image/Image.class.php | 69 +++++++++++++++++++++++----- 2 files changed, 70 insertions(+), 32 deletions(-) diff --git a/classes/actions/ActionBlog.class.php b/classes/actions/ActionBlog.class.php index b229ca26..c9458901 100644 --- a/classes/actions/ActionBlog.class.php +++ b/classes/actions/ActionBlog.class.php @@ -192,18 +192,14 @@ class ActionBlog extends Action { * Загрузка аватара, делаем ресайзы */ if (isset($_FILES['avatar']) and is_uploaded_file($_FILES['avatar']['tmp_name'])) { - $sFileTmp=$_FILES['avatar']['tmp_name']; - if ($sFileAvatar=func_img_resize($sFileTmp,Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId(),"avatar_blog_{$oBlog->getUrl()}_48x48",3000,3000,48,48)) { - func_img_resize($sFileTmp,Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId(),"avatar_blog_{$oBlog->getUrl()}_24x24",3000,3000,24,24); - func_img_resize($sFileTmp,Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId(),"avatar_blog_{$oBlog->getUrl()}",3000,3000); + if ($sExtension=$this->Image_UploadBlogAvatar($_FILES['avatar'],$oBlog)) { $oBlog->setAvatar(1); - $aFileInfo=pathinfo($sFileAvatar); - $oBlog->setAvatarType($aFileInfo['extension']); + $oBlog->setAvatarType($sExtension); } else { $this->Message_AddError($this->Lang_Get('blog_create_avatar_error'),$this->Lang_Get('error')); return false; } - } + } /** * Создаём блог */ @@ -288,18 +284,14 @@ class ActionBlog extends Action { $oBlog->setLimitRatingTopic(getRequest('blog_limit_rating_topic')); //$oBlog->setUrl(getRequest('blog_url')); // запрещаем смену URL блога /** - * Загрузка аватара, делаем ресайзы - */ - if (isset($_FILES['avatar']) and is_uploaded_file($_FILES['avatar']['tmp_name'])) { - $sFileTmp=$_FILES['avatar']['tmp_name']; - if ($sFileAvatar=func_img_resize($sFileTmp,Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId(),"avatar_blog_{$oBlog->getUrl()}_48x48",3000,3000,48,48)) { - func_img_resize($sFileTmp,Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId(),"avatar_blog_{$oBlog->getUrl()}_24x24",3000,3000,24,24); - func_img_resize($sFileTmp,Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId(),"avatar_blog_{$oBlog->getUrl()}",3000,3000); + * Загрузка аватара, делаем ресайзы + */ + if (isset($_FILES['avatar']) and is_uploaded_file($_FILES['avatar']['tmp_name'])) { + if ($sExtension=$this->Image_UploadBlogAvatar($_FILES['avatar'],$oBlog)) { $oBlog->setAvatar(1); - $aFileInfo=pathinfo($sFileAvatar); - $oBlog->setAvatarType($aFileInfo['extension']); - } else { - $this->Message_AddError($this->Lang_Get('blog_create_avatar_delete'),$this->Lang_Get('error')); + $oBlog->setAvatarType($sExtension); + } else { + $this->Message_AddError($this->Lang_Get('blog_create_avatar_error'),$this->Lang_Get('error')); return false; } } @@ -308,10 +300,9 @@ class ActionBlog extends Action { */ if (isset($_REQUEST['avatar_delete'])) { $oBlog->setAvatar(0); - @unlink(Config::Get('path.root.server').Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId()."/avatar_blog_{$oBlog->getUrl()}_48x48.".$oBlog->getAvatarType()); - @unlink(Config::Get('path.root.server').Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId()."/avatar_blog_{$oBlog->getUrl()}_24x24.".$oBlog->getAvatarType()); - @unlink(Config::Get('path.root.server').Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId()."/avatar_blog_{$oBlog->getUrl()}.".$oBlog->getAvatarType()); $oBlog->setAvatarType(null); + + $this->Image_DeleteBlogAvatar($oBlog); } /** * Обновляем блог diff --git a/engine/modules/image/Image.class.php b/engine/modules/image/Image.class.php index 88c2b95f..b982d93a 100644 --- a/engine/modules/image/Image.class.php +++ b/engine/modules/image/Image.class.php @@ -76,16 +76,16 @@ class LsImage extends Module { * Resize,copy image, * make rounded corners and add watermark * - * @param unknown_type $sFileSrc - * @param unknown_type $sDirDest - * @param unknown_type $sFileDest - * @param unknown_type $iWidthMax - * @param unknown_type $iHeightMax - * @param unknown_type $iWidthDest - * @param unknown_type $iHeightDest - * @param unknown_type $bForcedMinSize - * @param unknown_type $aParams - * @return unknown + * @param string $sFileSrc + * @param string $sDirDest + * @param string $sFileDest + * @param int $iWidthMax + * @param int $iHeightMax + * @param int $iWidthDest + * @param int $iHeightDest + * @param bool $bForcedMinSize + * @param array $aParams + * @return string */ public function Resize($sFileSrc,$sDirDest,$sFileDest,$iWidthMax,$iHeightMax,$iWidthDest=null,$iHeightDest=null,$bForcedMinSize=true,$aParams=null) { /** @@ -210,7 +210,7 @@ class LsImage extends Module { * @param UserEntity_User $oUser */ public function DeleteAvatar($oUser) { - $sPath = Config::Get('path.root.server').Config::Get('path.uploads.images').'/'.$oUser->getId(); + $sPath = Config::Get('path.uploads.images').'/'.$oUser->getId(); /** * Удаляем аватар и его рейсайзы */ @@ -220,6 +220,53 @@ class LsImage extends Module { @unlink($sPath.'/avatar_24x24.'.$oUser->getProfileAvatarType()); @unlink($sPath.'/avatar.'.$oUser->getProfileAvatarType()); } + /** + * Upload blog avatar on server + * Make resized images + * + * @param array $aFile + * @param BlogEntity_Blog $oUser + * @return (string|bool) + */ + public function UploadBlogAvatar($aFile,$oBlog) { + if(!is_array($aFile) || !isset($aFile['tmp_name'])) { + return false; + } + + $sFileTmp=$aFile['tmp_name']; + $sPath=Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId(); + $aParams=$this->BuildParams('avatar'); + + if ($sFileAvatar=$this->Resize($sFileTmp,$sPath,"avatar_blog_{$oBlog->getUrl()}_48x48",3000,3000,48,48,true,$aParams)) { + $this->Resize($sFileTmp,$sPath,"avatar_blog_{$oBlog->getUrl()}_24x24",3000,3000,24,24,true,$aParams); + $this->Resize($sFileTmp,$sPath,"avatar_blog_{$oBlog->getUrl()}",3000,3000,true,$aParams); + + /** + * Если все нормально, возвращаем расширение загруженного аватара + */ + $aFileInfo=pathinfo($sFileAvatar); + return $aFileInfo['extension']; + } + /** + * В случае ошибки, возвращаем false + */ + return false; + } + /** + * Delete blog avatar from server + * + * @param BlogEntity_Blog $oUser + */ + public function DeleteBlogAvatar($oBlog) { + $sPath=Config::Get('path.uploads.images').'/'.$oBlog->getOwnerId(); + /** + * Удаляем аватар и его рейсайзы + */ + @unlink($sPath."/avatar_blog_{$oBlog->getUrl()}_48x48.".$oBlog->getAvatarType()); + @unlink($sPath."/avatar_blog_{$oBlog->getUrl()}_24x24.".$oBlog->getAvatarType()); + @unlink($sPath."/avatar_blog_{$oBlog->getUrl()}.".$oBlog->getAvatarType()); + } + /** * Upload user foto *