• Модуль: learning
  • Путь к файлу: ~/bitrix/modules/learning/classes/general/group.php
  • Класс: CLearningGroup
  • Вызов: CLearningGroup::update
static function update($id, $arFields)
{
	global $DB, $USER_FIELD_MANAGER, $APPLICATION;

	$id = (int) $id;

	if ($id < 1)
		return (false);

	if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y")
		$arFields["ACTIVE"] = "N";

	if ( ! self::CheckFields($arFields, $id) )
		return false;

	if ( ! $USER_FIELD_MANAGER->CheckFields("LEARNING_LGROUPS", $id, $arFields) )
		return (false);

	if (array_key_exists('ID', $arFields))
		unset($arFields['ID']);
	
	foreach(GetModuleEvents('learning', 'OnBeforeLearningGroupUpdate', true) as $arEvent)
	{
		if (ExecuteModuleEventEx($arEvent, array($id, &$arFields)) === false)
		{
			IncludeModuleLangFile(__FILE__);

			$errmsg = GetMessage("LEARNING_GROUP_UPDATE_UNKNOWN_ERROR");
			$errno  = 'LEARNING_GROUP_UPDATE_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;
		}
	}

	$USER_FIELD_MANAGER->Update('LEARNING_LGROUPS', $id, $arFields);

	$strUpdate = $DB->PrepareUpdate("b_learn_groups", $arFields, "learning");
	$strSql = "UPDATE b_learn_groups SET " . $strUpdate . " WHERE ID=" . $id;
	$rc = $DB->queryBind($strSql, $arBinds = array(), $bIgnoreErrors = true);

	if (defined("BX_COMP_MANAGED_CACHE"))
	{
		global $CACHE_MANAGER;
		$CACHE_MANAGER->ClearByTag('LEARNING_GROUP_' . (int) ($id / 100));
		$CACHE_MANAGER->ClearByTag('LEARNING_GROUP');
	}

	foreach(GetModuleEvents('learning', 'OnAfterLearningGroupUpdate', true) as $arEvent)
		ExecuteModuleEventEx($arEvent, array($id, &$arFields));

	return ($rc !== false);
}