- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_notify.php
- Класс: CIMNotify
- Вызов: CIMNotify::Answer
public function Answer($id, $text)
{
global $DB;
$id = intval($id);
$text = trim($text);
if ($id <= 0 || $text == '')
return false;
$strSql = "
SELECT M.*
FROM b_im_relation R, b_im_message M
WHERE M.ID = ".$id." AND R.USER_ID = ".$this->user_id." AND R.MESSAGE_TYPE = '".IM_MESSAGE_SYSTEM."' AND R.CHAT_ID = M.CHAT_ID
";
$dbRes = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__);
if (!($arRes = $dbRes->Fetch()))
return false;
$mention = BitrixImUser::getInstance($arRes['AUTHOR_ID']);
if ($mention->isExists())
{
$text = '[USER='.$mention->getId().']'.$mention->getFullName(false).'[/USER] '.$text;
}
$CBXSanitizer = new CBXSanitizer;
$CBXSanitizer->AddTags(array(
'a' => array('href','style', 'target'),
'b' => array(), 'u' => array(),
'i' => array(), 'br' => array(),
'span' => array('style'),
));
foreach(GetModuleEvents("im", "OnAnswerNotify", true) as $arEvent)
{
$resultEvent = ExecuteModuleEventEx($arEvent, Array($arRes['NOTIFY_MODULE'], $arRes['NOTIFY_TAG'], $text, $arRes));
if($resultEvent===false || is_array($resultEvent) && $resultEvent['result'] === false)
{
$resultMessages = Array();
if (is_array($resultEvent) && $resultEvent['text'])
{
$resultMessages[] = $CBXSanitizer->SanitizeHtml($resultEvent['text']);
}
break;
}
else if (is_array($resultEvent) && $resultEvent['text'] || is_string($resultEvent) && $resultEvent <> '')
{
$resultMessages[] = $CBXSanitizer->SanitizeHtml(is_string($resultEvent)? $resultEvent: $resultEvent['text']);
}
}
if (empty($resultMessages))
{
$resultMessages[] = GetMessage('IM_ANSWER_DONE');
}
return $resultMessages;
}