function TVL_Create($TVL) { /****************************************************************************/ $__args_types = array('array'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $Result = ''; #----------------------------------------------------------------------------- foreach (Array_Keys($TVL) as $WordID) { #--------------------------------------------------------------------------- $Word = $TVL[$WordID]; #--------------------------------------------------------------------------- if (!Is_Array($Word)) { $Size = StrLen($Word); } else { $Word = Bytes_I2B($Size = Next($Word), Prev($Word)); } #--------------------------------------------------------------------------- $Result .= Bytes_I2B(WORD, HexDec($WordID)) . Bytes_I2B(WORD, $Size) . $Word; # Значение } #----------------------------------------------------------------------------- return $Result; }
public function __construct() { while (true) { $tmp = new test(); $EID = $this->GetNewEID(); $this->RunningEvent[$EID] = $tmp; unset($tmp); echo count($this->RunningEvent) . "\n"; end($this->RunningEvent); do { $EID = Key($this->RunningEvent); if ($this->RunningEvent[$EID]->dead()) { unset($this->RunningEvent[$EID]); } $Continue = Prev($this->RunningEvent); } while ($Continue != FALSE); } }
private function Timers() { static $StartTime = false; if ($StartTime == false) { $StartTime = time(); } $Events = $GLOBALS['Cron']->Timer($StartTime); $StartTime = time() + 1; // CRON if (is_array($Events)) { foreach ($Events as $Event) { // zde se pousti event $tmp = new Event($Event['file']); $tmp->SetData($Event['data']); $tmp->SetCronTime($Event['time']); $Part = 'n/a'; if (isset($Event['part'])) { $Part = $Event['part']; } if (!$tmp->Execute($Part, $Err)) { // Delete Event if error unset($tmp); } elseif ($tmp->TriggerCount() < 1) { // if There are no triggers, we can delete instace unset($tmp); } else { $EID = $this->GetNewEID(); $this->RunningEvent[$EID] = $tmp; unset($tmp); } } } // Running events timeouts if (count($this->RunningEvent) > 0) { end($this->RunningEvent); do { $EID = Key($this->RunningEvent); $this->RunningEvent[$EID]->Timer($StartTime); // if There are no triggers, we can delete instace if (isset($this->RunningEvent[$EID]) && $this->RunningEvent[$EID]->GetTTL() < $StartTime) { unset($this->RunningEvent[$EID]); } if (isset($this->RunningEvent[$EID]) && $this->RunningEvent[$EID]->TriggerCount() < 1) { unset($this->RunningEvent[$EID]); } $Continue = Prev($this->RunningEvent); } while ($Continue != FALSE); } unset($tmp); unset($Continue); unset($EID); $Events = array(); unset($Events); }
function Config_Read($Array, $Path = array(), $Level = 1) { #------------------------------------------------------------------------------- # ASort added by lissyara for test purpose, 2014-01-16 in 15:22 MSK ASort($Array); #------------------------------------------------------------------------------- $TmpArray = array(); #------------------------------------------------------------------------------- $Names = array('Name', 'IsActive', 'IsEvent', 'Valute', 'Course', 'Measure', 'IsCourseUpdate', 'MinimumPayment', 'MaximumPayment'); #------------------------------------------------------------------------------- foreach ($Names as $Name) { #------------------------------------------------------------------------------- if (isset($Array[$Name])) { #------------------------------------------------------------------------------- $TmpArray[$Name] = $Array[$Name]; #------------------------------------------------------------------------------- unset($Array[$Name]); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- $Array = $TmpArray + $Array; #------------------------------------------------------------------------------- #----------------------------------------------------------------------------- static $Index = 1; #----------------------------------------------------------------------------- $Links =& Links(); #----------------------------------------------------------------------------- $ConfigNames =& $Links['ConfigNames']; #----------------------------------------------------------------------------- $Node = new Tag('DIV', array('class' => 'Node')); #----------------------------------------------------------------------------- foreach (Array_Keys($Array) as $ElementID) { #--------------------------------------------------------------------------- $Element = $Array[$ElementID]; #--------------------------------------------------------------------------- $ID = SPrintF('ID%06u', $Index++); #--------------------------------------------------------------------------- $StringPath = Implode('/', $CurrentPath = Array_Merge($Path, array($ElementID))); #--------------------------------------------------------------------------- if (isset($ConfigNames[$ElementID])) { #------------------------------------------------------------------------- $Item = Explode('|', $ConfigNames[$ElementID]); #------------------------------------------------------------------------- if (isset($ConfigNames[SPrintF('Prompt.%s', $ElementID)])) { $ElementPrompt = $ConfigNames[SPrintF('Prompt.%s', $ElementID)]; } #------------------------------------------------------------------------- } else { #------------------------------------------------------------------------- if (!isset($ConfigNames[$StringPath])) { continue; } #------------------------------------------------------------------------- $Item = Explode('|', $ConfigNames[$StringPath]); #------------------------------------------------------------------------- if (isset($ConfigNames[SPrintF('Prompt.%s', $StringPath)])) { $ElementPrompt = $ConfigNames[SPrintF('Prompt.%s', $StringPath)]; } #------------------------------------------------------------------------- } #--------------------------------------------------------------------------- $ElementName = Current($Item); #--------------------------------------------------------------------------- if (Count($Item) > 1) { #------------------------------------------------------------------------- $Type = Next($Item); #------------------------------------------------------------------------- switch ($Type) { case 'select': #--------------------------------------------------------------------- $Select = array(); #--------------------------------------------------------------------- $Options = Explode(',', Next($Item)); #--------------------------------------------------------------------- foreach ($Options as $Option) { #------------------------------------------------------------------- $Option = Explode('=', $Option); #------------------------------------------------------------------- $Select[Next($Option)] = Prev($Option); } #--------------------------------------------------------------------- $Comp = Comp_Load('Form/Select', array('onchange' => SPrintF("ConfigChange('%s',this.value);", $StringPath)), $Select, $Element); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } break; default: return ERROR | @Trigger_Error(101); } } else { $Comp = new Tag('SPAN', array('class' => 'NodeParam', 'onclick' => SPrintF("Value = prompt('Значение1:',this.innerHTML.XMLUnEscape());if(Value != null){ ConfigChange('%s',Value); this.innerHTML = Value; }", $StringPath)), Is_Array($Element) ? '[EMPTY]' : ($Element == '' ? '[EMPTY]' : $Element)); } #--------------------------------------------------------------------------- if (Is_Array($Element) && Count($Element)) { #------------------------------------------------------------------------- $Result = Config_Read($Element, $CurrentPath, $Level + 1); #------------------------------------------------------------------------- if ($Result) { #----------------------------------------------------------------------- $NodeName = new Tag('P', array('class' => 'NodeName'), new Tag('IMG', array('align' => 'left', 'src' => 'SRC:{Images/Icons/Node.gif}'))); #----------------------------------------------------------------------- $NodeName->AddChild(new Tag('A', array('href' => SPrintF("javascript:ConfigSwitch('%s');", $ID)), $ElementName)); #----------------------------------------------------------------------- $Node->AddChild($NodeName); #----------------------------------------------------------------------- $Node->AddChild(new Tag('DIV', array('id' => $ID, 'style' => 'display:none;'), $Result)); } } else { #----------------------------------------------------------------------- $Params = isset($ElementPrompt) ? array('onMouseOver' => SPrintF('PromptShow(event,\'%s\',this);', $ElementPrompt)) : array(); #----------------------------------------------------------------------- $Node->AddChild(new Tag('P', array('class' => 'NodeParam'), new Tag('SPAN', $Params, SPrintF('%s: ', $ElementName)), $Comp)); #----------------------------------------------------------------------- unset($ElementPrompt); #----------------------------------------------------------------------- } #----------------------------------------------------------------------- } #----------------------------------------------------------------------------- return Count($Node->Childs) ? $Node : FALSE; }
continue; } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Pieces = Explode('@', $Email); #------------------------------------------------------------------------------- $IDNAConverter = new IDNAConvert(); #------------------------------------------------------------------------------- $Email = SPrintF('%s@%s', $Pieces[0], $IDNAConverter->encode($Pieces[1])); #------------------------------------------------------------------------------- if (!Preg_Match($Regulars['Email'], $Email)) { continue; } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Used = Prev($Box); #------------------------------------------------------------------------------- $Usage = $Used / $Total * 100; #------------------------------------------------------------------------------- if ($Usage > $Settings['EmailBoxesNotifiesPercent']) { #------------------------------------------------------------------------------- $IsAdd = Comp_Load('www/Administrator/API/TaskEdit', array('UserID' => $HostingOrder['UserID'], 'TypeID' => 'Email', 'Params' => array($Email, 'Квота почтового ящика', TemplateReplace('Tasks.GC.EmailBoxesNotifies', array('Email' => $Email, 'Usage' => $Usage), FALSE), Implode("\n", $Heads)))); #------------------------------------------------------------------------------- switch (ValueOf($IsAdd)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return ERROR | @Trigger_Error(400); case 'array': # No more... break;
function MasterName_Contract_Register($Settings, $PepsonID, $Person, $DomainZone) { /****************************************************************************/ $__args_types = array('array', 'string', 'array', 'string'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $HTTP = array('Address' => $Settings['Address'], 'Port' => $Settings['Port'], 'Host' => $Settings['Address'], 'Protocol' => $Settings['Protocol'], 'Charset' => 'CP1251', 'IsLogging' => $Settings['Params']['IsLogging']); #----------------------------------------------------------------------------- $Query = array(); #----------------------------------------------------------------------------- $Query[] = '[request]'; $Query[] = SPrintF('login: %s', $Settings['Login']); $Query[] = SPrintF('password: %s', $Settings['Password']); $Query[] = 'action: create_client'; #----------------------------------------------------------------------------- $RequestID = UniqID('ID'); #----------------------------------------------------------------------------- $Query[] = SPrintF('request-id: %s', $RequestID); #----------------------------------------------------------------------------- $Query[] = ''; #----------------------------------------------------------------------------- switch ($PepsonID) { case 'Natural': #------------------------------------------------------------------------- $Query[] = '[client]'; #------------------------------------------------------------------------- $Query[] = 'client-type: ФИЗЛИЦО'; $Query[] = $Person['PasportCountry'] != 'RU' ? 'non-resident:' : 'resident:'; #------------------------------------------------------------------------- $Query[] = SPrintF('person-r: %s %s %s', $Person['Sourname'], $Person['Name'], $Person['Lastname']); $Query[] = SPrintF('person: %s %s %s', Translit($Person['Name']), Mb_SubStr(Translit($Person['Lastname']), 0, 1), Translit($Person['Sourname'])); $Query[] = SPrintF('email: %s', $Person['Email']); #------------------------------------------------------------------------- $Phone = $Person['Phone']; #------------------------------------------------------------------------- $Query[] = SPrintF('phone: %s', $Phone); #------------------------------------------------------------------------- $Fax = $Person['Fax']; #------------------------------------------------------------------------- $Query[] = SPrintF('fax: %s', $Fax ? $Fax : $Phone); #------------------------------------------------------------------------- $BornDate = Explode('.', $Person['BornDate']); #------------------------------------------------------------------------- $Query[] = SPrintF('birth-date: %s-%s-%s', End($BornDate), Prev($BornDate), Prev($BornDate)); #------------------------------------------------------------------------- $PasportLine = Preg_Split('/^([0-9]{2})/', $Person['PasportLine'], -1, PREG_SPLIT_DELIM_CAPTURE); #------------------------------------------------------------------------- $Query[] = SPrintF('passport-series: %s %s', Next($PasportLine), Next($PasportLine)); $Query[] = SPrintF('passport-number: %s', $Person['PasportNum']); #------------------------------------------------------------------------- $PasportDate = Explode('.', $Person['PasportDate']); #------------------------------------------------------------------------- $Query[] = SPrintF('passport-date: %s-%s-%s', End($PasportDate), Prev($PasportDate), Prev($PasportDate)); $Query[] = SPrintF('passport-org: %s', $Person['PasportWhom']); #------------------------------------------------------------------------- $Query[] = SPrintF('post-country: %s', $Person['pCountry']); $Query[] = SPrintF('post-region: %s', $Person['pState']); $Query[] = SPrintF('post-zip-code: %s', $Person['pIndex']); $Query[] = SPrintF('post-city: %s', $Person['pCity']); $Query[] = SPrintF('post-street: %s %s, %s', $Person['pType'], $Person['pAddress'], $Person['pRecipient']); #------------------------------------------------------------------------- $Query[] = SPrintF('reg-country: %s', $Person['pCountry']); $Query[] = SPrintF('reg-region: %s', $Person['pState']); $Query[] = SPrintF('reg-city: %s', $Person['pCity']); $Query[] = SPrintF('reg-street: %s %s', $Person['pType'], $Person['pAddress']); break; case 'Juridical': #------------------------------------------------------------------------- $Query[] = '[client]'; #------------------------------------------------------------------------- $Query[] = 'client-type: ЮРЛИЦО'; $Query[] = 'resident:'; #------------------------------------------------------------------------- $Query[] = SPrintF('ownership: %s', $Person['CompanyFormFull']); $Query[] = SPrintF('org-r: %s', $Person['CompanyName']); #------------------------------------------------------------------------- $Query[] = SPrintF('org: %s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull'])); $Query[] = SPrintF('email: %s', $Person['Email']); #------------------------------------------------------------------------- $Phone = $Person['Phone']; #------------------------------------------------------------------------- $Query[] = SPrintF('phone: %s', $Phone); #------------------------------------------------------------------------- $Fax = $Person['Fax']; #------------------------------------------------------------------------- $Query[] = SPrintF('fax: %s', $Fax ? $Fax : $Phone); $Query[] = SPrintF('contact: %s %s %s', $Person['dSourname'], $Person['dName'], $Person['dLastname']); $Query[] = SPrintF('inn: %s', $Person['Inn']); $Query[] = SPrintF('kpp: %s', $Person['Kpp']); #------------------------------------------------------------------------- $Query[] = SPrintF('post-country: %s', $Person['pCountry']); $Query[] = SPrintF('post-zip-code: %s', $Person['pIndex']); $Query[] = SPrintF('post-region: %s', $Person['pState']); $Query[] = SPrintF('post-city: %s', $Person['pCity']); $Query[] = SPrintF('post-street: %s %s, %s "%s"', $Person['pType'], $Person['pAddress'], $Person['CompanyFormFull'], $Person['CompanyName']); #------------------------------------------------------------------------- $Query[] = SPrintF('jur-country: %s', $Person['jCountry']); $Query[] = SPrintF('jur-zip-code: %s', $Person['jIndex']); $Query[] = SPrintF('jur-region: %s', $Person['jState']); $Query[] = SPrintF('jur-city: %s', $Person['jCity']); $Query[] = SPrintF('jur-street: %s %s', $Person['jType'], $Person['jAddress']); #------------------------------------------------------------------------- $Query[] = SPrintF('real-country: %s', $Person['jCountry']); $Query[] = SPrintF('real-zip-code: %s', $Person['jIndex']); $Query[] = SPrintF('real-region: %s', $Person['jState']); $Query[] = SPrintF('real-city: %s', $Person['jCity']); $Query[] = SPrintF('real-street: %s %s', $Person['pType'], $Person['jAddress']); break; default: return new gException('WRONG_PROFILE_ID', 'Неверный идентификатор профиля'); } #----------------------------------------------------------------------------- $Query = array('request' => Implode("\n", $Query)); #----------------------------------------------------------------------------- $Result = HTTP_Send('/partner_gateway', $HTTP, array(), $Query); if (Is_Error($Result)) { return ERROR | @Trigger_Error('[MasterName_Contract_Register]:не удалось выполнить запрос к серверу'); } #----------------------------------------------------------------------------- $Result = Trim($Result['Body']); #----------------------------------------------------------------------------- if (Preg_Match('/status:\\s([0-9]+)\\s/', $Result, $CodeID)) { #--------------------------------------------------------------------------- $CodeID = Next($CodeID); #--------------------------------------------------------------------------- switch ($CodeID) { case '200': # No more... # No more... case '201': # No more... # No more... case '202': return array('TicketID' => $RequestID); case '203': return new gException('REQUEST_FAILED', 'Обработка запроса завершилась с ошибкой'); case '400': return new gException('BAD_REQUEST', 'Неверный формат запроса'); case '401': return new gException('AUTH_ERROR', 'Ошибка авторизации'); case '402': return new gException('DATA_ERROR', 'Ошибка в данных запроса'); case '403': return new gException('FORBIDDEN', 'Доступ к запрашиваемому объекту запрещен'); case '404': return new gException('NOT_FOUND', 'Запрашиваемый объект не найден'); case '405': return new gException('INVALID_REQUEST', 'Невозможно выполнить запрос'); case '500': return new gException('SERVER_ERROR', 'Внутренняя ошибка сервера'); default: return new gException('WRONG_ERROR', 'Неизвестный статус ошибки'); } } #----------------------------------------------------------------------------- return new gException('WRONG_ANSWER', $Result); }