1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-01 05:55:02 +03:00
This commit is contained in:
Mzhelskiy Maxim 2009-07-05 11:30:55 +00:00
parent 53623d4d82
commit 803b87becb
4 changed files with 32 additions and 123 deletions

View file

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

View file

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

View file

@ -1,90 +0,0 @@
<?php
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
class TalkEntity_TalkComment extends Entity
{
public function getId() {
return $this->_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;
}
}
?>

View file

@ -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'];