function Add($arFields) { global $DB; if (IsModuleInstalled("im") && CModule::IncludeModule("im")) { if ($arFields["MESSAGE_TYPE"] == SONET_MESSAGE_SYSTEM) { if (!(isset($arFields["EMAIL_TEMPLATE"]) && strlen($arFields["EMAIL_TEMPLATE"]) > 0)) { $arFields["EMAIL_TEMPLATE"] = "SONET_NEW_MESSAGE"; } $ID = CIMNotify::Add($arFields); return $ID; } else { CIMMessenger::SpeedFileDelete($arFields['TO_USER_ID'], IM_SPEED_MESSAGE); } } if (defined("INTASK_SKIP_SOCNET_MESSAGES1") && INTASK_SKIP_SOCNET_MESSAGES1) { $arFields["=DATE_VIEW"] = $DB->CurrentTimeFunction(); } $arFields1 = array(); foreach ($arFields as $key => $value) { if (substr($key, 0, 1) == "=") { $arFields1[substr($key, 1)] = $value; unset($arFields[$key]); } } if (!CSocNetMessages::CheckFields("ADD", $arFields)) { return false; } $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetMessagesAdd"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false) { return false; } } $arInsert = $DB->PrepareInsert("b_sonet_messages", $arFields); foreach ($arFields1 as $key => $value) { if (strlen($arInsert[0]) > 0) { $arInsert[0] .= ", "; } $arInsert[0] .= $key; if (strlen($arInsert[1]) > 0) { $arInsert[1] .= ", "; } $arInsert[1] .= $value; } $ID = false; if (strlen($arInsert[0]) > 0) { $strSql = "INSERT INTO b_sonet_messages(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")"; $DB->Query($strSql, False, "File: " . __FILE__ . "<br>Line: " . __LINE__); $ID = IntVal($DB->LastID()); $events = GetModuleEvents("socialnetwork", "OnSocNetMessagesAdd"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } //CSocNetMessages::SendEvent($ID, "SONET_NEW_MESSAGE"); CSocNetMessages::__SpeedFileCreate($arFields["TO_USER_ID"]); } return $ID; }
public static function __SpeedFileCheckMessages($userID) { $userID = IntVal($userID); if ($userID <= 0) { return; } $cnt = 0; $dbResult = $GLOBALS["DB"]->Query("SELECT COUNT(ID) as CNT " . "FROM b_sonet_messages " . "WHERE TO_USER_ID = " . $userID . " " . "\tAND DATE_VIEW IS NULL " . "\tAND TO_DELETED = 'N' "); if ($arResult = $dbResult->Fetch()) { $cnt = IntVal($arResult["CNT"]); } if ($cnt > 0) { CSocNetMessages::__SpeedFileCreate($userID); } else { CSocNetMessages::__SpeedFileDelete($userID); } }