- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/mysql/user_relations.php
- Класс: CSocNetUserRelations
- Вызов: CSocNetUserRelations::Update
static function Update($ID, $arFields)
{
global $DB;
if (!CSocNetGroup::__ValidateID($ID))
return false;
$ID = intval($ID);
$arFields1 = BitrixSocialnetworkUtil::getEqualityFields($arFields);
if (!CSocNetUserRelations::CheckFields("UPDATE", $arFields, $ID))
return false;
$db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetUserRelationsUpdate");
while ($arEvent = $db_events->Fetch())
if (ExecuteModuleEventEx($arEvent, array($ID, $arFields))===false)
return false;
$arUserRelationOld = CSocNetUserRelations::GetByID($ID);
$strUpdate = $DB->PrepareUpdate("b_sonet_user_relations", $arFields);
BitrixSocialnetworkUtil::processEqualityFieldsToUpdate($arFields1, $strUpdate);
if ($strUpdate <> '')
{
$strSql =
"UPDATE b_sonet_user_relations SET ".
" ".$strUpdate." ".
"WHERE ID = ".$ID." ";
$DB->Query($strSql, False, "File: ".__FILE__."
Line: ".__LINE__);
$events = GetModuleEvents("socialnetwork", "OnSocNetUserRelationsUpdate");
while ($arEvent = $events->Fetch())
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
if (
(!array_key_exists("SEND_MAIL", $arFields)
|| $arFields["SEND_MAIL"] != "N")
&& !IsModuleInstalled("im")
)
{
$mailType = "";
if ($arUserRelationOld["RELATION"] != SONET_RELATIONS_FRIEND && $arFields["RELATION"] == SONET_RELATIONS_FRIEND)
$mailType = "AGREE_FRIEND";
elseif ($arUserRelationOld["RELATION"] != SONET_RELATIONS_BAN && $arFields["RELATION"] == SONET_RELATIONS_BAN)
$mailType = "BAN_FRIEND";
elseif ($arUserRelationOld["RELATION"] != SONET_RELATIONS_REQUEST && $arFields["RELATION"] == SONET_RELATIONS_REQUEST)
$mailType = "INVITE_FRIEND";
if ($mailType <> '')
CSocNetUserRelations::SendEvent($ID, $mailType);
}
CSocNetSearch::OnUserRelationsChange($arUserRelationOld["FIRST_USER_ID"]);
CSocNetSearch::OnUserRelationsChange($arUserRelationOld["SECOND_USER_ID"]);
}
else
$ID = False;
return $ID;
}