• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/group.php
  • Класс: CAllGroup
  • Вызов: CAllGroup::Add
public function Add($arFields)
{
	/** @global CMain $APPLICATION */
	global $DB, $APPLICATION, $CACHE_MANAGER;

	if(!$this->CheckFields($arFields))
		return false;

	foreach(GetModuleEvents("main", "OnBeforeGroupAdd", true) as $arEvent)
	{
		$bEventRes = ExecuteModuleEventEx($arEvent, array(&$arFields));
		if($bEventRes===false)
		{
			if($err = $APPLICATION->GetException())
				$this->LAST_ERROR .= $err->GetString()."
"; else $this->LAST_ERROR .= "Unknown error in OnBeforeGroupAdd handler."."
"; return false; } } if(is_set($arFields, "ACTIVE") && $arFields["ACTIVE"]!="Y") $arFields["ACTIVE"]="N"; $ID = $DB->Add("b_group", $arFields); if (is_array($arFields["USER_ID"]) && !empty($arFields["USER_ID"])) { if (is_array($arFields["USER_ID"][0]) && !empty($arFields["USER_ID"][0])) { $arTmp = array(); foreach ($arFields["USER_ID"] as $userId) { if (intval($userId["USER_ID"]) > 0 && !in_array(intval($userId["USER_ID"]), $arTmp)) { $arInsert = $DB->PrepareInsert("b_user_group", $userId); $strSql = "INSERT INTO b_user_group(GROUP_ID, ".$arInsert[0].") ". "VALUES(".$ID.", ".$arInsert[1].")"; $DB->Query($strSql); $arTmp[] = intval($userId["USER_ID"]); } } } else { $strUsers = "0"; foreach ($arFields["USER_ID"] as $userId) $strUsers.=",".intval($userId); $strSql = "INSERT INTO b_user_group(GROUP_ID, USER_ID) ". "SELECT ".$ID.", ID ". "FROM b_user ". "WHERE ID in (".$strUsers.")"; $DB->Query($strSql); } CUser::clearUserGroupCache(); } $arFields["ID"] = $ID; foreach (GetModuleEvents("main", "OnAfterGroupAdd", true) as $arEvent) ExecuteModuleEventEx($arEvent, array(&$arFields)); if (defined("CACHED_b_group") && CACHED_b_group !== false) $CACHE_MANAGER->CleanDir("b_group"); return $ID; }