本文整理汇总了PHP中CIMNotify::GetFormatNotify方法的典型用法代码示例。如果您正苦于以下问题:PHP CIMNotify::GetFormatNotify方法的具体用法?PHP CIMNotify::GetFormatNotify怎么用?PHP CIMNotify::GetFormatNotify使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CIMNotify
的用法示例。
在下文中一共展示了CIMNotify::GetFormatNotify方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Add
//.........这里部分代码省略.........
if (isset($arFields['NOTIFY_TAG']))
$arParams['NOTIFY_TAG'] = $arFields['NOTIFY_TAG'];
if (isset($arFields['NOTIFY_SUB_TAG']))
$arParams['NOTIFY_SUB_TAG'] = $arFields['NOTIFY_SUB_TAG'];
if (isset($arFields['NOTIFY_TITLE']) && strlen(trim($arFields['NOTIFY_TITLE']))>0)
$arParams['NOTIFY_TITLE'] = trim($arFields['NOTIFY_TITLE']);
if ($arParams['NOTIFY_TYPE'] == IM_NOTIFY_CONFIRM)
{
if (isset($arFields['NOTIFY_BUTTONS']))
{
foreach ($arFields['NOTIFY_BUTTONS'] as $key => $arButtons)
{
if (is_array($arButtons))
{
if (isset($arButtons['TITLE']) && strlen($arButtons['TITLE']) > 0
&& isset($arButtons['VALUE']) && strlen($arButtons['VALUE']) > 0
&& isset($arButtons['TYPE']) && strlen($arButtons['TYPE']) > 0)
{
$arButtons['TITLE'] = htmlspecialcharsbx($arButtons['TITLE']);
$arButtons['VALUE'] = htmlspecialcharsbx($arButtons['VALUE']);
$arButtons['TYPE'] = htmlspecialcharsbx($arButtons['TYPE']);
$arFields['NOTIFY_BUTTONS'][$key] = $arButtons;
}
else
unset($arFields['NOTIFY_BUTTONS'][$key]);
}
else
unset($arFields['NOTIFY_BUTTONS'][$key]);
}
}
else
{
$arFields['NOTIFY_BUTTONS'] = Array(
Array('TITLE' => GetMessage('IM_ERROR_BUTTON_ACCEPT'), 'VALUE' => 'Y', 'TYPE' => 'accept'),
Array('TITLE' => GetMessage('IM_ERROR_BUTTON_CANCEL'), 'VALUE' => 'N', 'TYPE' => 'cancel'),
);
}
$arParams['NOTIFY_BUTTONS'] = serialize($arFields["NOTIFY_BUTTONS"]);
if (isset($arParams['NOTIFY_TAG']) && strlen($arParams['NOTIFY_TAG'])>0)
CIMNotify::DeleteByTag($arParams['NOTIFY_TAG']);
}
$messageID = IntVal($DB->Add("b_im_message", $arParams, Array('MESSAGE', 'MESSAGE_OUT', 'NOTIFY_BUTTONS')));
if ($messageID <= 0)
return false;
if ($sendToSite)
CIMMessenger::SpeedFileDelete($arFields['TO_USER_ID'], IM_SPEED_NOTIFY);
if (!$bConvert)
{
//CUserCounter::Increment($arFields['TO_USER_ID'], 'im_notify_v2', '**', false);
$strSql = "UPDATE b_im_relation SET STATUS = '".IM_STATUS_UNREAD."' WHERE USER_ID = ".intval($arFields['TO_USER_ID'])." AND MESSAGE_TYPE = '".IM_MESSAGE_SYSTEM."' AND CHAT_ID = ".$chatId;
$DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__);
if (CModule::IncludeModule("pull"))
{
CPullStack::AddByUser(intval($arFields['TO_USER_ID']), Array(
'module_id' => 'im',
'command' => 'notify',
'params' => CIMNotify::GetFormatNotify(Array(
'ID' => $messageID,
'DATE_CREATE' => time(),
'FROM_USER_ID' => intval($arFields['FROM_USER_ID']),
'MESSAGE' => $arParams['MESSAGE'],
'NOTIFY_MODULE' => $arParams['NOTIFY_MODULE'],
'NOTIFY_EVENT' => $arParams['NOTIFY_EVENT'],
'NOTIFY_TAG' => $arParams['NOTIFY_TAG'],
'NOTIFY_TYPE' => $arParams['NOTIFY_TYPE'],
'NOTIFY_BUTTONS' => isset($arParams['NOTIFY_BUTTONS'])? $arParams['NOTIFY_BUTTONS']: serialize(Array()),
'NOTIFY_TITLE' => isset($arParams['NOTIFY_TITLE'])? $arParams['NOTIFY_TITLE']: '',
'NOTIFY_SILENT' => $sendToSite? false: true,
)),
));
self::SendBadges($arFields['TO_USER_ID']);
}
foreach(GetModuleEvents("im", "OnAfterNotifyAdd", true) as $arEvent)
ExecuteModuleEventEx($arEvent, array(intval($messageID), $arFields));
}
return $messageID;
}
else
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_CREATE"), "CHAT_ID");
return false;
}
}
else
{
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_TYPE"), "MESSAGE_TYPE");
return false;
}
return false;
}
示例2: Add
//.........这里部分代码省略.........
return false;
}
IM\RelationTable::add(array("CHAT_ID" => $chatId, "MESSAGE_TYPE" => IM_MESSAGE_SYSTEM, "USER_ID" => intval($arFields['TO_USER_ID']), "STATUS" => $bConvert ? 2 : 0));
}
if ($chatId > 0) {
$arParams = array();
$arParams['CHAT_ID'] = $chatId;
$arParams['AUTHOR_ID'] = intval($arFields['AUTHOR_ID']);
$arParams['MESSAGE'] = trim($arFields['MESSAGE']);
$arParams['MESSAGE_OUT'] = trim($arFields['MESSAGE_OUT']);
$arParams['NOTIFY_TYPE'] = intval($arFields['NOTIFY_TYPE']);
$arParams['NOTIFY_MODULE'] = $arFields['NOTIFY_MODULE'];
$arParams['NOTIFY_EVENT'] = $arFields['NOTIFY_EVENT'];
//if (strlen($arParams['MESSAGE']) <= 0 && strlen($arParams['MESSAGE_OUT']) <= 0)
// return false;
$sendToSite = true;
if ($arParams['NOTIFY_TYPE'] != IM_NOTIFY_CONFIRM) {
$sendToSite = CIMSettings::GetNotifyAccess($arFields["TO_USER_ID"], $arFields["NOTIFY_MODULE"], $arFields["NOTIFY_EVENT"], CIMSettings::CLIENT_SITE);
}
if (!$sendToSite) {
$arParams['NOTIFY_READ'] = 'Y';
}
if (isset($arFields['IMPORT_ID'])) {
$arParams['IMPORT_ID'] = intval($arFields['IMPORT_ID']);
}
if (isset($arFields['MESSAGE_DATE'])) {
$arParams['DATE_CREATE'] = $arFields['MESSAGE_DATE'];
}
if (isset($arFields['EMAIL_TEMPLATE']) && strlen(trim($arFields['EMAIL_TEMPLATE'])) > 0) {
$arParams['EMAIL_TEMPLATE'] = trim($arFields['EMAIL_TEMPLATE']);
}
$arParams['NOTIFY_TAG'] = isset($arFields['NOTIFY_TAG']) ? $arFields['NOTIFY_TAG'] : '';
$arParams['NOTIFY_SUB_TAG'] = isset($arFields['NOTIFY_SUB_TAG']) ? $arFields['NOTIFY_SUB_TAG'] : '';
if (isset($arFields['NOTIFY_TITLE']) && strlen(trim($arFields['NOTIFY_TITLE'])) > 0) {
$arParams['NOTIFY_TITLE'] = trim($arFields['NOTIFY_TITLE']);
}
if ($arParams['NOTIFY_TYPE'] == IM_NOTIFY_CONFIRM) {
if (isset($arFields['NOTIFY_BUTTONS'])) {
foreach ($arFields['NOTIFY_BUTTONS'] as $key => $arButtons) {
if (is_array($arButtons)) {
if (isset($arButtons['TITLE']) && strlen($arButtons['TITLE']) > 0 && isset($arButtons['VALUE']) && strlen($arButtons['VALUE']) > 0 && isset($arButtons['TYPE']) && strlen($arButtons['TYPE']) > 0) {
$arButtons['TITLE'] = htmlspecialcharsbx($arButtons['TITLE']);
$arButtons['VALUE'] = htmlspecialcharsbx($arButtons['VALUE']);
$arButtons['TYPE'] = htmlspecialcharsbx($arButtons['TYPE']);
$arFields['NOTIFY_BUTTONS'][$key] = $arButtons;
} else {
unset($arFields['NOTIFY_BUTTONS'][$key]);
}
} else {
unset($arFields['NOTIFY_BUTTONS'][$key]);
}
}
} else {
$arFields['NOTIFY_BUTTONS'] = array(array('TITLE' => GetMessage('IM_ERROR_BUTTON_ACCEPT'), 'VALUE' => 'Y', 'TYPE' => 'accept'), array('TITLE' => GetMessage('IM_ERROR_BUTTON_CANCEL'), 'VALUE' => 'N', 'TYPE' => 'cancel'));
}
$arParams['NOTIFY_BUTTONS'] = serialize($arFields["NOTIFY_BUTTONS"]);
if (isset($arParams['NOTIFY_TAG']) && strlen($arParams['NOTIFY_TAG']) > 0) {
CIMNotify::DeleteByTag($arParams['NOTIFY_TAG']);
}
}
if (!$bConvert) {
if (isset($arFields['PUSH_MESSAGE']) && CIMSettings::GetNotifyAccess($arFields["TO_USER_ID"], $arFields['NOTIFY_MODULE'], $arFields['NOTIFY_EVENT'], CIMSettings::CLIENT_PUSH) && CModule::IncludeModule('pull')) {
$CPushManager = new CPushManager();
$CPushManager->AddQueue(array('USER_ID' => $arFields['TO_USER_ID'], 'MESSAGE' => str_replace("\n", " ", trim($arFields['PUSH_MESSAGE'])), 'PARAMS' => isset($arFields['PUSH_PARAMS']) ? $arFields['PUSH_PARAMS'] : '', 'TAG' => $arParams['NOTIFY_TAG'], 'SUB_TAG' => $arParams['NOTIFY_SUB_TAG'], 'APP_ID' => isset($arParams['PUSH_APP_ID']) ? $arParams['PUSH_APP_ID'] : ''));
}
foreach (GetModuleEvents("im", "OnAfterNotifyAdd", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array(intval($messageID), $arFields));
}
}
if (!$sendToSite) {
return 0;
}
$result = IM\MessageTable::add($arParams);
$messageID = IntVal($result->getId());
if ($messageID <= 0) {
return false;
}
IM\ChatTable::update($chatId, array('LAST_MESSAGE_ID' => $messageID));
CIMMessenger::SpeedFileDelete($arFields['TO_USER_ID'], IM_SPEED_NOTIFY);
if (!$bConvert) {
//CUserCounter::Increment($arFields['TO_USER_ID'], 'im_notify_v2', '**', false);
$strSql = "UPDATE b_im_relation SET STATUS = '" . IM_STATUS_UNREAD . "' WHERE USER_ID = " . intval($arFields['TO_USER_ID']) . " AND MESSAGE_TYPE = '" . IM_MESSAGE_SYSTEM . "' AND CHAT_ID = " . $chatId;
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
if (CModule::IncludeModule("pull")) {
CPullStack::AddByUser(intval($arFields['TO_USER_ID']), array('module_id' => 'im', 'command' => 'notify', 'params' => CIMNotify::GetFormatNotify(array('ID' => $messageID, 'DATE_CREATE' => time(), 'FROM_USER_ID' => intval($arFields['FROM_USER_ID']), 'MESSAGE' => $arParams['MESSAGE'], 'NOTIFY_MODULE' => $arParams['NOTIFY_MODULE'], 'NOTIFY_EVENT' => $arParams['NOTIFY_EVENT'], 'NOTIFY_TAG' => $arParams['NOTIFY_TAG'], 'NOTIFY_TYPE' => $arParams['NOTIFY_TYPE'], 'NOTIFY_BUTTONS' => isset($arParams['NOTIFY_BUTTONS']) ? $arParams['NOTIFY_BUTTONS'] : serialize(array()), 'NOTIFY_TITLE' => isset($arParams['NOTIFY_TITLE']) ? $arParams['NOTIFY_TITLE'] : ''))));
self::SendBadges($arFields['TO_USER_ID']);
}
}
return $messageID;
} else {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_CREATE"), "CHAT_ID");
return false;
}
} else {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_TYPE"), "MESSAGE_TYPE");
return false;
}
}
}
}
示例3: Add
//.........这里部分代码省略.........
}
return $messageID;
} else {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_CREATE"), "CHAT_ID");
return false;
}
} else {
if ($arFields['MESSAGE_TYPE'] == IM_MESSAGE_SYSTEM) {
$chatId = 0;
$strSql = "\n\t\t\t\tSELECT CHAT_ID\n\t\t\t\tFROM b_im_relation\n\t\t\t\tWHERE USER_ID = " . intval($arFields['TO_USER_ID']) . " AND MESSAGE_TYPE = '" . IM_MESSAGE_SYSTEM . "'";
$dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
if ($arRes = $dbRes->Fetch()) {
$chatId = intval($arRes['CHAT_ID']);
} else {
$chatId = IntVal($DB->Add("b_im_chat", array('AUTHOR_ID' => intval($arFields['TO_USER_ID'])), array()));
if ($chatId <= 0) {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_CREATE"), "CHAT_ID");
return false;
}
$strSql = "INSERT INTO b_im_relation (CHAT_ID, MESSAGE_TYPE, USER_ID, STATUS) VALUES (" . $chatId . ",'" . IM_MESSAGE_SYSTEM . "'," . intval($arFields['TO_USER_ID']) . ", " . ($bConvert ? 2 : 0) . ")";
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
}
if ($chatId > 0) {
$arParams = array();
$arParams['CHAT_ID'] = $chatId;
$arParams['AUTHOR_ID'] = intval($arFields['AUTHOR_ID']);
$arParams['MESSAGE'] = trim($arFields['MESSAGE']);
$arParams['MESSAGE_OUT'] = trim($arFields['MESSAGE_OUT']);
$arParams['NOTIFY_TYPE'] = intval($arFields['NOTIFY_TYPE']);
$arParams['NOTIFY_MODULE'] = $arFields['NOTIFY_MODULE'];
$arParams['NOTIFY_EVENT'] = $arFields['NOTIFY_EVENT'];
if (isset($arFields['IMPORT_ID'])) {
$arParams['IMPORT_ID'] = intval($arFields['IMPORT_ID']);
}
if (isset($arFields['MESSAGE_DATE'])) {
$arParams['DATE_CREATE'] = $arFields['MESSAGE_DATE'];
} else {
$arParams['~DATE_CREATE'] = $DB->CurrentTimeFunction();
}
if (isset($arFields['EMAIL_TEMPLATE']) && strlen(trim($arFields['EMAIL_TEMPLATE'])) > 0) {
$arParams['EMAIL_TEMPLATE'] = trim($arFields['EMAIL_TEMPLATE']);
}
if (isset($arFields['NOTIFY_TAG'])) {
$arParams['NOTIFY_TAG'] = $arFields['NOTIFY_TAG'];
}
if (isset($arFields['NOTIFY_SUB_TAG'])) {
$arParams['NOTIFY_SUB_TAG'] = $arFields['NOTIFY_SUB_TAG'];
}
if (isset($arFields['NOTIFY_TITLE']) && strlen(trim($arFields['NOTIFY_TITLE'])) > 0) {
$arParams['NOTIFY_TITLE'] = trim($arFields['NOTIFY_TITLE']);
}
if ($arParams['NOTIFY_TYPE'] == IM_NOTIFY_CONFIRM) {
if (isset($arFields['NOTIFY_BUTTONS'])) {
foreach ($arFields['NOTIFY_BUTTONS'] as $key => $arButtons) {
if (is_array($arButtons)) {
if (isset($arButtons['TITLE']) && strlen($arButtons['TITLE']) > 0 && isset($arButtons['VALUE']) && strlen($arButtons['VALUE']) > 0 && isset($arButtons['TYPE']) && strlen($arButtons['TYPE']) > 0) {
$arButtons['TITLE'] = htmlspecialcharsbx($arButtons['TITLE']);
$arButtons['VALUE'] = htmlspecialcharsbx($arButtons['VALUE']);
$arButtons['TYPE'] = htmlspecialcharsbx($arButtons['TYPE']);
$arFields['NOTIFY_BUTTONS'][$key] = $arButtons;
} else {
unset($arFields['NOTIFY_BUTTONS'][$key]);
}
} else {
unset($arFields['NOTIFY_BUTTONS'][$key]);
}
}
} else {
$arFields['NOTIFY_BUTTONS'] = array(array('TITLE' => GetMessage('IM_ERROR_BUTTON_ACCEPT'), 'VALUE' => 'Y', 'TYPE' => 'accept'), array('TITLE' => GetMessage('IM_ERROR_BUTTON_CANCEL'), 'VALUE' => 'N', 'TYPE' => 'cancel'));
}
$arParams['NOTIFY_BUTTONS'] = serialize($arFields["NOTIFY_BUTTONS"]);
if (isset($arParams['NOTIFY_TAG']) && strlen($arParams['NOTIFY_TAG']) > 0) {
CIMNotify::DeleteByTag($arParams['NOTIFY_TAG']);
}
}
$messageID = IntVal($DB->Add("b_im_message", $arParams, array('MESSAGE', 'MESSAGE_OUT', 'NOTIFY_BUTTONS')));
CIMMessenger::SpeedFileDelete(intval($arFields['TO_USER_ID']), IM_SPEED_NOTIFY);
if (!$bConvert) {
if (CModule::IncludeModule("pull")) {
CPullStack::AddByUser(intval($arFields['TO_USER_ID']), array('module_id' => 'im', 'command' => 'notify', 'params' => CIMNotify::GetFormatNotify(array('ID' => $messageID, 'TIMESTAMP' => time(), 'FROM_USER_ID' => intval($arFields['FROM_USER_ID']), 'MESSAGE' => $arParams['MESSAGE'], 'NOTIFY_TAG' => $arParams['NOTIFY_TAG'], 'NOTIFY_TYPE' => $arParams['NOTIFY_TYPE'], 'NOTIFY_BUTTONS' => isset($arParams['NOTIFY_BUTTONS']) ? $arParams['NOTIFY_BUTTONS'] : serialize(array()), 'NOTIFY_TITLE' => isset($arParams['NOTIFY_TITLE']) ? $arParams['NOTIFY_TITLE'] : ''))));
}
$strSql = "\n\t\t\t\t\t\tUPDATE b_im_relation SET STATUS = '" . IM_STATUS_UNREAD . "'\n\t\t\t\t\t\tWHERE USER_ID = " . intval($arFields['TO_USER_ID']) . " AND MESSAGE_TYPE = '" . IM_MESSAGE_SYSTEM . "' AND CHAT_ID = " . $chatId;
$dbRes = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
foreach (GetModuleEvents("im", "OnAfterNotifyAdd", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array(intval($messageID), $arFields));
}
}
return $messageID;
} else {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_CREATE"), "CHAT_ID");
return false;
}
} else {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_TYPE"), "MESSAGE_TYPE");
return false;
}
}
}
return false;
}
示例4: Add
//.........这里部分代码省略.........
$arParams['NOTIFY_MODULE'] = $arFields['NOTIFY_MODULE'];
$arParams['NOTIFY_EVENT'] = $arFields['NOTIFY_EVENT'];
//if (strlen($arParams['MESSAGE']) <= 0 && strlen($arParams['MESSAGE_OUT']) <= 0)
// return false;
$sendToSite = true;
if ($arParams['NOTIFY_TYPE'] != IM_NOTIFY_CONFIRM) {
$sendToSite = CIMSettings::GetNotifyAccess($arFields["TO_USER_ID"], $arFields["NOTIFY_MODULE"], $arFields["NOTIFY_EVENT"], CIMSettings::CLIENT_SITE);
}
if (!$sendToSite) {
$arParams['NOTIFY_READ'] = 'Y';
}
if (isset($arFields['IMPORT_ID'])) {
$arParams['IMPORT_ID'] = intval($arFields['IMPORT_ID']);
}
if (isset($arFields['MESSAGE_DATE'])) {
$arParams['DATE_CREATE'] = $arFields['MESSAGE_DATE'];
}
if (isset($arFields['EMAIL_TEMPLATE']) && strlen(trim($arFields['EMAIL_TEMPLATE'])) > 0) {
$arParams['EMAIL_TEMPLATE'] = trim($arFields['EMAIL_TEMPLATE']);
}
$arParams['NOTIFY_TAG'] = isset($arFields['NOTIFY_TAG']) ? $arFields['NOTIFY_TAG'] : '';
$arParams['NOTIFY_SUB_TAG'] = isset($arFields['NOTIFY_SUB_TAG']) ? $arFields['NOTIFY_SUB_TAG'] : '';
if (isset($arFields['NOTIFY_TITLE']) && strlen(trim($arFields['NOTIFY_TITLE'])) > 0) {
$arParams['NOTIFY_TITLE'] = trim($arFields['NOTIFY_TITLE']);
}
if ($arParams['NOTIFY_TYPE'] == IM_NOTIFY_CONFIRM) {
if (isset($arFields['NOTIFY_BUTTONS'])) {
foreach ($arFields['NOTIFY_BUTTONS'] as $key => $arButtons) {
if (is_array($arButtons)) {
if (isset($arButtons['TITLE']) && strlen($arButtons['TITLE']) > 0 && isset($arButtons['VALUE']) && strlen($arButtons['VALUE']) > 0 && isset($arButtons['TYPE']) && strlen($arButtons['TYPE']) > 0) {
$arButtons['TITLE'] = htmlspecialcharsbx($arButtons['TITLE']);
$arButtons['VALUE'] = htmlspecialcharsbx($arButtons['VALUE']);
$arButtons['TYPE'] = htmlspecialcharsbx($arButtons['TYPE']);
$arFields['NOTIFY_BUTTONS'][$key] = $arButtons;
} else {
unset($arFields['NOTIFY_BUTTONS'][$key]);
}
} else {
unset($arFields['NOTIFY_BUTTONS'][$key]);
}
}
} else {
$arFields['NOTIFY_BUTTONS'] = array(array('TITLE' => GetMessage('IM_ERROR_BUTTON_ACCEPT'), 'VALUE' => 'Y', 'TYPE' => 'accept'), array('TITLE' => GetMessage('IM_ERROR_BUTTON_CANCEL'), 'VALUE' => 'N', 'TYPE' => 'cancel'));
}
$arParams['NOTIFY_BUTTONS'] = serialize($arFields["NOTIFY_BUTTONS"]);
if (isset($arParams['NOTIFY_TAG']) && strlen($arParams['NOTIFY_TAG']) > 0) {
CIMNotify::DeleteByTag($arParams['NOTIFY_TAG']);
}
}
if ($sendToSite) {
$result = IM\MessageTable::add($arParams);
$messageID = IntVal($result->getId());
if ($messageID <= 0) {
return false;
}
} else {
$messageID = time();
}
if (!$bConvert) {
if (CModule::IncludeModule('pull')) {
$CPushManager = new CPushManager();
if (isset($arFields['PUSH_MESSAGE']) && CIMSettings::GetNotifyAccess($arFields["TO_USER_ID"], $arFields['NOTIFY_MODULE'], $arFields['NOTIFY_EVENT'], CIMSettings::CLIENT_PUSH) && CModule::IncludeModule('pull')) {
$CPushManager->AddQueue(array('USER_ID' => $arFields['TO_USER_ID'], 'MESSAGE' => str_replace("\n", " ", trim($arFields['PUSH_MESSAGE'])), 'PARAMS' => isset($arFields['PUSH_PARAMS']) ? $arFields['PUSH_PARAMS'] : '', 'TAG' => $arParams['NOTIFY_TAG'], 'SUB_TAG' => $arParams['NOTIFY_SUB_TAG'], 'APP_ID' => isset($arParams['PUSH_APP_ID']) ? $arParams['PUSH_APP_ID'] : ''));
} else {
$CPushManager->AddQueue(array('USER_ID' => $arFields['TO_USER_ID'], 'APP_ID' => isset($arParams['PUSH_APP_ID']) ? $arParams['PUSH_APP_ID'] : ''));
}
}
foreach (GetModuleEvents("im", "OnAfterNotifyAdd", true) as $arEvent) {
ExecuteModuleEventEx($arEvent, array(intval($messageID), $arFields));
}
}
if (!$sendToSite) {
return false;
}
if (!empty($arFields['PARAMS'])) {
CIMMessageParam::Set($messageID, $arFields['PARAMS']);
}
IM\ChatTable::update($chatId, array('LAST_MESSAGE_ID' => $messageID));
CIMMessenger::SpeedFileDelete($arFields['TO_USER_ID'], IM_SPEED_NOTIFY);
if (!$bConvert) {
//CUserCounter::Increment($arFields['TO_USER_ID'], 'im_notify_v2', '**', false);
$strSql = "UPDATE b_im_relation SET STATUS = '" . IM_STATUS_UNREAD . "' WHERE USER_ID = " . intval($arFields['TO_USER_ID']) . " AND MESSAGE_TYPE = '" . IM_MESSAGE_SYSTEM . "' AND CHAT_ID = " . $chatId;
$DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
if (CModule::IncludeModule("pull")) {
CPullStack::AddByUser(intval($arFields['TO_USER_ID']), array('module_id' => 'im', 'command' => 'notify', 'params' => CIMNotify::GetFormatNotify(array('ID' => $messageID, 'DATE_CREATE' => time(), 'FROM_USER_ID' => intval($arFields['FROM_USER_ID']), 'MESSAGE' => $arParams['MESSAGE'], 'PARAMS' => self::PrepareParamsForPull($arFields['PARAMS']), 'NOTIFY_MODULE' => $arParams['NOTIFY_MODULE'], 'NOTIFY_EVENT' => $arParams['NOTIFY_EVENT'], 'NOTIFY_TAG' => $arParams['NOTIFY_TAG'], 'NOTIFY_TYPE' => $arParams['NOTIFY_TYPE'], 'NOTIFY_BUTTONS' => isset($arParams['NOTIFY_BUTTONS']) ? $arParams['NOTIFY_BUTTONS'] : serialize(array()), 'NOTIFY_TITLE' => isset($arParams['NOTIFY_TITLE']) ? $arParams['NOTIFY_TITLE'] : ''))));
self::SendBadges($arFields['TO_USER_ID']);
}
}
return $messageID;
} else {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_CREATE"), "CHAT_ID");
return false;
}
} else {
$GLOBALS["APPLICATION"]->ThrowException(GetMessage("IM_ERROR_MESSAGE_TYPE"), "MESSAGE_TYPE");
return false;
}
}
}
}