Пример #1
0
 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;
 }
Пример #2
0
 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);
     }
 }