• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_notify.php
  • Класс: CIMNotify
  • Вызов: CIMNotify::ConfirmBySubTag
static function ConfirmBySubTag($notifySubTag, $resultMessages)
{
	global $DB;

	$notifySubTag = (string)$notifySubTag;
	if ($notifySubTag == '')
		return false;

	$dbRes = $DB->Query("
		SELECT M.ID, M.NOTIFY_TYPE, R.USER_ID, R.STATUS, R.CHAT_ID 
		FROM b_im_relation R, b_im_message M 
		WHERE M.CHAT_ID = R.CHAT_ID AND M.NOTIFY_SUB_TAG = '".$DB->ForSQL($notifySubTag)."'", false, "File: ".__FILE__."
Line: ".__LINE__); $arUsers = Array(); $arChatId = Array(); $messages = Array(); while ($row = $dbRes->Fetch()) { $messages[$row['ID']] = $row; $arUsers[$row['USER_ID']] = $row['USER_ID']; $arChatId[$row['CHAT_ID']] = $row['CHAT_ID']; } $pullActive = false; if (CModule::IncludeModule("pull")) $pullActive = true; $arUsersSend = Array(); foreach ($arUsers as $userId => $count) { CIMMessenger::SpeedFileDelete($userId, IM_SPEED_NOTIFY); if ($count > 0) { $arUsersSend[] = $userId; } if ($pullActive) { CPushManager::DeleteFromQueueBySubTag($userId, $notifySubTag); } } $counters = self::GetCounters(array_keys($arChatId)); if (count($messages) > 0) { foreach ($messages as $messageId => $message) { self::Delete($messageId); if ($pullActive) { BitrixPullEvent::add($message['USER_ID'], Array( 'module_id' => 'im', 'command' => 'notifyConfirm', 'params' => Array( 'id' => $messageId, 'chatId' => $message['CHAT_ID'], 'confirmMessages' => $resultMessages, 'counter' => $counters[$message['CHAT_ID']], ), 'extra' => BitrixImCommon::getPullExtra() )); } } } return true; }