2009-05-10 10:50:39 +03:00
|
|
|
|
<?php
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/*-------------------------------------------------------
|
|
|
|
|
*
|
|
|
|
|
* 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 ActionTalk extends Action {
|
|
|
|
|
/**
|
|
|
|
|
* Текущий юзер
|
|
|
|
|
*
|
|
|
|
|
* @var unknown_type
|
|
|
|
|
*/
|
|
|
|
|
protected $oUserCurrent=null;
|
|
|
|
|
/**
|
|
|
|
|
* Массив ID юзеров адресатов
|
|
|
|
|
*
|
|
|
|
|
* @var unknown_type
|
|
|
|
|
*/
|
|
|
|
|
protected $aUsersId=array();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Инициализация
|
|
|
|
|
*
|
|
|
|
|
* @return unknown
|
|
|
|
|
*/
|
|
|
|
|
public function Init() {
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем авторизован ли юзер
|
|
|
|
|
*/
|
|
|
|
|
if (!$this->User_IsAuthorization()) {
|
2009-04-11 14:50:42 +03:00
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('not_access'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
return Router::Action('error');
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Получаем текущего юзера
|
|
|
|
|
*/
|
|
|
|
|
$this->oUserCurrent=$this->User_GetUserCurrent();
|
|
|
|
|
$this->SetDefaultEvent('inbox');
|
2009-04-11 14:50:42 +03:00
|
|
|
|
$this->Viewer_AddHtmlTitle($this->Lang_Get('talk_menu_inbox'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected function RegisterEvent() {
|
|
|
|
|
$this->AddEvent('inbox','EventInbox');
|
|
|
|
|
$this->AddEvent('add','EventAdd');
|
|
|
|
|
$this->AddEvent('read','EventRead');
|
2009-07-05 00:41:42 +03:00
|
|
|
|
$this->AddEvent('delete','EventDelete');
|
|
|
|
|
$this->AddEvent('ajaxaddcomment','AjaxAddComment');
|
|
|
|
|
$this->AddEvent('ajaxresponsecomment','AjaxResponseComment');
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**********************************************************************************
|
|
|
|
|
************************ РЕАЛИЗАЦИЯ ЭКШЕНА ***************************************
|
|
|
|
|
**********************************************************************************
|
|
|
|
|
*/
|
|
|
|
|
|
2009-05-21 17:50:55 +03:00
|
|
|
|
protected function EventDelete() {
|
|
|
|
|
$this->Security_ValidateSendForm();
|
2009-02-01 19:40:06 +02:00
|
|
|
|
/**
|
|
|
|
|
* Получаем номер сообщения из УРЛ и проверяем существует ли оно
|
2009-07-05 14:30:55 +03:00
|
|
|
|
*/
|
2009-02-01 19:40:06 +02:00
|
|
|
|
$sTalkId=$this->GetParam(0);
|
2009-07-05 14:30:55 +03:00
|
|
|
|
if (!($oTalk=$this->Talk_GetTalkById($sTalkId))) {
|
|
|
|
|
return parent::EventNotFound();
|
|
|
|
|
}
|
|
|
|
|
if (!($oTalkUser=$this->Talk_GetTalkUser($oTalk->getId(),$this->oUserCurrent->getId()))) {
|
2009-02-01 19:40:06 +02:00
|
|
|
|
return parent::EventNotFound();
|
2009-07-05 14:30:55 +03:00
|
|
|
|
}
|
2009-02-01 19:40:06 +02:00
|
|
|
|
/**
|
|
|
|
|
* Обработка удаления сообщения
|
2009-07-05 14:30:55 +03:00
|
|
|
|
*/
|
|
|
|
|
$this->Talk_DeleteTalkUserByArray($sTalkId,$this->oUserCurrent->getId());
|
2009-08-20 10:43:06 +03:00
|
|
|
|
func_header_location(Router::GetPath('talk'));
|
2009-02-01 19:40:06 +02:00
|
|
|
|
}
|
|
|
|
|
|
2008-09-21 09:36:57 +03:00
|
|
|
|
|
|
|
|
|
protected function EventInbox() {
|
|
|
|
|
/**
|
|
|
|
|
* Обработка удаления сообщений
|
|
|
|
|
*/
|
|
|
|
|
if (isset($_REQUEST['submit_talk_del'])) {
|
2009-05-21 17:50:55 +03:00
|
|
|
|
$this->Security_ValidateSendForm();
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$aTalksIdDel=getRequest('talk_del');
|
|
|
|
|
if (is_array($aTalksIdDel)) {
|
2009-07-05 14:30:55 +03:00
|
|
|
|
$this->Talk_DeleteTalkUserByArray(array_keys($aTalksIdDel),$this->oUserCurrent->getId());
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/**
|
2009-08-24 12:30:25 +03:00
|
|
|
|
* Передан ли номер страницы
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*/
|
2009-08-24 12:30:25 +03:00
|
|
|
|
$iPage=preg_match("/^page(\d+)$/i",$this->getParam(0),$aMatch) ? $aMatch[1] : 1;
|
|
|
|
|
/**
|
|
|
|
|
* Получаем список писем
|
|
|
|
|
*/
|
|
|
|
|
$aResult=$this->Talk_GetTalksByUserId(
|
|
|
|
|
$this->oUserCurrent->getId(),
|
|
|
|
|
$iPage,Config::Get('module.talk.per_page')
|
|
|
|
|
);
|
|
|
|
|
$aTalks=$aResult['collection'];
|
|
|
|
|
/**
|
|
|
|
|
* Формируем постраничность
|
|
|
|
|
*/
|
|
|
|
|
$aPaging=$this->Viewer_MakePaging(
|
|
|
|
|
$aResult['count'],$iPage,Config::Get('module.talk.per_page'),4,
|
|
|
|
|
Router::GetPath('talk').$this->sCurrentEvent
|
|
|
|
|
);
|
|
|
|
|
/**
|
|
|
|
|
* Загружаем переменные в шаблон
|
|
|
|
|
*/
|
|
|
|
|
$this->Viewer_Assign('aPaging',$aPaging);
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$this->Viewer_Assign('aTalks',$aTalks);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected function EventAdd() {
|
2009-04-11 14:50:42 +03:00
|
|
|
|
$this->Viewer_AddHtmlTitle($this->Lang_Get('talk_menu_inbox_create'));
|
2009-08-24 12:30:25 +03:00
|
|
|
|
$this->Viewer_AddBlocks('right',array('friends'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверяем отправлена ли форма с данными
|
|
|
|
|
*/
|
|
|
|
|
if (!isset($_REQUEST['submit_talk_add'])) {
|
|
|
|
|
return false;
|
2009-05-21 17:50:55 +03:00
|
|
|
|
}
|
|
|
|
|
$this->Security_ValidateSendForm();
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
|
|
|
|
* Проверка корректности полей формы
|
|
|
|
|
*/
|
|
|
|
|
if (!$this->checkTalkFields()) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2009-05-17 16:47:23 +03:00
|
|
|
|
|
2009-05-18 06:35:02 +03:00
|
|
|
|
if ($oTalk=$this->Talk_SendTalk($this->Text_Parser(getRequest('talk_title')),$this->Text_Parser(getRequest('talk_text')),$this->oUserCurrent,$this->aUsersId)) {
|
2009-08-20 10:43:06 +03:00
|
|
|
|
func_header_location(Router::GetPath('talk').'read/'.$oTalk->getId().'/');
|
2008-09-21 09:36:57 +03:00
|
|
|
|
} else {
|
2009-04-11 14:50:42 +03:00
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
return Router::Action('error');
|
2009-05-17 16:47:23 +03:00
|
|
|
|
}
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected function EventRead() {
|
|
|
|
|
/**
|
|
|
|
|
* Получаем номер сообщения из УРЛ и проверяем существует ли оно
|
|
|
|
|
*/
|
|
|
|
|
$sTalkId=$this->GetParam(0);
|
2009-07-05 00:41:42 +03:00
|
|
|
|
if (!($oTalk=$this->Talk_GetTalkById($sTalkId))) {
|
|
|
|
|
return parent::EventNotFound();
|
|
|
|
|
}
|
|
|
|
|
if (!($oTalkUser=$this->Talk_GetTalkUser($oTalk->getId(),$this->oUserCurrent->getId()))) {
|
2008-09-21 09:36:57 +03:00
|
|
|
|
return parent::EventNotFound();
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Обрабатываем добавление коммента
|
|
|
|
|
*/
|
2009-07-05 00:41:42 +03:00
|
|
|
|
if (isset($_REQUEST['submit_comment'])) {
|
|
|
|
|
$this->SubmitComment();
|
|
|
|
|
}
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
|
|
|
|
* Достаём комменты к сообщению
|
2009-07-05 00:41:42 +03:00
|
|
|
|
*/
|
|
|
|
|
$aReturn=$this->Comment_GetCommentsByTargetId($oTalk->getId(),'talk');
|
|
|
|
|
$iMaxIdComment=$aReturn['iMaxIdComment'];
|
|
|
|
|
$aComments=$aReturn['comments'];
|
|
|
|
|
/**
|
|
|
|
|
* Помечаем дату последнего просмотра
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*/
|
2009-07-05 00:41:42 +03:00
|
|
|
|
$oTalkUser->setDateLast(date("Y-m-d H:i:s"));
|
|
|
|
|
$oTalkUser->setCommentIdLast($iMaxIdComment);
|
|
|
|
|
$oTalkUser->setCommentCountNew(0);
|
|
|
|
|
$this->Talk_UpdateTalkUser($oTalkUser);
|
2009-07-05 14:30:55 +03:00
|
|
|
|
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$this->Viewer_AddHtmlTitle($oTalk->getTitle());
|
|
|
|
|
$this->Viewer_Assign('oTalk',$oTalk);
|
|
|
|
|
$this->Viewer_Assign('aComments',$aComments);
|
2009-07-05 00:41:42 +03:00
|
|
|
|
$this->Viewer_Assign('iMaxIdComment',$iMaxIdComment);
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected function checkTalkFields() {
|
|
|
|
|
$bOk=true;
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем есть ли заголовок
|
|
|
|
|
*/
|
|
|
|
|
if (!func_check(getRequest('talk_title'),'text',2,200)) {
|
2009-04-11 14:50:42 +03:00
|
|
|
|
$this->Message_AddError($this->Lang_Get('talk_create_title_error'),$this->Lang_Get('error'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$bOk=false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем есть ли содержание топика
|
|
|
|
|
*/
|
|
|
|
|
if (!func_check(getRequest('talk_text'),'text',2,3000)) {
|
2009-04-11 14:50:42 +03:00
|
|
|
|
$this->Message_AddError($this->Lang_Get('talk_create_text_error'),$this->Lang_Get('error'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$bOk=false;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* проверяем адресатов
|
|
|
|
|
*/
|
|
|
|
|
$sUsers=getRequest('talk_users');
|
|
|
|
|
$aUsers=explode(',',$sUsers);
|
|
|
|
|
$aUsersNew=array();
|
|
|
|
|
$this->aUsersId=array();
|
|
|
|
|
foreach ($aUsers as $sUser) {
|
|
|
|
|
$sUser=trim($sUser);
|
|
|
|
|
if ($sUser=='' or strtolower($sUser)==strtolower($this->oUserCurrent->getLogin())) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
if ($oUser=$this->User_GetUserByLogin($sUser) and $oUser->getActivate()==1) {
|
|
|
|
|
$this->aUsersId[]=$oUser->getId();
|
|
|
|
|
|
|
|
|
|
} else {
|
2009-04-11 14:50:42 +03:00
|
|
|
|
$this->Message_AddError($this->Lang_Get('talk_create_users_error_not_found').' «'.htmlspecialchars($sUser).'»',$this->Lang_Get('error'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$bOk=false;
|
|
|
|
|
}
|
|
|
|
|
$aUsersNew[]=$sUser;
|
|
|
|
|
}
|
|
|
|
|
if (!count($aUsersNew)) {
|
2009-04-11 14:50:42 +03:00
|
|
|
|
$this->Message_AddError($this->Lang_Get('talk_create_users_error'),$this->Lang_Get('error'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
$_REQUEST['talk_users']='';
|
|
|
|
|
$bOk=false;
|
|
|
|
|
} else {
|
|
|
|
|
$_REQUEST['talk_users']=join(',',$aUsersNew);
|
|
|
|
|
}
|
|
|
|
|
//$bOk=false;
|
|
|
|
|
return $bOk;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2009-07-05 00:41:42 +03:00
|
|
|
|
* Получение новых комментариев
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*
|
2009-07-05 00:41:42 +03:00
|
|
|
|
*/
|
|
|
|
|
protected function AjaxResponseComment() {
|
|
|
|
|
$this->Viewer_SetResponseAjax();
|
|
|
|
|
$idCommentLast=getRequest('idCommentLast');
|
|
|
|
|
/**
|
|
|
|
|
* Проверям авторизован ли пользователь
|
|
|
|
|
*/
|
|
|
|
|
if (!$this->User_IsAuthorization()) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем разговор
|
|
|
|
|
*/
|
|
|
|
|
if (!($oTalk=$this->Talk_GetTalkById(getRequest('idTarget')))) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!($oTalkUser=$this->Talk_GetTalkUser($oTalk->getId(),$this->oUserCurrent->getId()))) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$aReturn=$this->Comment_GetCommentsNewByTargetId($oTalk->getId(),'talk',$idCommentLast);
|
|
|
|
|
$iMaxIdComment=$aReturn['iMaxIdComment'];
|
|
|
|
|
|
|
|
|
|
$oTalkUser->setDateLast(date("Y-m-d H:i:s"));
|
|
|
|
|
if ($iMaxIdComment!=0) {
|
|
|
|
|
$oTalkUser->setCommentIdLast($iMaxIdComment);
|
|
|
|
|
}
|
|
|
|
|
$oTalkUser->setCommentCountNew(0);
|
|
|
|
|
$this->Talk_UpdateTalkUser($oTalkUser);
|
|
|
|
|
|
|
|
|
|
$aComments=array();
|
|
|
|
|
$aCmts=$aReturn['comments'];
|
|
|
|
|
if ($aCmts and is_array($aCmts)) {
|
|
|
|
|
foreach ($aCmts as $aCmt) {
|
|
|
|
|
$aComments[]=array(
|
|
|
|
|
'html' => $aCmt['html'],
|
|
|
|
|
'idParent' => $aCmt['obj']->getPid(),
|
|
|
|
|
'id' => $aCmt['obj']->getId(),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->Viewer_AssingAjax('aComments',$aComments);
|
|
|
|
|
$this->Viewer_AssingAjax('iMaxIdComment',$iMaxIdComment);
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Обработка добавление комментария к топику через ajax
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function AjaxAddComment() {
|
|
|
|
|
$this->Viewer_SetResponseAjax();
|
|
|
|
|
$this->SubmitComment();
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Обработка добавление комментария к топику
|
|
|
|
|
*
|
2008-09-21 09:36:57 +03:00
|
|
|
|
* @return unknown
|
|
|
|
|
*/
|
2009-07-05 00:41:42 +03:00
|
|
|
|
protected function SubmitComment() {
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
2009-07-05 00:41:42 +03:00
|
|
|
|
* Проверям авторизован ли пользователь
|
2008-09-21 09:36:57 +03:00
|
|
|
|
*/
|
2009-07-05 00:41:42 +03:00
|
|
|
|
if (!$this->User_IsAuthorization()) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем разговор
|
|
|
|
|
*/
|
|
|
|
|
if (!($oTalk=$this->Talk_GetTalkById(getRequest('cmt_target_id')))) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!($oTalkUser=$this->Talk_GetTalkUser($oTalk->getId(),$this->oUserCurrent->getId()))) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверяем текст комментария
|
|
|
|
|
*/
|
|
|
|
|
$sText=$this->Text_Parser(getRequest('comment_text'));
|
|
|
|
|
if (!func_check($sText,'text',2,3000)) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('talk_comment_add_text_error'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверям на какой коммент отвечаем
|
|
|
|
|
*/
|
|
|
|
|
$sParentId=(int)getRequest('reply');
|
|
|
|
|
if (!func_check($sParentId,'id')) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
$oCommentParent=null;
|
|
|
|
|
if ($sParentId!=0) {
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
2009-07-05 00:41:42 +03:00
|
|
|
|
* Проверяем существует ли комментарий на который отвечаем
|
|
|
|
|
*/
|
|
|
|
|
if (!($oCommentParent=$this->Comment_GetCommentById($sParentId))) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
/**
|
2009-07-05 00:41:42 +03:00
|
|
|
|
* Проверяем из одного топика ли новый коммент и тот на который отвечаем
|
|
|
|
|
*/
|
|
|
|
|
if ($oCommentParent->getTargetId()!=$oTalk->getId()) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
2009-07-05 00:41:42 +03:00
|
|
|
|
} else {
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
2009-07-05 00:41:42 +03:00
|
|
|
|
* Корневой комментарий
|
|
|
|
|
*/
|
|
|
|
|
$sParentId=null;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Проверка на дублирующий коммент
|
|
|
|
|
*/
|
|
|
|
|
if ($this->Comment_GetCommentUnique($oTalk->getId(),'talk',$this->oUserCurrent->getId(),$sParentId,md5($sText))) {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('topic_comment_spam'),$this->Lang_Get('error'));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Создаём коммент
|
|
|
|
|
*/
|
|
|
|
|
$oCommentNew=new CommentEntity_Comment();
|
|
|
|
|
$oCommentNew->setTargetId($oTalk->getId());
|
|
|
|
|
$oCommentNew->setTargetType('talk');
|
|
|
|
|
$oCommentNew->setUserId($this->oUserCurrent->getId());
|
|
|
|
|
$oCommentNew->setText($sText);
|
|
|
|
|
$oCommentNew->setDate(date("Y-m-d H:i:s"));
|
|
|
|
|
$oCommentNew->setUserIp(func_getIp());
|
|
|
|
|
$oCommentNew->setPid($sParentId);
|
|
|
|
|
$oCommentNew->setTextHash(md5($sText));
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Добавляем коммент
|
|
|
|
|
*/
|
|
|
|
|
if ($this->Comment_AddComment($oCommentNew)) {
|
|
|
|
|
$this->Viewer_AssingAjax('sCommentId',$oCommentNew->getId());
|
|
|
|
|
$oTalk->setDateLast(date("Y-m-d H:i:s"));
|
|
|
|
|
$oTalk->setCountComment($oTalk->getCountComment()+1);
|
|
|
|
|
$this->Talk_UpdateTalk($oTalk);
|
2008-09-21 09:36:57 +03:00
|
|
|
|
/**
|
2009-07-05 00:41:42 +03:00
|
|
|
|
* Отсылаем уведомления всем адресатам
|
|
|
|
|
*/
|
|
|
|
|
$aUsersTalk=$this->Talk_GetUsersTalk($oTalk->getId());
|
|
|
|
|
foreach ($aUsersTalk as $oUserTalk) {
|
|
|
|
|
if ($oUserTalk->getId()!=$oCommentNew->getUserId()) {
|
|
|
|
|
$this->Notify_SendTalkCommentNew($oUserTalk,$this->oUserCurrent,$oTalk,$oCommentNew);
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
}
|
2009-07-05 00:41:42 +03:00
|
|
|
|
/**
|
|
|
|
|
* Увеличиваем число новых комментов
|
|
|
|
|
*/
|
|
|
|
|
$this->Talk_increaseCountCommentNew($oTalk->getId(),$oCommentNew->getUserId());
|
|
|
|
|
} else {
|
|
|
|
|
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
2009-07-05 00:41:42 +03:00
|
|
|
|
}
|
2008-09-21 09:36:57 +03:00
|
|
|
|
}
|
|
|
|
|
?>
|