• Модуль: 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; }