- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/mysql/user_relations.php
- Класс: CSocNetUserRelations
- Вызов: CSocNetUserRelations::Add
static function Add($arFields)
{
global $DB;
$arFields1 = BitrixSocialnetworkUtil::getEqualityFields($arFields);
if (!CSocNetUserRelations::CheckFields("ADD", $arFields))
return false;
$db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetUserRelationsAdd");
while ($arEvent = $db_events->Fetch())
if (ExecuteModuleEventEx($arEvent, array(&$arFields))===false)
return false;
$arInsert = $DB->PrepareInsert("b_sonet_user_relations", $arFields);
$strUpdate = $DB->PrepareUpdate("b_sonet_user_relations", $arFields);
BitrixSocialnetworkUtil::processEqualityFieldsToInsert($arFields1, $arInsert);
BitrixSocialnetworkUtil::processEqualityFieldsToUpdate($arFields1, $strUpdate);
$ID = false;
if ($arInsert[0] <> '')
{
$strSql =
"INSERT INTO b_sonet_user_relations(".$arInsert[0].") ".
"VALUES(".$arInsert[1].")
ON DUPLICATE KEY UPDATE ".$strUpdate;
$DB->Query($strSql, False, "File: ".__FILE__."
Line: ".__LINE__);
$ID = intval($DB->LastID());
$events = GetModuleEvents("socialnetwork", "OnSocNetUserRelationsAdd");
while ($arEvent = $events->Fetch())
ExecuteModuleEventEx($arEvent, array($ID, &$arFields));
if (
(
!array_key_exists("SEND_MAIL", $arFields)
|| $arFields["SEND_MAIL"] != "N"
)
&& !IsModuleInstalled("im")
)
{
$mailType = "INVITE_FRIEND";
if ($arFields["RELATION"] == SONET_RELATIONS_BAN)
$mailType = "BAN_FRIEND";
CSocNetUserRelations::SendEvent($ID, $mailType);
}
CSocNetSearch::OnUserRelationsChange($arFields["FIRST_USER_ID"]);
CSocNetSearch::OnUserRelationsChange($arFields["SECOND_USER_ID"]);
}
return $ID;
}