• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/classes/mysql/group_subject.php
  • Класс: CSocNetGroupSubject
  • Вызов: CSocNetGroupSubject::Add
static function Add($arFields)
{
	global $DB, $CACHE_MANAGER;

	$arFields1 = BitrixSocialnetworkUtil::getEqualityFields($arFields);

	if (!self::CheckFields("ADD", $arFields))
	{
		return false;
	}

	$arSiteID = [];
	if (array_key_exists("SITE_ID", $arFields))
	{
		if (is_array($arFields["SITE_ID"]))
		{
			foreach ($arFields["SITE_ID"] as $site_id)
			{
				$arSiteID[$site_id] = $DB->ForSQL($site_id);
			}
		}
		else
		{
			$arSiteID[$arFields["SITE_ID"]] = $DB->ForSQL($arFields["SITE_ID"]);
		}
	}

	if (empty($arSiteID))
	{
		unset($arFields["SITE_ID"]);
	}
	else
	{
		$arFields["SITE_ID"] = end($arSiteID);
	}

	$arInsert = $DB->PrepareInsert("b_sonet_group_subject", $arFields);
	BitrixSocialnetworkUtil::processEqualityFieldsToInsert($arFields1, $arInsert);

	$ID = false;
	if ($arInsert[0] <> '')
	{
		$strSql =
			"INSERT INTO b_sonet_group_subject(".$arInsert[0].") ".
			"VALUES(".$arInsert[1].")";
		$DB->Query($strSql, False, "File: ".__FILE__."
Line: ".__LINE__); $ID = (int)$DB->LastID(); if ($ID > 0 && !empty($arSiteID)) { $DB->Query(" DELETE FROM b_sonet_group_subject_site WHERE SUBJECT_ID = ".$ID." ", false, "FILE: ".__FILE__."
LINE: ".__LINE__); $DB->Query(" INSERT INTO b_sonet_group_subject_site(SUBJECT_ID, SITE_ID) SELECT ".$ID.", LID FROM b_lang WHERE LID IN ('".implode("', '", $arSiteID)."') ", false, "FILE: ".__FILE__."
LINE: ".__LINE__); $events = GetModuleEvents("socialnetwork", "OnSocNetGroupSubjectAdd"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, &$arFields)); } } if (CACHED_b_sonet_group_subjects != false) { $CACHE_MANAGER->CleanDir("b_sonet_group_subjects"); } } return $ID; }