- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/group_subject.php
- Класс: CAllSocNetGroupSubject
- Вызов: CAllSocNetGroupSubject::Update
static function Update($ID, $arFields)
{
global $DB, $CACHE_MANAGER;
if (!CSocNetGroup::__ValidateID($ID))
return false;
$ID = intval($ID);
$arFields1 = BitrixSocialnetworkUtil::getEqualityFields($arFields);
if (!CSocNetGroupSubject::CheckFields("UPDATE", $arFields, $ID))
return false;
else
{
$arSiteID = Array();
if(is_set($arFields, "SITE_ID"))
{
if(is_array($arFields["SITE_ID"]))
$arSiteID = $arFields["SITE_ID"];
else
$arSiteID[] = $arFields["SITE_ID"];
$arFields["SITE_ID"] = false;
$str_SiteID = "''";
foreach($arSiteID as $v)
{
$arFields["SITE_ID"] = $v;
$str_SiteID .= ", '".$DB->ForSql($v)."'";
}
}
}
$strUpdate = $DB->PrepareUpdate("b_sonet_group_subject", $arFields);
BitrixSocialnetworkUtil::processEqualityFieldsToUpdate($arFields1, $strUpdate);
if ($strUpdate <> '')
{
$strSql =
"UPDATE b_sonet_group_subject SET ".
" ".$strUpdate." ".
"WHERE ID = ".$ID." ";
$DB->Query($strSql, False, "File: ".__FILE__."
Line: ".__LINE__);
if(count($arSiteID)>0)
{
$strSql = "DELETE FROM b_sonet_group_subject_site WHERE SUBJECT_ID=".$ID;
$DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
$strSql =
"INSERT INTO b_sonet_group_subject_site(SUBJECT_ID, SITE_ID) ".
"SELECT ".$ID.", LID ".
"FROM b_lang ".
"WHERE LID IN (".$str_SiteID.") ";
$DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
}
$events = GetModuleEvents("socialnetwork", "OnSocNetGroupSubjectUpdate");
while ($arEvent = $events->Fetch())
{
ExecuteModuleEventEx($arEvent, array($ID, &$arFields));
}
if (CACHED_b_sonet_group_subjects != false)
$CACHE_MANAGER->CleanDir("b_sonet_group_subjects");
}
else
$ID = False;
return $ID;
}