Example #1
0
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;
}
Example #2
0
 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);
     }
 }
Example #3
0
 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);
 }
Example #4
0
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;
Example #6
0
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);
}