- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/group_features_perms.php
- Класс: CAllSocNetFeaturesPerms
- Вызов: CAllSocNetFeaturesPerms::Update
static function Update($ID, $arFields)
{
global $DB, $CACHE_MANAGER;
if (!CSocNetGroup::__ValidateID($ID))
return false;
$ID = intval($ID);
$arFields1 = BitrixSocialnetworkUtil::getEqualityFields($arFields);
if (!CSocNetFeaturesPerms::CheckFields("UPDATE", $arFields, $ID))
return false;
$db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetFeaturesPermsUpdate");
while ($arEvent = $db_events->Fetch())
{
if (ExecuteModuleEventEx($arEvent, array($ID, $arFields)) === false)
{
return false;
}
}
$strUpdate = $DB->PrepareUpdate("b_sonet_features2perms", $arFields);
BitrixSocialnetworkUtil::processEqualityFieldsToUpdate($arFields1, $strUpdate);
if ($strUpdate <> '')
{
$strSql =
"UPDATE b_sonet_features2perms SET ".
" ".$strUpdate." ".
"WHERE ID = ".$ID." ";
$DB->Query($strSql, False, "File: ".__FILE__."
Line: ".__LINE__);
$events = GetModuleEvents("socialnetwork", "OnSocNetFeaturesPermsUpdate");
while ($arEvent = $events->Fetch())
{
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
if (defined("BX_COMP_MANAGED_CACHE"))
{
$CACHE_MANAGER->ClearByTag('sonet_features2perms');
$CACHE_MANAGER->ClearByTag("sonet_features2perms_".$ID);
}
else
{
$dbGroupFeaturePerm = CSocNetFeaturesPerms::GetList(
array(),
array("ID" => $ID),
false,
false,
array("FEATURE_ENTITY_TYPE", "FEATURE_ENTITY_ID")
);
if ($arGroupFeaturePerm = $dbGroupFeaturePerm->Fetch())
{
$cache = new CPHPCache;
$cache->CleanDir(self::getCachePath($arGroupFeaturePerm['FEATURE_ENTITY_TYPE'], $arGroupFeaturePerm['FEATURE_ENTITY_ID']));
}
}
}
else
{
$ID = False;
}
return $ID;
}