• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/user_relations.php
  • Класс: CAllSocNetUserRelations
  • Вызов: CAllSocNetUserRelations::Delete
static function Delete($ID)
{
	global $DB;

	if (!CSocNetGroup::__ValidateID($ID))
		return false;

	$ID = intval($ID);
	$bSuccess = True;

	$rsUser2UserOld = $DB->Query("SELECT * FROM b_sonet_user_relations WHERE ID = ".$ID."");
	if($arUser2UserOld = $rsUser2UserOld->Fetch())
	{
		CSocNetSearch::OnUserRelationsChange($arUser2UserOld["FIRST_USER_ID"]);
		CSocNetSearch::OnUserRelationsChange($arUser2UserOld["SECOND_USER_ID"]);
	}

	$db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetUserRelationsDelete");
	while ($arEvent = $db_events->Fetch())
		if (ExecuteModuleEventEx($arEvent, array($ID))===false)
			return false;

	$events = GetModuleEvents("socialnetwork", "OnSocNetUserRelationsDelete");
	while ($arEvent = $events->Fetch())
		ExecuteModuleEventEx($arEvent, array($ID));

	if ($bSuccess)
	{
		$arRelation = CSocNetUserRelations::GetByID($ID);
		$bSuccess = $DB->Query("DELETE FROM b_sonet_user_relations WHERE ID = ".$ID."", true);
	}

	if ($bSuccess)
	{
		if ($arRelation && $arRelation["RELATION"] == SONET_RELATIONS_FRIEND)
			$GLOBALS["DB"]->Query("DELETE FROM b_sonet_event_user_view WHERE
				ENTITY_TYPE = '".SONET_ENTITY_USER."'
				AND (
					(USER_ID = ".$arRelation["FIRST_USER_ID"]." AND ENTITY_ID = ".$arRelation["SECOND_USER_ID"].")
					OR (USER_ID = ".$arRelation["SECOND_USER_ID"]." AND ENTITY_ID = ".$arRelation["FIRST_USER_ID"].")
					OR (ENTITY_ID = ".$arRelation["FIRST_USER_ID"]." AND USER_IM_ID = ".$arRelation["SECOND_USER_ID"].")
					OR (ENTITY_ID = ".$arRelation["SECOND_USER_ID"]." AND USER_IM_ID = ".$arRelation["FIRST_USER_ID"].")
					OR (USER_ID = ".$arRelation["FIRST_USER_ID"]." AND USER_IM_ID = ".$arRelation["SECOND_USER_ID"].")
					OR (USER_ID = ".$arRelation["SECOND_USER_ID"]." AND USER_IM_ID = ".$arRelation["FIRST_USER_ID"].")
					)", true);
	}

	return $bSuccess;
}