- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/mysql/group_features.php
- Класс: CSocNetFeatures
- Вызов: CSocNetFeatures::Add
static function Add($arFields)
{
global $DB, $CACHE_MANAGER, $SONET_FEATURES_CACHE;
$arFields1 = BitrixSocialnetworkUtil::getEqualityFields($arFields);
if (!CSocNetFeatures::CheckFields("ADD", $arFields))
{
return false;
}
$db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetFeaturesAdd");
while ($arEvent = $db_events->Fetch())
{
if (ExecuteModuleEventEx($arEvent, array($arFields))===false)
{
return false;
}
}
$arInsert = $DB->PrepareInsert("b_sonet_features", $arFields);
BitrixSocialnetworkUtil::processEqualityFieldsToInsert($arFields1, $arInsert);
$ID = false;
if ($arInsert[0] <> '')
{
$strSql =
"INSERT INTO b_sonet_features(".$arInsert[0].") ".
"VALUES(".$arInsert[1].")";
$DB->Query($strSql, False, "File: ".__FILE__."
Line: ".__LINE__);
$ID = intval($DB->LastID());
if (array_key_exists("ENTITY_TYPE", $arFields) && array_key_exists("ENTITY_ID", $arFields))
{
unset($SONET_FEATURES_CACHE[$arFields["ENTITY_TYPE"]][$arFields["ENTITY_ID"]]);
}
$events = GetModuleEvents("socialnetwork", "OnSocNetFeaturesAdd");
while ($arEvent = $events->Fetch())
{
ExecuteModuleEventEx($arEvent, array($ID, $arFields));
}
if (
defined("BX_COMP_MANAGED_CACHE")
&& array_key_exists("ENTITY_TYPE", $arFields)
&& array_key_exists("ENTITY_ID", $arFields)
)
{
$CACHE_MANAGER->ClearByTag('sonet_features');
$CACHE_MANAGER->ClearByTag("sonet_features_".$arFields["ENTITY_TYPE"]."_".$arFields["ENTITY_ID"]);
}
}
return $ID;
}