- Модуль: learning
- Путь к файлу: ~/bitrix/modules/learning/classes/general/group.php
- Класс: CLearningGroup
- Вызов: CLearningGroup::add
static function add($arFields)
{
global $DB, $USER_FIELD_MANAGER, $APPLICATION;
if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y")
$arFields["ACTIVE"] = "N";
if ( ! self::CheckFields($arFields) )
return false;
if ( ! $USER_FIELD_MANAGER->CheckFields("LEARNING_LGROUPS", 0, $arFields) )
return (false);
if (array_key_exists('ID', $arFields))
unset($arFields['ID']);
foreach(GetModuleEvents('learning', 'OnBeforeLearningGroupAdd', true) as $arEvent)
{
if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
{
IncludeModuleLangFile(__FILE__);
$errmsg = GetMessage("LEARNING_GROUP_ADD_UNKNOWN_ERROR");
$errno = 'LEARNING_GROUP_ADD_UNKNOWN_ERROR';
if ($ex = $APPLICATION->getException())
{
$errmsg = $ex->getString();
$errno = $ex->getId();
}
$e = new CAdminException(array('text' => $errmsg, 'id' => $errno));
$APPLICATION->ThrowException($e);
return false;
}
}
$id = $DB->Add("b_learn_groups", $arFields, array(), "learning");
if ($id)
$USER_FIELD_MANAGER->Update("LEARNING_LGROUPS", $id, $arFields);
if ($id > 0 && defined("BX_COMP_MANAGED_CACHE"))
{
global $CACHE_MANAGER;
$CACHE_MANAGER->ClearByTag('LEARNING_GROUP_' . (int) ($id / 100));
$CACHE_MANAGER->ClearByTag('LEARNING_GROUP');
}
foreach(GetModuleEvents('learning', 'OnAfterLearningGroupAdd', true) as $arEvent)
ExecuteModuleEventEx($arEvent, array($id, &$arFields));
return ($id);
}