function CloseMember($member_id, $bClose = true, $task_id = false) { if (!($arMember = CControllerMember::GetMember($member_id))) { return false; } $arControllerLog = array('NAME' => 'SITE_CLOSING', 'CONTROLLER_MEMBER_ID' => $arMember['ID'], 'DESCRIPTION' => $bClose ? GetMessage("CTRLR_MEM_LOG_SITE_CLO") : GetMessage("CTRLR_MEM_LOG_SITE_OPE"), 'STATUS' => 'Y', "TASK_ID" => $task_id); $result = false; $strCommand = 'CControllerClient::SetOptionString("main", "site_stopped", "' . ($bClose ? 'Y' : 'N') . '");'; $result = CControllerMember::RunCommand($member_id, $strCommand, array(), $task_id); if ($result === false) { $e = $GLOBALS['APPLICATION']->GetException(); $arControllerLog['DESCRIPTION'] = $e->GetString(); $arControllerLog['STATUS'] = 'N'; } else { CControllerMember::Update($arMember['ID'], array('SITE_ACTIVE' => !$bClose ? 'Y' : 'N')); } CControllerLog::Add($arControllerLog); // close event CTimeZone::Disable(); $db_res = CControllerMember::GetByID($arMember["ID"]); CTimeZone::Enable(); if ($arFields = $db_res->Fetch()) { $events = GetModuleEvents("controller", "OnAfterCloseMember"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array(&$arFields)); } if ($bClose) { CEvent::Send("CONTROLLER_MEMBER_CLOSED", SITE_ID, $arFields); } else { CEvent::Send("CONTROLLER_MEMBER_OPENED", SITE_ID, $arFields); } } return $result; }
} ClearVars(); $str_ACTIVE = "Y"; if (strlen($_REQUEST['MEMBER_ID']) > 0) { $str_MEMBER_ID = htmlspecialcharsbx(substr($_REQUEST['MEMBER_ID'], 0, 32)); } else { $str_MEMBER_ID = substr("m" . md5(uniqid(rand(), true)), 0, 32); } $mb = CControllerMember::GetByID($ID); if ($MOD_RIGHT < "V" || !$mb->ExtractFields("str_")) { $ID = 0; } if ($_REQUEST["countersupdate"] == "Y" && $ID > 0 && check_bitrix_sessid()) { $result = array(); if (CControllerMember::UpdateCounters($ID)) { $rsMember = CControllerMember::GetByID($ID); $arMember = $rsMember->Fetch(); $mb = CControllerGroup::GetByID($arMember["CONTROLLER_GROUP_ID"]); $arGroup = $mb->Fetch(); $result["COUNTERS_UPDATED"] = $arMember["COUNTERS_UPDATED"]; if ($arGroup["CHECK_COUNTER_FREE_SPACE"] == "Y") { $result["COUNTER_FREE_SPACE"] = $arMember["COUNTER_FREE_SPACE"]; } if ($arGroup["CHECK_COUNTER_SITES"] == "Y") { $result["COUNTER_SITES"] = $arMember["COUNTER_SITES"]; } if ($arGroup["CHECK_COUNTER_USERS"] == "Y") { $result["COUNTER_USERS"] = $arMember["COUNTER_USERS"]; } if ($arGroup["CHECK_COUNTER_LAST_AUTH"] == "Y") { $result["COUNTER_LAST_AUTH"] = $arMember["COUNTER_LAST_AUTH"];