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