- Модуль: 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;
}