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