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

	$controller_url = COption::GetOptionString("controller", "controller_url", ($APPLICATION->IsHTTPS()?"https://":"http://").$_SERVER['HTTP_HOST']);

	if(!isset($ar_member['MEMBER_ID']))
		$ar_member['MEMBER_ID'] = "m".BitrixMainSecurityRandom::getString(31);

	if(!isset($ar_member['SECRET_ID']))
		$ar_member['SECRET_ID'] = "m".BitrixMainSecurityRandom::getString(31);

	$arParameters = Array(
		"member_id" => $ar_member['MEMBER_ID'],
		"member_secret_id" => $ar_member['SECRET_ID'],
		"controller_url" => $controller_url,
		"join_command" => '
			COption::SetOptionString("main", "controller_member", "Y");
			COption::SetOptionString("main", "controller_ticket", "");
			RegisterModuleDependences("main", "OnUserLoginExternal", "main", "CControllerClient", "OnExternalLogin", 1);
			RegisterModuleDependences("main", "OnExternalAuthList", "main", "CControllerClient", "OnExternalAuthList");
		',
		"disconnect_command" => '
			CControllerClient::RestoreAll();
			COption::SetOptionString("main", "controller_member", "N");
			COption::SetOptionString("main", "controller_member_id", "");
			COption::SetOptionString("main", "controller_url", "");
			UnRegisterModuleDependences("main", "OnUserLoginExternal", "main", "CControllerClient", "OnExternalLogin");
			UnRegisterModuleDependences("main", "OnExternalAuthList", "main", "CControllerClient", "OnExternalAuthList");
		'
	);

	if($ar_member["ID"] = CControllerMember::Add($ar_member))
	{
		$ar_member["REG_PARAMS"] = $arParameters;
		return $ar_member;
	}
	return false;
}