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

	foreach(GetModuleEvents('learning', 'OnBeforeLearningGroupDelete', true) as $arEvent)
	{
		if (ExecuteModuleEventEx($arEvent, array($groupId)) === false)
		{
			IncludeModuleLangFile(__FILE__);

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

	$rc = $DB->Query(
		"DELETE FROM b_learn_groups WHERE ID = " . (int) $groupId,
		$bIgnoreErrors = true
	);

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

	$USER_FIELD_MANAGER->delete('LEARNING_LGROUPS', $groupId);

	CEventLog::add(array(
		'AUDIT_TYPE_ID' => 'LEARNING_REMOVE_ITEM',
		'MODULE_ID'     => 'learning',
		'ITEM_ID'       => 'LG #' . $groupId,
		'DESCRIPTION'   => 'learning group removed'
	));

	foreach(GetModuleEvents('learning', 'OnAfterLearningGroupDelete', true) as $arEvent)
		ExecuteModuleEventEx($arEvent, array($groupId));

	return ($rc !== false);
}