From 803b87becb4920c685cb7921e48fa43e87f3ce86 Mon Sep 17 00:00:00 2001 From: Mzhelskiy Maxim Date: Sun, 5 Jul 2009 11:30:55 +0000 Subject: [PATCH] --- classes/actions/ActionTalk.class.php | 29 +++--- classes/modules/talk/Talk.class.php | 12 ++- .../talk/entity/TalkComment.entity.class.php | 90 ------------------- .../modules/talk/mapper/Talk.mapper.class.php | 24 ++--- 4 files changed, 32 insertions(+), 123 deletions(-) delete mode 100644 classes/modules/talk/entity/TalkComment.entity.class.php diff --git a/classes/actions/ActionTalk.class.php b/classes/actions/ActionTalk.class.php index d0926005..5e7e51ec 100644 --- a/classes/actions/ActionTalk.class.php +++ b/classes/actions/ActionTalk.class.php @@ -73,21 +73,19 @@ class ActionTalk extends Action { $this->Security_ValidateSendForm(); /** * Получаем номер сообщения из УРЛ и проверяем существует ли оно - */ + */ $sTalkId=$this->GetParam(0); - if (!$oTalk=$this->Talk_GetTalkByIdAndUserId($sTalkId,$this->oUserCurrent->getId())) { + if (!($oTalk=$this->Talk_GetTalkById($sTalkId))) { return parent::EventNotFound(); - } + } + if (!($oTalkUser=$this->Talk_GetTalkUser($oTalk->getId(),$this->oUserCurrent->getId()))) { + return parent::EventNotFound(); + } /** * Обработка удаления сообщения - */ - if ($oTalkUser=$this->Talk_GetTalkUser($sTalkId,$this->oUserCurrent->getId())) { - if ($this->Talk_DeleteTalkUser($oTalkUser)) { - func_header_location(DIR_WEB_ROOT.'/'.ROUTE_PAGE_TALK.'/'); - } else { - $this->Message_AddError($this->Lang_Get('system_error')); - } - } + */ + $this->Talk_DeleteTalkUserByArray($sTalkId,$this->oUserCurrent->getId()); + func_header_location(DIR_WEB_ROOT.'/'.ROUTE_PAGE_TALK.'/'); } @@ -99,11 +97,7 @@ class ActionTalk extends Action { $this->Security_ValidateSendForm(); $aTalksIdDel=getRequest('talk_del'); if (is_array($aTalksIdDel)) { - foreach ($aTalksIdDel as $sTalkId => $value) { - if ($oTalkUser=$this->Talk_GetTalkUser($sTalkId,$this->oUserCurrent->getId())) { - $this->Talk_DeleteTalkUser($oTalkUser); - } - } + $this->Talk_DeleteTalkUserByArray(array_keys($aTalksIdDel),$this->oUserCurrent->getId()); } } /** @@ -168,8 +162,7 @@ class ActionTalk extends Action { $oTalkUser->setCommentIdLast($iMaxIdComment); $oTalkUser->setCommentCountNew(0); $this->Talk_UpdateTalkUser($oTalkUser); - - + $this->Viewer_AddHtmlTitle($oTalk->getTitle()); $this->Viewer_Assign('oTalk',$oTalk); $this->Viewer_Assign('aComments',$aComments); diff --git a/classes/modules/talk/Talk.class.php b/classes/modules/talk/Talk.class.php index 1e4fa3f5..15bd731b 100644 --- a/classes/modules/talk/Talk.class.php +++ b/classes/modules/talk/Talk.class.php @@ -304,8 +304,8 @@ class LsTalk extends Module { * @param TalkEntity_TalkUser $oTalkUser * @return unknown */ - public function DeleteTalkUser(TalkEntity_TalkUser $oTalkUser) { - return $this->oMapper->DeleteTalkUser($oTalkUser); + public function DeleteTalkUserByArray($aTalkId,$sUserId) { + return $this->oMapper->DeleteTalkUserByArray($aTalkId,$sUserId); } /** * Есть ли юзер в этом разговоре @@ -372,7 +372,13 @@ class LsTalk extends Module { $data=$this->oMapper->GetUsersTalk($sTalkId); return $this->User_GetUsersAdditionalData($data); } - + /** + * Увеличивает число новых комментов у юзеров + * + * @param unknown_type $sTalkId + * @param unknown_type $aExcludeId + * @return unknown + */ public function increaseCountCommentNew($sTalkId,$aExcludeId=null) { return $this->oMapper->increaseCountCommentNew($sTalkId,$aExcludeId); } diff --git a/classes/modules/talk/entity/TalkComment.entity.class.php b/classes/modules/talk/entity/TalkComment.entity.class.php deleted file mode 100644 index 73825387..00000000 --- a/classes/modules/talk/entity/TalkComment.entity.class.php +++ /dev/null @@ -1,90 +0,0 @@ -_aData['talk_comment_id']; - } - public function getPid() { - return $this->_aData['talk_comment_pid']; - } - public function getTalkId() { - return $this->_aData['talk_id']; - } - public function getUserId() { - return $this->_aData['user_id']; - } - public function getText() { - return $this->_aData['talk_comment_text']; - } - public function getDate() { - return $this->_aData['talk_comment_date']; - } - public function getUserIp() { - return $this->_aData['talk_comment_user_ip']; - } - - - public function getUserLogin() { - return $this->_aData['user_login']; - } - public function getLevel() { - return $this->_aData['level']; - } - public function getUserProfileAvatar() { - return $this->_aData['user_profile_avatar']; - } - public function getUserProfileAvatarType() { - return $this->_aData['user_profile_avatar_type']; - } - public function getUserProfileAvatarPath($iSize=100) { - if ($this->getUserProfileAvatar()) { - return DIR_WEB_ROOT.DIR_UPLOADS_IMAGES.'/'.$this->getUserId().'/avatar_'.$iSize.'x'.$iSize.'.'.$this->getUserProfileAvatarType(); - } else { - return DIR_STATIC_SKIN.'/images/avatar_'.$iSize.'x'.$iSize.'.jpg'; - } - } - public function getTalkTitle() { - return $this->_aData['talk_title']; - } - - - - public function setId($data) { - $this->_aData['talk_comment_id']=$data; - } - public function setPid($data) { - $this->_aData['talk_comment_pid']=$data; - } - public function setTalkId($data) { - $this->_aData['talk_id']=$data; - } - public function setUserId($data) { - $this->_aData['user_id']=$data; - } - public function setText($data) { - $this->_aData['talk_comment_text']=$data; - } - public function setDate($data) { - $this->_aData['talk_comment_date']=$data; - } - public function setUserIp($data) { - $this->_aData['talk_comment_user_ip']=$data; - } -} -?> \ No newline at end of file diff --git a/classes/modules/talk/mapper/Talk.mapper.class.php b/classes/modules/talk/mapper/Talk.mapper.class.php index 19a69a3d..c1df3ffe 100644 --- a/classes/modules/talk/mapper/Talk.mapper.class.php +++ b/classes/modules/talk/mapper/Talk.mapper.class.php @@ -140,14 +140,18 @@ class Mapper_Talk extends Mapper { } - public function DeleteTalkUser(TalkEntity_TalkUser $oTalkUser) { + public function DeleteTalkUserByArray($aTalkId,$sUserId) { + if (!is_array($aTalkId)) { + $aTalkId=array($aTalkId); + } + $sql = "DELETE FROM ".DB_TABLE_TALK_USER." WHERE - talk_id = ?d + talk_id IN (?a) AND user_id = ?d "; - if ($this->oDb->query($sql,$oTalkUser->getTalkId(),$oTalkUser->getUserId())) + if ($this->oDb->query($sql,$aTalkId,$sUserId)) { return true; } @@ -155,19 +159,15 @@ class Mapper_Talk extends Mapper { } + public function GetCountCommentNew($sUserId) { $sql = " SELECT - COUNT(tc.talk_comment_id) as count_new - FROM - ".DB_TABLE_TALK_COMMENT." as tc, + SUM(tu.comment_count_new) as count_new + FROM ".DB_TABLE_TALK_USER." as tu - WHERE - (tc.talk_comment_date>tu.date_last or tu.date_last IS NULL) - AND - tu.user_id = ?d - AND - tu.talk_id=tc.talk_id + WHERE + tu.user_id = ?d "; if ($aRow=$this->oDb->selectRow($sql,$sUserId)) { return $aRow['count_new'];