public function Save() { #----------------------------------------------------------------------------- $SessionID = $this->SessionID; #----------------------------------------------------------------------------- if (!$SessionID) { return ERROR | @Trigger_Error('[Session->Save]: пустой идентификатор сессии'); } #----------------------------------------------------------------------------- $Tmp = System_Element('tmp'); if (Is_Error($Tmp)) { return ERROR | @Trigger_Error('[Session->Save]: не удалось найти временную папку'); } #----------------------------------------------------------------------------- #$IsWrited = IO_Write(SPrintF('%s/sessions/%s',$Tmp,$SessionID),Serialize($this->Data),TRUE); $IsWrited = IO_Write(SPrintF('%s/sessions/%s', $Tmp, $SessionID), JSON_Encode($this->Data), TRUE); if (Is_Error($IsWrited)) { return ERROR | @Trigger_Error('[Session->Save]: не удалось сохранить сессию'); } #----------------------------------------------------------------------------- return TRUE; }
#------------------------------------------------------------------------------- $Config = Config(); #------------------------------------------------------------------------------- $Fields = $Config['Services']['Fields']; #------------------------------------------------------------------------------- $Types = $Fields['Types']; #------------------------------------------------------------------------------- $Options = array(); #------------------------------------------------------------------------------- $Script = array('var Disabled = {};'); #------------------------------------------------------------------------------- foreach ($Types as $TypeID => $Type) { #----------------------------------------------------------------------------- $Options[$TypeID] = $Type['Name']; #----------------------------------------------------------------------------- $Script[] = SPrintF("Disabled['%s'] = %s;", $TypeID, JSON_Encode($Type['Disabled'])); } #------------------------------------------------------------------------------- $DOM->AddChild('Head', new Tag('SCRIPT', array('force-escape' => 'yes'), Implode("\n", $Script))); #------------------------------------------------------------------------------- $DOM->AddAttribs('Body', array('onload' => 'DisabledUpdate();')); #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'TypeID', 'onchange' => 'DisabledUpdate();'), $Options, $ServiceField['TypeID']); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Table[] = array('Тип', $Comp); #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/TextArea', array('name' => 'Options', 'rows' => 5, 'cols' => 25), $ServiceField['Options']); if (Is_Error($Comp)) {
foreach ($Files as $File) { #------------------------------------------------------------------------------- if ($File == 'names.txt') { continue; } #------------------------------------------------------------------------------- $Path = SPrintF('%s/%s', $Uploads, $File); #------------------------------------------------------------------------------- if (Time() - FileMTime($Path) > 600) { #------------------------------------------------------------------------------- if (isset($Names[$File])) { unset($Names[$File]); } #------------------------------------------------------------------------------- if (!UnLink($Path)) { return ERROR | @Trigger_Error(SPrintF('Не удалось удалить файл (%s)', $Path)); } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $IsWrite = IO_Write($NamesPath, JSON_Encode($Names), TRUE); if (Is_Error($IsWrite)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- return $Hash; #------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
foreach ($ContractsTypes as $ContractTypeID => $IsActive) { #------------------------------------------------------------------------------- if ($IsActive) { $ContractsTypesIDs[] = SPrintF("'%s'", $ContractTypeID); } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Contracts = DB_Select('Contracts', array('ID', 'Customer'), array('Where' => SPrintF('`UserID` = %u AND `TypeID` IN (%s)', $GLOBALS['__USER']['ID'], Implode(',', $ContractsTypesIDs)))); #------------------------------------------------------------------------------- switch (ValueOf($Contracts)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': #------------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/InvoiceMake', 'Args' => array('PaymentSystemID' => $PaymentSystemID, 'StepID' => 2))); #------------------------------------------------------------------------------- $ContractsTypesIDs = array(); #------------------------------------------------------------------------------- foreach ($ContractsTypes as $ContractTypeID => $IsActive) { #------------------------------------------------------------------------------- if ($IsActive) { $ContractsTypesIDs[] = $ContractTypeID; } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Comp = Comp_Load('www/ContractMake', array('TypesIDs' => Implode(',', $ContractsTypesIDs), 'IsSimple' => TRUE, 'Window' => Base64_Encode($Window))); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); }
if (Mb_StrLen($Customer) > 20) { $Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 20)); } #----------------------------------------------------------------------- $Options[$Contract['ID']] = SPrintF('#%s / %s', $Number, $Customer); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'ContractID'), $Options, $ContractID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------- $NoBody = new Tag('NOBODY', $Comp); #------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/VPSOrder', 'Args' => array())); #------------------------------------------------------------------------- $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ContractMake',{Window:'%s'});", Base64_Encode($Window))), '[новый]'); #------------------------------------------------------------------------- $NoBody->AddChild($A); #------------------------------------------------------------------------- $Table = array(array('Базовый договор', $NoBody)); #------------------------------------------------------------------------- $UniqID = UniqID('VPSSchemes'); #------------------------------------------------------------------------- $Comp = Comp_Load('Services/Schemes', 'VPSSchemes', $__USER['ID'], array('Name', 'ServersGroupID'), $UniqID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------- $Columns = array('ID', 'Name', 'ServersGroupID', 'Comment', 'CostMonth', 'CostInstall', 'disklimit', 'ncpu', 'cpu', 'mem', '(SELECT `Name` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupName`', '(SELECT `Comment` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupComment`', '(SELECT `SortID` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupSortID`');
function __Error_Handler__($Number, $Error, $File, $Line) { #------------------------------------------------------------------------------- $Message = SPrintF('[!!%s]-%s в линии %s файла %s', $Number, $Error, $Line, $File); #------------------------------------------------------------------------------- $__ERR_CODE =& $GLOBALS['__ERR_CODE']; #------------------------------------------------------------------------------- if ((int) $Error && $__ERR_CODE == 100) { $__ERR_CODE = $Error; } #------------------------------------------------------------------------------- Debug(SPrintF('[!] %s', $Message)); //Debug(SPrintF('[!] %s',debug_print_backtrace())); #------------------------------------------------------------------------------- //Error_Reporting(E_ALL); #------------------------------------------------------------------------------- if (Error_Reporting()) { #------------------------------------------------------------------------------- $JBsErrorID = SPrintF('%s[%s]', HOST_ID, Md5(Implode(':', array($Number, $Error, $Line, $File)))); #------------------------------------------------------------------------------- $__SYSLOG =& $GLOBALS['__SYSLOG']; #------------------------------------------------------------------------------- $Log = Implode("\n", $__SYSLOG); #------------------------------------------------------------------------------- Report($JBsErrorID, $JBsErrorID); #------------------------------------------------------------------------------- foreach (array(SYSTEM_PATH, '/tmp') as $Folder) { #------------------------------------------------------------------------------- $Path = SPrintF('%s/jbs-errors.log', $Folder); #------------------------------------------------------------------------------- if (File_Exists($Path)) { if (FileSize($Path) > 1024 * 1024) { UnLink($Path); } } #------------------------------------------------------------------------------- umask(077); #------------------------------------------------------------------------------- if (!@File_Put_Contents($Path, SPrintF("%s\n\n%s\n\n", $JBsErrorID, $Log), FILE_APPEND)) { #------------------------------------------------------------------------------- Debug(SPrintF('[__Error_Handler__]: не удалось осуществить запись ошибки в системный лог (%s)', $Path)); #------------------------------------------------------------------------------- continue; #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- break; #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- if (File_Exists(SPrintF('%s/DEBUG.OUT', SYSTEM_PATH)) || !isset($_SERVER["REMOTE_PORT"])) { #------------------------------------------------------------------------------- exit($Log); } else { #------------------------------------------------------------------------------- $Errors = array(100 => 'Ошибка выполнения', 101 => 'Неизвестный результат', 201 => 'Неверные параметры', 400 => 'Ошибка данных', 500 => 'Системная ошибка', 600 => 'Ошибка политики безопасности', 601 => 'Неверный реферер', 602 => 'Отсутствует реферер', 603 => 'Неверный ключ CSRF', 700 => 'Нарушение политики прав'); #------------------------------------------------------------------------------- $FilePath = SPrintF('%s/hosts/root/templates/modules/Trigger.Error.html', SYSTEM_PATH); #------------------------------------------------------------------------------- if (Is_Readable($FilePath)) { #------------------------------------------------------------------------------- $Result = @File_Get_Contents($FilePath); #------------------------------------------------------------------------------- } else { #------------------------------------------------------------------------------- $Result = SPrintF("Cannot read error file: %s<BR />\nError: %%s<BR />\n<!--%%s-->\nErrorID: %%s\n<!--%%s-->", $FilePath); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $String = SPrintF('%s (%s)', $Errors[$__ERR_CODE], $__ERR_CODE); #------------------------------------------------------------------------------- @Header(SPrintF('JBs-ErrorID: %s', $JBsErrorID)); #------------------------------------------------------------------------------- if (isset($_POST['XMLHttpRequest'])) { #------------------------------------------------------------------------------- $Answer = array('Error' => array('CodeID' => $__ERR_CODE, 'String' => $String), 'Status' => 'Error'); #------------------------------------------------------------------------------- exit(JSON_Encode($Answer)); #------------------------------------------------------------------------------- } else { #------------------------------------------------------------------------------- exit(SPrintF($Result, $String, $String, $JBsErrorID, Date('Y', Time()))); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- }
$Notes = $Result; #------------------------------------------------------------------------------- } else { #------------------------------------------------------------------------------- $Notes = Comp_Load($Path); if (Is_Error($Notes)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- CacheManager::add($CacheID, $Notes, 60); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- foreach ($Notes as $Note) { #------------------------------------------------------------------------------- $MessageID = SPrintF('note_%s_%s', $GLOBALS['__USER']['ID'], SubStr(Md5(JSON_Encode($Note)), 0, 6)); #------------------------------------------------------------------------------- if (isset($_COOKIE[$MessageID])) { continue; } #------------------------------------------------------------------------------- $Comp = Comp_Load('Information', $Note, 'Warning', $MessageID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Table->AddChild(new Tag('TR', new Tag('TD', $Comp))); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- }
case 'error': return ERROR | @Trigger_Error('[system/modules/Main]: не удалось загрузить основной компонент системы'); case 'exception': #--------------------------------------------------------------------------- $Answer = array('Exception' => $Result, 'Status' => 'Exception'); #--------------------------------------------------------------------------- echo JSON_Encode($Answer); break; case 'false': echo JSON_Encode(array('Status' => 'FALSE')); break; case 'true': echo JSON_Encode(array('Status' => 'TRUE')); break; case 'array': $Result = JSON_Encode($Result); case 'string': #--------------------------------------------------------------------------- if (!Headers_Sent()) { #------------------------------------------------------------------------- list($Micro, $Seconds) = Explode(' ', MicroTime()); #------------------------------------------------------------------------- Header(SPrintF('Waiting-Time: %01.2f sec', (double) $Micro + (double) $Seconds - START_TIME)); #------------------------------------------------------------------------- $Size = MB_StrLen($Result, 'ASCII'); #------------------------------------------------------------------------- if ($Size > 30720 && Preg_Match('/gzip/', (string) @$_SERVER['HTTP_ACCEPT_ENCODING'])) { #----------------------------------------------------------------------- Header(SPrintF('Real-Content-Length: %u', $Size)); #----------------------------------------------------------------------- $Result = GzEncode($Result);
if (Mb_StrLen($Customer) > 20) { $Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 20)); } #------------------------------------------------------------------------------- $Options[$Contract['ID']] = SPrintF('#%s / %s', $Number, $Customer); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'ContractID'), $Options, $ContractID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $NoBody = new Tag('NOBODY', $Comp); #------------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/ExtraIPOrder', 'Args' => array())); #------------------------------------------------------------------------------- $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ContractMake',{Window:'%s'});", Base64_Encode($Window))), '[новый]'); #------------------------------------------------------------------------------- $NoBody->AddChild($A); #------------------------------------------------------------------------------- $Table = array(array('Базовый договор', $NoBody)); #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Input', array('type' => 'button', 'name' => 'Submit', 'onclick' => "ShowWindow('/ExtraIPOrder',FormGet(form));", 'value' => 'Продолжить')); #------------------------------------------------------------------------------- if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Table[] = $Comp; #-------------------------------------------------------------------------------
} #--------------------------------------------------------- $Options = array(); #--------------------------------------------------------- foreach ($Profiles as $Profile) { $Options[$Profile['ID']] = $Profile['Name']; } #--------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'ProfileID'), $Options, $ProfileID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #--------------------------------------------------------- $NoBody = new Tag('NOBODY', $Comp); #--------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/DomainSelectOwner', 'Args' => array('DomainOrderID' => $DomainOrder['ID'], 'StepID' => 1, 'OwnerTypeID' => 'Profile'))); #--------------------------------------------------------- $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ProfileEdit',{Window:'%s',TemplatesIDs:'Natural,Juridical'});", Base64_Encode($Window))), '[новый]'); #--------------------------------------------------------- $NoBody->AddChild($A); #--------------------------------------------------------- $Table[] = array('Использовать профиль', $NoBody); #--------------------------------------------------------- #--------------------------------------------------------- $Comp = Comp_Load('Form/Input', array('name' => 'Agree', 'type' => 'checkbox', 'value' => 'yes', 'prompt' => 'Подверждаю своё согласие на передачу моих персональных данных вышестоящему регистратору доменов')); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Table[] = array('Согласен на передачу моих персональных данных регистратору', $Comp); #---------------------------------------------------------
switch (ValueOf($Clauses)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': # No more... break; case 'array': #------------------------------------------------------------------------------- $Clause = Current($Clauses); #------------------------------------------------------------------------------- $Comp = Comp_Load('Clauses/Load', $Clause['ID']); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $MessageID = SPrintF('clause_%s_%s', isset($GLOBALS['__USER']['ID']) ? $GLOBALS['__USER']['ID'] : 10, SubStr(Md5(JSON_Encode($Comp)), 0, 6)); #------------------------------------------------------------------------------- if (isset($_COOKIE[$MessageID])) { break; } #------------------------------------------------------------------------------- $Comp = Comp_Load('Information', $Comp['DOM'], 'Warning', $MessageID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $DOM->AddChild('Into', new Tag('SPAN', $Comp, new Tag('BR')), TRUE); #------------------------------------------------------------------------------- break; #------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
if (Mb_StrLen($Customer) > 20) { $Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 20)); } #------------------------------------------------------------------------------- $Options[$Contract['ID']] = $Customer; #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'ContractID'), $Options, $ContractID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $NoBody = new Tag('NOBODY', $Comp); #------------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/ServiceOrder', 'Args' => array('ServiceID' => $ServiceID))); #------------------------------------------------------------------------------- $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ContractMake',{Window:'%s'});", Base64_Encode($Window))), '[новый]'); #------------------------------------------------------------------------------- $NoBody->AddChild($A); #------------------------------------------------------------------------------- $Table = array(array('Базовый договор', $NoBody)); #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Table[] = 'Параметры услуги'; #------------------------------------------------------------------------------- if ($Service['Cost'] > 0) { #------------------------------------------------------------------------------- $Comp = Comp_Load('Formats/Currency', $Service['Cost']); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500);
function __ShutDown_Function__() { global $__SETTINGS, $__MESSAGES, $__ERRORS; echo '</TABLE>'; if (Count($__MESSAGES)) { echo '<H2>Сообщения:</H2><UL class="Standard">'; foreach ($__MESSAGES as $__MESSAGE) { echo SPrintF('<LI>%s</LI>', $__MESSAGE); } echo '</UL>'; } if (Count($__ERRORS)) { echo '<H2>Ошибки выполнения:</H2><UL class="Standard">'; foreach ($__ERRORS as $__ERROR) { echo SPrintF('<LI><PRE>%s</PRE></LI>', $__ERROR); } echo '</UL>'; } if (File_Exists(SPrintF('%s/INSTALL', SYSTEM_PATH))) { if (!@File_Put_Contents(SETTINGS_FILE, JSON_Encode($__SETTINGS))) { echo SPrintF('<P>Не удалось сохранить текущие настройки установки в файле (%s)</P>', SETTINGS_FILE); } } echo <<<EOD </BODY> </HTML> EOD; }
$Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 20)); } #------------------------------------------------------------------------------- $Options[$Contract['ID']] = SPrintF('#%s / %s', $Number, $Customer); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'ContractID'), $Options, $ContractID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $NoBody = new Tag('NOBODY', $Comp); #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/HostingOrder', 'Args' => array())); #------------------------------------------------------------------------------- $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ContractMake',{Window:'%s'});", Base64_Encode($Window))), '[новый]'); #------------------------------------------------------------------------------- $NoBody->AddChild($A); #------------------------------------------------------------------------------- $Table = array(array('Базовый договор', $NoBody)); #------------------------------------------------------------------------------- $UniqID = UniqID('HostingSchemes'); #------------------------------------------------------------------------------- $Comp = Comp_Load('Services/Schemes', 'HostingSchemes', $__USER['ID'], array('Name', 'ServersGroupID'), $UniqID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Columns = array('ID', 'Name', 'ServersGroupID', 'Comment', 'CostMonth', 'QuotaDisk', 'QuotaEmail', 'QuotaDomains', 'QuotaDBs', '(SELECT `Name` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupName`', '(SELECT `Comment` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupComment`', '(SELECT `SortID` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupSortID`');
<?php #------------------------------------------------------------------------------- /** @author Великодный В.В. (Joonte Ltd.) */ /******************************************************************************/ /******************************************************************************/ $__args_list = array('Value'); /******************************************************************************/ eval(COMP_INIT); /******************************************************************************/ /******************************************************************************/ return JSON_Encode($Value); #-------------------------------------------------------------------------------
function Started_Contract_Register($Settings, $PepsonID, $Person, $DomainZone) { /****************************************************************************/ $__args_types = array('array', 'string', 'array', 'string'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $HTTP = array('Protocol' => $Settings['Protocol'], 'Port' => $Settings['Port'], 'Address' => $Settings['Address'], 'Host' => $Settings['Address'], 'IsLogging' => $Settings['Params']['IsLogging']); #----------------------------------------------------------------------------- $Reseller = new Tag('reseller'); $Reseller->AddChild(new Tag('login', $Settings['Login'])); $Reseller->AddChild(new Tag('password', $Settings['Password'])); #----------------------------------------------------------------------------- $Tmp = System_Element('tmp'); if (Is_Error($Tmp)) { return ERROR | @Trigger_Error(500); } #----------------------------------------------------------------------------- $pCountry = isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry']; #----------------------------------------------------------------------------- $Path = SPrintF('%s/started/states[%s].json', $Tmp, $pCountry); #----------------------------------------------------------------------------- if (File_Exists($Path)) { #--------------------------------------------------------------------------- $States = IO_Read($Path); if (Is_Error($States)) { return ERROR | @Trigger_Error(500); } #--------------------------------------------------------------------------- $States = JSON_Decode($States, TRUE); if (!$States) { return ERROR | @Trigger_Error(500); } } else { #--------------------------------------------------------------------------- $Request = new Tag('RequestBody', $Reseller); #--------------------------------------------------------------------------- $objCountry = new Tag('objCountry'); $objCountry->AddChild(new Tag('method', 'getRegions')); $objCountry->AddChild(new Tag('country', $pCountry)); #--------------------------------------------------------------------------- $Request->AddChild($objCountry); #--------------------------------------------------------------------------- $Post = SprintF("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n%s", $Request->ToXMLString()); #--------------------------------------------------------------------------- $Responce = HTTP_Send('/', $HTTP, array(), $Post, array('Content-type: text/xml')); if (Is_Error($Responce)) { return ERROR | @Trigger_Error(500); } #--------------------------------------------------------------------------- $Response = Trim($Responce['Body']); #--------------------------------------------------------------------------- $Answer = String_XML_Parse($Response); if (Is_Exception($Answer)) { return new gException('WRONG_ANSWER', $Response, $Answer); } #--------------------------------------------------------------------------- $States = Current($States->ToArray('item')); #--------------------------------------------------------------------------- $IsWrite = IO_Write($Path, JSON_Encode($States), TRUE); if (Is_Error($IsWrite)) { return ERROR | @Trigger_Error(500); } } #----------------------------------------------------------------------------- $objUser = new Tag('objUser'); $objUser->AddChild(new Tag('method', 'create')); #----------------------------------------------------------------------------- $objUser->AddChild(new Tag('email', $Person['Email'])); $objUser->AddChild(new Tag('password', SubStr(Md5(UniqID()), -8))); #----------------------------------------------------------------------------- $IsRussian = In_Array(isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry'], array('RU', 'BY', 'UA')); #----------------------------------------------------------------------------- switch ($PepsonID) { case 'Natural': #------------------------------------------------------------------------- $pStateID = 0; #------------------------------------------------------------------------- $pState = $Person['pState']; #------------------------------------------------------------------------- foreach ($States as $State) { #----------------------------------------------------------------------- if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($pState))) { #--------------------------------------------------------------------- $pStateID = $State['id']; #--------------------------------------------------------------------- Debug(SPrintF('Найдена область: %s', $pStateID)); #--------------------------------------------------------------------- break; } } #------------------------------------------------------------------------- if (!$pStateID) { #----------------------------------------------------------------------- Debug(SPrintF('Область не найдена, проверьте название области (%s)', $pState)); #----------------------------------------------------------------------- return new gException('POST_REGION_NOT_FOUND', 'Область почтового адреса не найдена'); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('type', 'person')); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('fname', $Person['Name'])); $objUser->AddChild(new Tag('lname', $Person['Lastname'])); $objUser->AddChild(new Tag('mname', $Person['Sourname'])); $objUser->AddChild(new Tag('doc_issued', $Person['PasportWhom'])); } else { $objUser->AddChild(new Tag('fname', Translit($Person['Name']))); $objUser->AddChild(new Tag('lname', Translit($Person['Lastname']))); $objUser->AddChild(new Tag('mname', Translit($Person['Sourname']))); $objUser->AddChild(new Tag('doc_issued', Translit($Person['PasportWhom']))); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('p_inn', '')); $objUser->AddChild(new Tag('doc_serial', $Person['PasportLine'])); $objUser->AddChild(new Tag('doc_number', $Person['PasportNum'])); $objUser->AddChild(new Tag('doc_date', $Person['PasportDate'])); $objUser->AddChild(new Tag('birth_date', $Person['BornDate'])); #------------------------------------------------------------------------- $objUser->AddChild(new Tag('country', StrToLower(isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry']))); #------------------------------------------------------------------------- $objUser->AddChild(new Tag('zip', $Person['pIndex'])); $objUser->AddChild(new Tag('state', $pStateID)); $objUser->AddChild(new Tag('city_type', 'city')); $objUser->AddChild(new Tag('addr_type', StrToLower($Person['pType']))); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('city', $Person['pCity'])); $objUser->AddChild(new Tag('addr', SPrintF('%s %s', $Person['pType'], $Person['pAddress']))); } else { $objUser->AddChild(new Tag('city', Translit($Person['pCity']))); $objUser->AddChild(new Tag('addr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])))); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('pzip', $Person['pIndex'])); $objUser->AddChild(new Tag('pstate', $pStateID)); $objUser->AddChild(new Tag('pcity_type', 'city')); $objUser->AddChild(new Tag('paddr_type', StrToLower($Person['pType']))); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('pcity', $Person['pCity'])); $objUser->AddChild(new Tag('paddr', SPrintF('%s %s', $Person['pType'], $Person['pAddress']))); $objUser->AddChild(new Tag('pto', $Person['pRecipient'])); } else { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('pcity', Translit($Person['pCity']))); $objUser->AddChild(new Tag('paddr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])))); $objUser->AddChild(new Tag('pto', Translit($Person['pRecipient']))); } break; case 'Juridical': #------------------------------------------------------------------------- $objUser->AddChild(new Tag('type', 'organization')); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('fname', $Person['dName'])); $objUser->AddChild(new Tag('lname', $Person['dLastname'])); $objUser->AddChild(new Tag('mname', $Person['dSourname'])); $objUser->AddChild(new Tag('org', SPrintF('%s "%s"', $Person['CompanyFormFull'], $Person['CompanyName']))); } else { $objUser->AddChild(new Tag('fname', Translit($Person['dName']))); $objUser->AddChild(new Tag('lname', Translit($Person['dLastname']))); $objUser->AddChild(new Tag('mname', Translit($Person['dSourname']))); $objUser->AddChild(new Tag('org', SPrintF('%s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull'])))); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('o_inn', $Person['Inn'])); $objUser->AddChild(new Tag('kpp', $Person['Kpp'])); #------------------------------------------------------------------------- $objUser->AddChild(new Tag('country', StrToLower($Person['jCountry']))); #------------------------------------------------------------------------- $objUser->AddChild(new Tag('zip', $Person['jIndex'])); #------------------------------------------------------------------------- $jStateID = 0; #------------------------------------------------------------------------- $jState = $Person['jState']; #------------------------------------------------------------------------- foreach ($States as $State) { #----------------------------------------------------------------------- if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($jState))) { #--------------------------------------------------------------------- $jStateID = $State['id']; #--------------------------------------------------------------------- Debug(SPrintF('Найдена область: %s', $jStateID)); #--------------------------------------------------------------------- break; } } #------------------------------------------------------------------------- if (!$jStateID) { #----------------------------------------------------------------------- Debug(SPrintF('Область не найдена, проверьте название области (%s)', $jState)); #----------------------------------------------------------------------- return new gException('JURIDICAL_REGION_NOT_FOUND', 'Область юридического адреса не найдена'); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('state', $jStateID)); $objUser->AddChild(new Tag('city_type', 'city')); $objUser->AddChild(new Tag('addr_type', StrToLower($Person['jType']))); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('city', $Person['jCity'])); $objUser->AddChild(new Tag('addr', SPrintF('%s %s', $Person['jType'], $Person['jAddress']))); } else { $objUser->AddChild(new Tag('city', Translit($Person['jCity']))); $objUser->AddChild(new Tag('addr', Translit(SPrintF('%s %s', $Person['jType'], $Person['jAddress'])))); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('pzip', $Person['pIndex'])); #------------------------------------------------------------------------- $pStateID = 0; #------------------------------------------------------------------------- $pState = $Person['pState']; #------------------------------------------------------------------------- foreach ($States as $State) { #----------------------------------------------------------------------- if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($pState))) { #--------------------------------------------------------------------- $pStateID = $State['id']; #--------------------------------------------------------------------- Debug(SPrintF('Найдена область: %s', $pStateID)); #--------------------------------------------------------------------- break; } } #------------------------------------------------------------------------- if (!$pStateID) { #----------------------------------------------------------------------- Debug(SPrintF('Область не найдена, проверьте название области (%s)', $pState)); #----------------------------------------------------------------------- return new gException('POST_REGION_NOT_FOUND', 'Область почтового адреса не найдена'); } #------------------------------------------------------------------------- $objUser->AddChild(new Tag('pstate', $pStateID)); $objUser->AddChild(new Tag('pcity_type', 'city')); $objUser->AddChild(new Tag('paddr_type', StrToLower($Person['pType']))); #------------------------------------------------------------------------- if ($IsRussian) { #----------------------------------------------------------------------- $objUser->AddChild(new Tag('pcity', $Person['pCity'])); $objUser->AddChild(new Tag('paddr', SPrintF('%s %s', $Person['pType'], $Person['pAddress']))); $objUser->AddChild(new Tag('pto', SPrintF('%s "%s"', $Person['CompanyFormFull'], $Person['CompanyName']))); } else { $objUser->AddChild(new Tag('pcity', Translit($Person['pCity']))); $objUser->AddChild(new Tag('paddr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])))); $objUser->AddChild(new Tag('pto', SPrintF('%s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull'])))); } break; default: return ERROR | @Trigger_Error(101); } #----------------------------------------------------------------------------- $Phone = $Person['Phone']; #----------------------------------------------------------------------------- if ($Phone) { #--------------------------------------------------------------------------- $Phone = StrPBrk($Phone, ' '); #--------------------------------------------------------------------------- $objUser->AddChild(new Tag('tel', Trim($Phone))); } else { $objUser->AddChild(new Tag('tel')); } #----------------------------------------------------------------------------- $Fax = $Person['Fax']; #----------------------------------------------------------------------------- if ($Fax) { #--------------------------------------------------------------------------- $Fax = StrPBrk($Fax, ' '); #--------------------------------------------------------------------------- $objUser->AddChild(new Tag('fax', Trim($Fax))); } else { $objUser->AddChild(new Tag('fax')); } #----------------------------------------------------------------------------- $Request = new Tag('RequestBody', $Reseller); #----------------------------------------------------------------------------- $Request->AddChild($objUser); #----------------------------------------------------------------------------- $Post = SprintF("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n%s", $Request->ToXMLString()); #----------------------------------------------------------------------------- $Responce = HTTP_Send('/', $HTTP, array(), $Post, array('Content-type: text/xml; charset=utf-8')); if (Is_Error($Responce)) { return ERROR | @Trigger_Error(500); } #----------------------------------------------------------------------------- $Response = Trim($Responce['Body']); #----------------------------------------------------------------------------- $Answer = String_XML_Parse($Response); if (Is_Exception($Answer)) { return new gException('WRONG_ANSWER', $Response, $Answer); } #----------------------------------------------------------------------------- $Answer = $Answer->ToArray(); #----------------------------------------------------------------------------- $Answer = $Answer['AnswerBody']; #----------------------------------------------------------------------------- if (isset($Answer['statusCode'])) { return new gException('REGISTRATOR_ERROR', SPrintF('[%s]=(%s)', $Answer['statusCode'], $Answer['statusMessage'])); } #----------------------------------------------------------------------------- return array('TicketID' => $Answer['user_id']); }
if (Mb_StrLen($Customer) > 20) { $Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 20)); } #------------------------------------------------------------------------------- $Options[$Contract['ID']] = SPrintF('#%s / %s', $Number, $Customer); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'ContractID'), $Options, $ContractID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $NoBody = new Tag('NOBODY', $Comp); #------------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/DomainOrder', 'Args' => array())); #------------------------------------------------------------------------------- $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ContractMake',{Window:'%s'});", Base64_Encode($Window))), '[новый]'); #------------------------------------------------------------------------------- $NoBody->AddChild($A); #------------------------------------------------------------------------------- $Table = array(array('Базовый договор', $NoBody)); #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $UniqID = UniqID('DomainSchemes'); #------------------------------------------------------------------------------- $Comp = Comp_Load('Services/Schemes', 'DomainSchemes', $__USER['ID'], array('Name', 'ServerID'), $UniqID, "`IsActive` = 'yes'"); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #-------------------------------------------------------------------------------
return ERROR | @Trigger_Error(500); case 'exception': # No more... break; case 'array': #--------------------------------------------------------------------------- foreach ($Tasks as $Task) { #------------------------------------------------------------------------- $XML = String_XML_Parse($Task['Params']); if (Is_Exception($XML)) { continue; } #------------------------------------------------------------------------- $Array = $XML->ToArray(); #------------------------------------------------------------------------- if (!isset($Array['XML'])) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------- $IsUpdate = DB_Update('Tasks', array('Params' => JSON_Encode($Array['XML'])), array('ID' => $Task['ID'])); if (Is_Error($IsUpdate)) { return ERROR | @Trigger_Error(500); } } break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- return TRUE; #-------------------------------------------------------------------------------
#----------------------------------------------------------------------- if (Mb_StrLen($Customer) > 20) { $Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 20)); } #----------------------------------------------------------------------- $Options[$Contract['ID']] = $Customer; } #------------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'ContractID'), $Options); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------- $NoBody = new Tag('NOBODY', $Comp); #------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/API/OrdersTransfer', 'Args' => array())); #------------------------------------------------------------------------- $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ContractMake',{Window:'%s'});", Base64_Encode($Window))), '[новый]'); #------------------------------------------------------------------------- $NoBody->AddChild($A); #------------------------------------------------------------------------- $Table = array(array('Базовый договор', $NoBody)); #------------------------------------------------------------------------- $Comp = Comp_Load('Form/Input', array('type' => 'button', 'name' => 'Submit', 'onclick' => "FormEdit('/API/OrdersTransfer','OrdersTransferForm','Перенос услуги на выбранный договор');", 'value' => 'Перенести')); #--------------------------------------------------------------------- if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #--------------------------------------------------------------------- $Table[] = $Comp; #---------------------------------------------------------------------
break; case 'ContractEnclosure': #--------------------------------------------------------------------- $UniqID = Explode(':', $MotionDocument['UniqID']); #--------------------------------------------------------------------- $AjaxCall = array('Url' => '/ContractEnclosureDownload', 'Args' => array('ContractEnclosureID' => Next($UniqID))); break; case 'WorksCompliteReport': #--------------------------------------------------------------------- $UniqID = Explode(':', $MotionDocument['UniqID']); #--------------------------------------------------------------------- $UniqID = Explode('/', Next($UniqID)); #--------------------------------------------------------------------- $AjaxCall = array('Url' => '/WorksCompliteReportDownload', 'Args' => array('ContractID' => $MotionDocument['ContractID'], 'Month' => Next($UniqID))); break; default: continue 2; } #------------------------------------------------------------------------- $IsUpdate = DB_Update('MotionDocuments', array('AjaxCall' => JSON_Encode($AjaxCall)), array('ID' => $MotionDocument['ID'])); if (Is_Error($IsUpdate)) { return ERROR | @Trigger_Error(500); } } break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- return TRUE; #-------------------------------------------------------------------------------
$Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 20)); } #------------------------------------------------------------------------------- $Options[$Contract['ID']] = SPrintF('#%s / %s', $Number, $Customer); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('name' => 'ContractID'), $Options, $ContractID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $NoBody = new Tag('NOBODY', $Comp); #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/DNSmanagerOrder', 'Args' => array())); #------------------------------------------------------------------------------- $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ContractMake',{Window:'%s'});", Base64_Encode($Window))), '[новый]'); #------------------------------------------------------------------------------- $NoBody->AddChild($A); #------------------------------------------------------------------------------- $Table = array(array('Базовый договор', $NoBody)); #------------------------------------------------------------------------------- $UniqID = UniqID('DNSmanagerSchemes'); #------------------------------------------------------------------------------- $Comp = Comp_Load('Services/Schemes', 'DNSmanagerSchemes', $__USER['ID'], array('Name', 'ServersGroupID'), $UniqID); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Columns = array('ID', 'Name', 'ServersGroupID', 'Comment', 'CostMonth', 'DomainLimit', '(SELECT `Name` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupName`', '(SELECT `Comment` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupComment`', '(SELECT `SortID` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupSortID`');
} } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # строим массив параметров подстановки foreach (Array_Keys($Template) as $Key) { if ($Key != 'SystemID') { continue; } #------------------------------------------------------------------------------- if (Is_Array($Template[$Key])) { #------------------------------------------------------------------------------- $Script = array('var Settings = {};'); #------------------------------------------------------------------------------- foreach (Array_Keys($Template[$Key]) as $SystemID) { $Script[] = SPrintF("Settings['%s'] = %s;", $SystemID, JSON_Encode($Template[$Key][$SystemID]['Settings'])); } #------------------------------------------------------------------------------- $Script[] = "function SettingsUpdate(){\nvar \$Form = document.forms['ServerEditForm'];\nvar \$System = Settings[\$Form.{$Key}.value];\nfor(var i in \$System)\n\$Form[i].value = \$System[i];\n}"; #------------------------------------------------------------------------------- $DOM->AddChild('Head', new Tag('SCRIPT', Implode("\n", $Script))); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Input', array('name' => 'TemplateID', 'type' => 'hidden', 'value' => $TemplateID)); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); }
#------------------------------------------------------------------------------- $Server = DB_Select('Servers', array('*'), array('UNIQ', 'ID' => $Order['ServerID'])); #------------------------------------------------------------------------------- switch (ValueOf($Server)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': break; case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- Exec(SPrintF('"%s" "%s" "OnCreate" "%s" "%s" "%s" 2>&1', $File, $Order['Email'], $Number, $Order['Keys'], Is_Array($Server) ? Base64_Encode(JSON_Encode($Server)) : 'server not exists'), $Out, $ReturnValue); #------------------------------------------------------------------------------- Debug(SPrintF('[comp/Tasks/ServiceCreate]: exec return code = %s, Out = %s', $ReturnValue, print_r($Out, true))); #------------------------------------------------------------------------------- if ($ReturnValue != 0) { return new gException('ERROR_EXECUTE_COMMAND', 'Произошла ошибка при выполнении команды назначенной статусу'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Comp = Comp_Load('www/API/StatusSet', array('ModeID' => 'Orders', 'StatusID' => 'Active', 'RowsIDs' => $ServiceOrderID, 'Comment' => 'Заказ создан', 'IsNoTrigger' => TRUE)); #------------------------------------------------------------------------------- switch (ValueOf($Comp)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return ERROR | @Trigger_Error(400);
$PSA .= '<hr class="dotted">'; } $PSA .= File_Get_Contents('psa.txt'); } if ($PSA != false) { $Answer['psa'] = $PSA; unset($PSA); } $Raw = $Answer['report']; foreach ($Raw as $Service => $Report) { $Downs = (int) $m->get('mc_status_' . $Service); if ($Report['status'] === MinecraftStatusChecker::STATUS_OFFLINE) { $Answer['report'][$Service]['downtime'] = '±' . ++$Downs; } } $m->set('mc_status', JSON_Encode($Answer), 1800); unset($Downs, $Report, $Service, $Answer); /* * Downtime reporting */ $ProperNames = array('login' => 'Login Service', 'session' => 'Multiplayer Sessions', 'website' => 'Minecraft Website', 'skins' => 'Player Skins', 'realms' => 'Minecraft Realms'); $ProperNameAdj = array('login' => 'is', 'session' => 'are', 'website' => 'is', 'skins' => 'are', 'realms' => 'are'); if ($BackOnline = $m->get('mc_status_back_online')) { $m->delete('mc_status_back_online'); foreach ($BackOnline as $Service => $Downs) { if ($Raw[$Service] === MinecraftStatusChecker::STATUS_OFFLINE) { $m->set('mc_status_' . $Service, ++$Downs, 120); } else { $Adj = $ProperNameAdj[$Service]; //Tweet( ' ✔ ' . $ProperNames[ $Service ] . ' ' . $Adj . ' back online, ' . ( $Adj === 'is' ? 'it was' : 'they were' ) . ' down for ' . $Downs . ' minutes', Time( ) - 60 ); }
private function HandleResponse($File, $Data) { if ($File === 'API/SupportedAPIList.json') { $Data = JSON_Decode($Data, true); if (!isset($Data['apilist']['interfaces'])) { return false; } foreach ($Data['apilist']['interfaces'] as $Interface) { $File = __DIR__ . '/API/' . $Interface['name'] . '.json'; $Interface = JSON_Encode($Interface, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) . PHP_EOL; if (!File_Exists($File) || StrCmp(File_Get_Contents($File), $Interface) !== 0) { File_Put_Contents($File, $Interface); } } return true; } else { if ($File === 'ClientManifest/steam_client_publicbeta_osx' || $File === 'ClientManifest/steam_cmd_publicbeta_osx') { foreach ($this->ClientArchives as $Archive) { if (Preg_Match('/"' . Str_Replace('.', '\\.', $Archive) . '\\.([a-f0-9]{40})"/m', $Data, $Test) === 1) { $Test = $Test[1]; if (!isset($this->ETags[$Archive]) || $this->ETags[$Archive] !== $Test) { $this->Log('Downloading {lightblue}' . $Archive . '{normal} - checksum: ' . $Test); $this->ETags[$Archive] = $Test; $this->URLsToFetch[] = array('URL' => 'https://steamcdn-a.akamaihd.net/client/' . $Archive . '.' . $Test, 'File' => '.support/' . $Archive); } else { $this->Log('Matched {lightblue}' . $Archive . '{normal}, but we already have it cached'); } } else { $this->Log('{yellow}Failed to find {lightblue}' . $Archive); } } unset($Test); } else { if ($File === 'Random/ValveGroup.json' || $File === 'Random/SteamModerators.json') { LibXML_Use_Internal_Errors(true); $Data = SimpleXML_Load_String($Data); if ($Data === false || empty($Data->members->steamID64)) { return false; } $Data = Array_Values((array) $Data->members->steamID64); Sort($Data); $Data = JSON_Encode($Data, JSON_PRETTY_PRINT); } else { if ($File === 'Scripts/Dota2/heropickerdata.json') { $Data = JSON_Decode($Data, true); $Data = JSON_Encode($Data, JSON_PRETTY_PRINT); } else { if ($File === 'Scripts/Dota2/heropedia.js') { $Data = preg_replace('/\\?v=[0-9]+/', '?v=ayyvalve', $Data); } else { if (SubStr($File, 0, 13) === 'ItemSchemaURL') { $Data = JSON_Decode($Data, true); if (isset($Data['result']['items_game_url'])) { $this->URLsToFetch[] = array('URL' => $Data['result']['items_game_url'], 'File' => str_replace('ItemSchemaURL', 'ItemSchema', $File)); } return true; } else { if (SubStr($File, -4) === '.zip') { $File = __DIR__ . '/' . $File; File_Put_Contents($File, $Data); $Archive = SubStr(StrrChr($File, '/'), 1); if (SHA1_File($File) !== $this->ETags[$Archive]) { $this->Log('{lightred}Checksum mismatch for ' . $Archive); return false; } $this->ExtractClientArchives = true; return true; } else { if (SubStr($File, -5) === '.html') { if (StrrPos($Data, '</html>') === false) { return false; } } } } } } } } } $File = __DIR__ . '/' . $File; $Folder = dirname($File); if (!is_dir($Folder)) { $this->Log('{lightblue}Creating ' . $Folder); mkdir($Folder, 0755, true); } if (File_Exists($File) && StrCmp(File_Get_Contents($File), $Data) === 0) { return false; } File_Put_Contents($File, $Data); return true; }
} #------------------------------------------------------------------------------- $File = SubStr($File, StrLen(SYSTEM_PATH) + 1); #------------------------------------------------------------------------------- $Snapshot[SPrintF('MD5%s', MD5(SPrintF('%s-%s', $MD5, MD5($File))))] = $File; #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- echo "Запрос обновлений\n"; #------------------------------------------------------------------------------- $Config = Config(); #------------------------------------------------------------------------------- $Server = $Config['Update']['Server']; #------------------------------------------------------------------------------- $Answer = HTTP_Send('/GetUpdate', $Server, array('HostsIDs' => Implode(',', $HostsIDs)), array('Snapshot' => JSON_Encode($Snapshot))); if (Is_Error($Answer)) { return "ERROR: не удалось выполнить запрос к серверу\n"; } #------------------------------------------------------------------------------- echo "Ответ получен\n--\n"; #------------------------------------------------------------------------------- $Answer = @JSON_Decode($Answer['Body'], TRUE); if (!Is_Array($Answer)) { return SPrintF("---\n%s\n---\n", Implode("\n", Array_Slice($__SYSLOG, Count($__SYSLOG) - 20))); } #------------------------------------------------------------------------------- switch ($Answer['Status']) { case 'Error': return SPrintF("---\n%s\n---\n", Implode("\n", Array_Slice($__SYSLOG, Count($__SYSLOG) - 20))); case 'Exception':
return ERROR | @Trigger_Error(500); case 'exception': #------------------------------------------------------------------------- $Args = array('TypeID' => $TypeID); #------------------------------------------------------------------------- if ($Window) { $Args['Window'] = $Window; } #------------------------------------------------------------------------- $Window = JSON_Encode(array('Url' => '/ContractMake', 'Args' => $Args)); #------------------------------------------------------------------------- $Params = array('TemplateID' => $TypeID, 'Window' => Base64_Encode($Window)); #------------------------------------------------------------------------- if ($IsSimple) { #----------------------------------------------------------------------- $Simple = @JSON_Encode($Type['Simple']); if (!$Simple) { return ERROR | @Trigger_Error(500); } #----------------------------------------------------------------------- $Params['Simple'] = Base64_Encode($Simple); } #------------------------------------------------------------------------- $Comp = Comp_Load('www/ProfileEdit', $Params); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------- return $Comp; case 'array': #-------------------------------------------------------------------------