• Модуль: controller
  • Путь к файлу: ~/bitrix/modules/controller/classes/general/controllermember.php
  • Класс: CAllControllerMember
  • Вызов: CAllControllerMember::SetGroupSettings
static function SetGroupSettings($member_id, $task_id = false)
{
	/** @global CMain $APPLICATION */
	global $APPLICATION;

	if(!($arMember = CControllerMember::GetMember($member_id)))
		return false;

	$arControllerLog = Array(
			'NAME'=>'SET_SETTINGS',
			'CONTROLLER_MEMBER_ID'=>$arMember['ID'],
			'DESCRIPTION'=>GetMessage("CTRLR_MEM_LOG_DESC_GROUP").' '.$arMember["CONTROLLER_GROUP_ID"],
			'STATUS'=>'Y'
		);

	$result = false;
	if($strCommand = CControllerGroup::GetGroupSettings($arMember["CONTROLLER_GROUP_ID"]))
	{
		$dbr_group = CControllerGroup::GetList(array(), array("=ID" => $arMember["CONTROLLER_GROUP_ID"]), array("UF_*"));
		if($ar_group = $dbr_group->Fetch())
		{
			if($ar_group["TRIAL_PERIOD"]>0 && $arMember["IN_GROUP_FROM"])
			{
				$tFrom = MakeTimeStamp($arMember["IN_GROUP_FROM"], FORMAT_DATE);
				$tTo = $tFrom + $ar_group["TRIAL_PERIOD"]*24*60*60 - 1;

				$strCommand .= "rnCOption::SetOptionString('main', '~controller_trial', '".$tTo."');";
			}
			else
				$strCommand .= "rnCOption::RemoveOption('main', '~controller_trial');";
		}

		foreach(GetModuleEvents("controller", "OnBeforeSetGroupSettings", true) as $arEvent)
		{
			ExecuteModuleEventEx($arEvent, array($arMember, $ar_group, &$strCommand));
		}

		$result = CControllerMember::RunCommand($member_id, $strCommand, array(), $task_id, 'run_immediate');
	}
	else
	{
		$e = new CApplicationException(GetMessage("CTRLR_MEM_ERR4")." ".$arMember["CONTROLLER_GROUP_ID"]);
		$APPLICATION->ThrowException($e);
	}

	if($task_id === false)
	{
		if($result === false)
		{
			$e = $APPLICATION->GetException();
			$arControllerLog['DESCRIPTION'] = $e->GetString();
			$arControllerLog['STATUS'] = 'N';
		}

		CControllerLog::Add($arControllerLog);
	}
	return $result;
}