示例#1
0
function smarty_function_copyright($params, $smarty)
{
    $Copyright = DB_Select('Config', 'Value', array('UNIQ', 'Where' => "`Param` = 'Copyright'"));
    if (!Is_Array($Copyright)) {
        return ERROR | @Trigger_Error(500);
    }
    return $Copyright['Value'];
}
 public function getParams()
 {
     $Server = DB_Select('Servers', array('Address', 'Params'), array('UNIQ', 'Where' => SPrintF('(SELECT `ServerID` FROM `OrdersOwners` WHERE `OrdersOwners`.`ID` = %u) = `Servers`.`ID`', $this->params['OrderID'])));
     if (!Is_Array($Server)) {
         return ERROR | @Trigger_Error(500);
     }
     $this->params['Server'] = $Server;
     return $this->params;
 }
 public function getParams()
 {
     #$Message = Preg_Replace("#\[hidden\](.+)\[/hidden\]#sU", ' ', $this->params['Message'], -1);
     $Message = Comp_Load('Edesks/Text', array('String' => $this->params['Message'], 'IsEmail' => TRUE));
     if (Is_Error($Message)) {
         return ERROR | @Trigger_Error(500);
     }
     $this->params['Message'] = $Message;
     return $this->params;
 }
 public function getParams()
 {
     Debug(print_r($this->params, true));
     $Service = DB_Select('Services', array('ID', 'Code', 'Name', 'NameShort'), array('UNIQ', 'ID' => $this->params['ServiceID']));
     if (!Is_Array($Service)) {
         return ERROR | @Trigger_Error(500);
     }
     $this->params['Service'] = $Service;
     return $this->params;
 }
示例#5
0
文件: Comp.php 项目: carriercomm/jbs
function Comp_Load($Element)
{
    /****************************************************************************/
    $__args_types = array('string', '*');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $HostsIDs = System_HostsIDs(SPrintF('comp/%s.comp.php', $Element));
    if (Is_Error($HostsIDs)) {
        return ERROR | @Trigger_Error('[Comp_Load]: не возможно найти компонент');
    }
    #-----------------------------------------------------------------------------
    $IsCascade = In_Array(COMP_ALL_HOSTS, $__args__, TRUE);
    #-----------------------------------------------------------------------------
    if ($IsCascade) {
        $HostsIDs = Array_Reverse($HostsIDs);
    }
    #-----------------------------------------------------------------------------
    $Result = array();
    #-----------------------------------------------------------------------------
    foreach ($HostsIDs as $HostID) {
        #---------------------------------------------------------------------------
        $Path = SPrintF('%s/hosts/%s/comp/%s.comp.php', SYSTEM_PATH, $HostID, $Element);
        #---------------------------------------------------------------------------
        if (Is_Dir($Path)) {
            return ERROR | @Trigger_Error('[Comp_Load]: объект не является компонентом');
        }
        #---------------------------------------------------------------------------
        $Args = $__args__;
        #---------------------------------------------------------------------------
        Array_UnShift($Args, $Path);
        #---------------------------------------------------------------------------
        $Comp = Call_User_Func_Array('LoadComp', $Args);
        if (Is_Error($Comp)) {
            return ERROR | @Trigger_Error('[Comp_Load]: не возможно загрузить компонент');
        }
        #---------------------------------------------------------------------------
        if ($IsCascade) {
            $Result[] = $Comp;
        } else {
            #-------------------------------------------------------------------------
            $Result = $Comp;
            #-------------------------------------------------------------------------
            break;
        }
    }
    #-----------------------------------------------------------------------------
    $Loaded =& Link_Get('Comp/Loaded', 'array');
    #-----------------------------------------------------------------------------
    $Loaded[] = $Element;
    #-----------------------------------------------------------------------------
    return $Result;
}
 public function getParams()
 {
     #-------------------------------------------------------------------------------
     #$Server = DB_Select('HostingServers', Array('Address', 'Url', 'Ns1Name', 'Ns2Name', 'MySQL'), Array('UNIQ', 'ID' => $this->params['ServerID']));
     $Server = DB_Select('Servers', array('Address', 'Params'), array('UNIQ', 'Where' => SPrintF('(SELECT `ServerID` FROM `OrdersOwners` WHERE `OrdersOwners`.`ID` = %u) = `Servers`.`ID`', $this->params['OrderID'])));
     if (!Is_Array($Server)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------------
     $this->params['Server'] = $Server;
     #-------------------------------------------------------------------------------
     return $this->params;
     #-------------------------------------------------------------------------------
 }
 public function getParams()
 {
     #-------------------------------------------------------------------------------
     $Server = new DomainServer();
     #-------------------------------------------------------------------------------
     $IsSelected = $Server->Select((int) $this->params['ServerID']);
     #-------------------------------------------------------------------------------
     switch (ValueOf($IsSelected)) {
         #-------------------------------------------------------------------------------
         case 'error':
             return ERROR | @Trigger_Error(500);
         case 'true':
             #-------------------------------------------------------------------------------
             // For RegRu only
             if ($Server->Settings['Params']['SystemID'] == 'RegRu' && In_Array($this->params['Name'], array('ru', 'su', 'рф'))) {
                 #-------------------------------------------------------------------------------
                 $Domain = SprintF("%s.%s", $this->params['DomainName'], $this->params['Name']);
                 #-------------------------------------------------------------------------------
                 $Result = $Server->GetUploadID($Domain);
                 #-------------------------------------------------------------------------------
                 switch (ValueOf($Result)) {
                     case 'error':
                         return ERROR | @Trigger_Error(500);
                     case 'array':
                         #-------------------------------------------------------------------------------
                         $UploadID = $Result['UploadID'];
                         #-------------------------------------------------------------------------------
                         $this->params['UploadID'] = $UploadID;
                         #-------------------------------------------------------------------------------
                         Debug(SPrintF('[system/classes/DomainOrdersOnRegisterMsg.class.php]: UploadID = %s', $UploadID));
                         #-------------------------------------------------------------------------------
                         break;
                         #-------------------------------------------------------------------------------
                     #-------------------------------------------------------------------------------
                     default:
                         return ERROR | @Trigger_Error(101);
                 }
                 #-------------------------------------------------------------------------------
             }
             #-------------------------------------------------------------------------------
             break;
             #-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         default:
             return ERROR | @Trigger_Error(101);
     }
     #-------------------------------------------------------------------------------
     return $this->params;
     #-------------------------------------------------------------------------------
 }
示例#8
0
function &Messages()
{
    #-----------------------------------------------------------------------------
    $Name = Md5('Messages');
    #-----------------------------------------------------------------------------
    if (!isset($GLOBALS[$Name])) {
        #---------------------------------------------------------------------------
        $GLOBALS[$Name] = System_XML('config/Messages.xml');
        if (Is_Error($GLOBALS[$Name])) {
            return ERROR | Trigger_Error('[Messages]: не удалось загрузить файл сообщений');
        }
    }
    #-----------------------------------------------------------------------------
    return $GLOBALS[$Name];
}
示例#9
0
function &Regulars()
{
    #-----------------------------------------------------------------------------
    $Name = Md5('Regulars');
    #-----------------------------------------------------------------------------
    if (!isset($GLOBALS[$Name])) {
        #---------------------------------------------------------------------------
        $GLOBALS[$Name] = System_XML('config/Regulars.xml');
        if (Is_Error($GLOBALS[$Name])) {
            return ERROR | Trigger_Error('[Regulars]: не удалось загрузить файл регулярных выражений');
        }
    }
    #-----------------------------------------------------------------------------
    return $GLOBALS[$Name];
}
示例#10
0
function GetTime($Data)
{
    #-------------------------------------------------------------------------------
    if (Preg_Match('/^[0-9]+$/', $Data)) {
        return $Data;
    }
    #-------------------------------------------------------------------------------
    $Date = @Date_Parse($Data);
    #-------------------------------------------------------------------------------
    if (!Is_Array($Date)) {
        return ERROR | @Trigger_Error('[GetTime]: ошибка получения даты');
    }
    #-------------------------------------------------------------------------------
    return MkTime($Date['hour'], $Date['minute'], $Date['second'], $Date['month'], $Date['day'], $Date['year']);
    #-------------------------------------------------------------------------------
}
示例#11
0
function smarty_function_menu_left($params, $smarty)
{
    $MenuPath = $params['MenuPath'];
    if (!$MenuPath) {
        return FALSE;
    }
    $XML = Styles_Menu($MenuPath);
    if (Is_Error($XML)) {
        return ERROR | @Trigger_Error(500);
    }
    $items = $XML['Items'];
    if (!Count($items)) {
        return FALSE;
    }
    //echo print_r($items);
    $smarty->assign('items', array_values($items));
    $smarty->display('Menus/Left.tpl');
}
示例#12
0
function &Config()
{
    #-------------------------------------------------------------------------------
    $Name = Md5('Config');
    #-------------------------------------------------------------------------------
    if (!isset($GLOBALS[$Name])) {
        #-------------------------------------------------------------------------------
        $GLOBALS[$Name] = System_XML('config/Config.xml');
        if (Is_Error($GLOBALS[$Name])) {
            return ERROR | Trigger_Error('[Config]: не удалось загрузить основную конфигурацию');
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    return $GLOBALS[$Name];
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
}
示例#13
0
function smarty_function_table($params, $smarty)
{
    $tableName = $params['name'];
    if (!$tableName) {
        return "";
    }
    $DOM = new DOM();
    $Links =& Links();
    # Коллекция ссылок
    $Links['DOM'] =& $DOM;
    $comp = Comp_Load('Tables/Super', $tableName);
    if (Is_Error($comp)) {
        return ERROR | @Trigger_Error(500);
    }
    $DOM->Object = $comp;
    $Out = $DOM->Build();
    if (Is_Error($Out)) {
        return ERROR | @Trigger_Error(500);
    }
    return $Out;
}
示例#14
0
function CreateMap($ID, &$ParentNode)
{
    #-----------------------------------------------------------------------------
    $Group = DB_Select('Groups', '*', array('UNIQ', 'ID' => $ID));
    #-----------------------------------------------------------------------------
    switch (ValueOf($Group)) {
        case 'error':
            return ERROR | @Trigger_Error(500);
        case 'exception':
            return ERROR | @Trigger_Error(400);
        case 'array':
            #-------------------------------------------------------------------------
            $Node = new Tag('node', array('TEXT' => $Group['Name'], 'STYLE' => 'bubble', 'BACKGROUND_COLOR' => $Group['IsDepartment'] ? '#F07D00' : '#F9E47D'), new Tag('edge', array('STYLE' => 'sharp_bezier', 'COLOR' => '#D5F66C', 'WIDTH' => 5)), new Tag('font', array('BOLD' => 'true', 'NAME' => 'SansSerif', 'SIZE' => 14)), new Tag('icon', array('BUILTIN' => 'none')));
            #-------------------------------------------------------------------------
            $Childs = DB_Select('Groups', '*', array('Where' => SPrintF('`ParentID` = %u AND `ParentID` != `ID`', $Group['ID'])));
            #-------------------------------------------------------------------------
            switch (ValueOf($Childs)) {
                case 'error':
                    return ERROR | @Trigger_Error(500);
                case 'exception':
                    # No more...
                    break;
                case 'array':
                    #---------------------------------------------------------------------
                    foreach ($Childs as $Child) {
                        CreateMap($Child['ID'], $Node);
                    }
                    break;
                default:
                    return ERROR | @Trigger_Error(101);
            }
            #-------------------------------------------------------------------------
            $ParentNode->AddChild($Node);
            #-------------------------------------------------------------------------
            return TRUE;
        default:
            return ERROR | @Trigger_Error(101);
    }
}
示例#15
0
function smarty_function_top_panel($params, $smarty)
{
    if (isset($GLOBALS['__USER'])) {
        $__USER = $GLOBALS['__USER'];
        if (Is_Null($__USER)) {
            return ERROR | @Trigger_Error(400);
        }
        $menuPath = SPrintF('%s/TopPanel', $__USER['InterfaceID']);
        $items = Styles_Menu($menuPath);
        if (Is_Error($items)) {
            return ERROR | @Trigger_Error(500);
        }
        $items =& $items['Items'];
        //return print_r(array_values($items));
        $smarty->assign('items', array_values($items));
        $__USER = $GLOBALS['__USER'];
        $smarty->assign('userName', $__USER['Name']);
        $smarty->display('TopPanel/User.tpl');
    } else {
        $smarty->display('TopPanel/Logon.tpl');
    }
}
示例#16
0
文件: Bytes.php 项目: carriercomm/jbs
<?php

#-------------------------------------------------------------------------------
/** @author Великодный В.В. (Joonte Ltd.) */
#-------------------------------------------------------------------------------
if (!Define('BUTE', 01)) {
    return ERROR | @Trigger_Error('[system/libs/Bytes.lib]: ошибка определения константы (BUTE)');
}
#-------------------------------------------------------------------------------
if (!Define('WORD', 02)) {
    return ERROR | @Trigger_Error('[system/libs/Bytes.lib]: ошибка определения константы (WORD)');
}
#-------------------------------------------------------------------------------
if (!Define('DWORD', 04)) {
    return ERROR | @Trigger_Error('[system/libs/Bytes.lib]: ошибка определения константы (DWORD)');
}
#-------------------------------------------------------------------------------
function Bytes_Encode($Bytes)
{
    /****************************************************************************/
    $__args_types = array('string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $Result = '';
    #-----------------------------------------------------------------------------
    foreach (Explode(' ', $Bytes) as $Byte) {
        $Result .= Chr(HexDec($Byte));
    }
    #-----------------------------------------------------------------------------
示例#17
0
文件: DOM.php 项目: carriercomm/jbs
 /**
 * Формирует объект
 *
 * Сформировывает объект класса DOM и подготавливает к выводу в браузер. После
 * вызова этой функции переменная, куда записывался результат выполнения функции
 * выводится с помощью оператора echo.
 *
 * @param boolean <необходимость преобразования в XML строку>
 */
 public function Build($IsToXML = TRUE)
 {
     #-----------------------------------------------------------------------------
     if ($this->TemplateID) {
         #---------------------------------------------------------------------------
         $Trigger = SPrintF('Triggers/DOM/After/%s', $this->TemplateID);
         #---------------------------------------------------------------------------
         if (!Is_Error(System_Element(SPrintF('comp/%s.comp.php', $Trigger)))) {
             #-------------------------------------------------------------------------
             $LinkID = UniqID('DOM-');
             #-------------------------------------------------------------------------
             $Links =& Links();
             # Коллекция ссылок
             $Links[$LinkID] =& $this;
             #-------------------------------------------------------------------------
             if (Is_Error(Comp_Load($Trigger, $LinkID, COMP_ALL_HOSTS))) {
                 return ERROR | @Trigger_Error('[DOM->Build]: ошибка загрузки предобработчика');
             }
             #-------------------------------------------------------------------------
             unset($Links[$LinkID]);
         }
     }
     #-----------------------------------------------------------------------------
     # Номализация документа
     $this->Normalize();
     #-----------------------------------------------------------------------------
     $this->Apply('Sources');
     #-----------------------------------------------------------------------------
     if ($IsToXML) {
         #---------------------------------------------------------------------------
         $Result = $this->Object->ToXMLString();
         if (Is_Error($Result)) {
             return ERROR | Trigger_Error('[DOM->Build]: не удалось преобразовать DOM в строку');
         }
         #---------------------------------------------------------------------------
         return SPrintF("<!-- Joonte Billing System http://www.joonte.com -->\n%s", $Result);
     }
     #-----------------------------------------------------------------------------
     return TRUE;
 }
示例#18
0
 public function GetDiskUsage()
 {
     /****************************************************************************/
     $__args__ = Func_Get_Args();
     eval(FUNCTION_INIT);
     /****************************************************************************/
     Array_UnShift($__args__, $this->Settings);
     #-----------------------------------------------------------------------------
     $Function = SPrintF('%s_Get_Disk_Usage', $this->SystemID);
     #-----------------------------------------------------------------------------
     if (!Function_Exists($Function)) {
         return new gException('FUNCTION_NOT_SUPPORTED', SPrintF('Функция (%s) не поддерживается API модулем', $Function));
     }
     #-----------------------------------------------------------------------------
     $Result = Call_User_Func_Array($Function, $__args__);
     if (Is_Error($Result)) {
         return ERROR | @Trigger_Error('[HostingServer->GetDiskUsage]: не удалось вызвать целевую функцию');
     }
     #-----------------------------------------------------------------------------
     return $Result;
 }
示例#19
0
/******************************************************************************/
/******************************************************************************/
$Tmp = System_Element('tmp');
if (Is_Error($Tmp)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Folder = SPrintF('%s/files', $Tmp);
#-------------------------------------------------------------------------------
if (File_Exists($Folder)) {
    #-----------------------------------------------------------------------------
    $Files = IO_Scan($Folder);
    if (Is_Error($Files)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    foreach ($Files as $File) {
        #---------------------------------------------------------------------------
        $Path = SPrintF('%s/%s', $Folder, $File);
        #---------------------------------------------------------------------------
        if (Time() - FileMTime($Path) > 86400) {
            #-------------------------------------------------------------------------
            if (!@UnLink($Path)) {
                return ERROR | @Trigger_Error(SPrintF('[comp/Tasks/Temp]: не удалось удалить файл (%s)', $Path));
            }
        }
    }
}
#-------------------------------------------------------------------------------
return 86400;
#-------------------------------------------------------------------------------
示例#20
0
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    foreach ($Files as $Log) {
        #---------------------------------------------------------------------------
        $Path = SPrintF('%s/%s', $Logs, $Log);
        #---------------------------------------------------------------------------
        if (Preg_Match('/^.+\\.log+$/', $Log)) {
            #-------------------------------------------------------------------------
            if (FileSize($Path) > 1048576) {
                #-----------------------------------------------------------------------
                $Time = Date('[d.m.Y]');
                #-----------------------------------------------------------------------
                if (!ReName($Path, SPrintF('%s/%s%s', $Logs, $Log, $Time))) {
                    return ERROR | @Trigger_Error(SPrintF('[comp/Tasks/Logs]: не удалось произвести ротацию лога (%s)', $Path));
                }
            }
        } else {
            #-------------------------------------------------------------------------
            if (Time() - FileMTime($Path) > 604800) {
                #-----------------------------------------------------------------------
                if (!@UnLink($Path)) {
                    return ERROR | @Trigger_Error(SPrintF('[comp/Tasks/Logs]: не удалось удалить устаревший лог (%s)', $Path));
                }
            }
        }
    }
}
#-------------------------------------------------------------------------------
return 86400;
#-------------------------------------------------------------------------------
示例#21
0
    $Server = array('TemplateID' => 'EmailClient', 'IsActive' => TRUE, 'IsDefault' => TRUE, 'Protocol' => isset($CheckEmail['UseSSL']) ? $CheckEmail['UseSSL'] ? 'ssl' : 'tcp' : 'ssl', 'Address' => isset($CheckEmail['CheckEmailServer']) ? $CheckEmail['CheckEmailServer'] : 'pop.yandex.ru', 'Port' => 110, 'Login' => isset($CheckEmail['CheckEmailLogin']) ? $CheckEmail['CheckEmailLogin'] : '', 'Password' => isset($CheckEmail['CheckEmailPassword']) ? $CheckEmail['CheckEmailPassword'] : '', 'Params' => array('Method' => isset($CheckEmail['CheckEmailProtocol']) ? $CheckEmail['CheckEmailProtocol'] : 'pop3'), 'AdminNotice' => 'Используется учётная запись от которой шлёт сообщения биллинг (пользователь с идентификатором 100)', 'SortID' => 100000, 'Monitoring' => "POP3=110\nPOP3S=995\nIMAP4=143\nIMAP4S=993");
    #-------------------------------------------------------------------------------
    $IsInsert = DB_Insert('Servers', $Server);
    if (Is_Error($IsInsert)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    unset($Config['Tasks']['Types']['CheckEmail']['UseSSL']);
    unset($Config['Tasks']['Types']['CheckEmail']['CheckEmailServer']);
    unset($Config['Tasks']['Types']['CheckEmail']['CheckEmailLogin']);
    unset($Config['Tasks']['Types']['CheckEmail']['CheckEmailPassword']);
    unset($Config['Tasks']['Types']['CheckEmail']['CheckEmailProtocol']);
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$File = IO_Write($ConfigPath, To_XML_String($Config), TRUE);
if (Is_Error($File)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$IsFlush = CacheManager::flush();
if (!$IsFlush) {
    @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return TRUE;
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
示例#22
0
function Cpanel_Password_Change($Settings, $Login, $Password, $Params)
{
    /****************************************************************************/
    $__args_types = array('array', 'string', 'string', 'array');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $HTTP = array('Address' => $Settings['Params']['IP'], 'Port' => $Settings['Port'], 'Host' => $Settings['Address'], 'Protocol' => $Settings['Protocol'], 'Basic' => SPrintF('%s:%s', $Settings['Login'], $Settings['Password']), 'IsLogging' => $Settings['Params']['IsLogging']);
    #-----------------------------------------------------------------------------
    $Request = array('user' => $Login, 'pass' => $Password);
    #-----------------------------------------------------------------------------
    $Response = HTTP_Send('/xml-api/passwd', $HTTP, $Request);
    if (Is_Error($Response)) {
        return ERROR | @Trigger_Error('[Cpanel_Password_Change]: не удалось осуществить запрос');
    }
    #-----------------------------------------------------------------------------
    $Response = Trim($Response['Body']);
    #-----------------------------------------------------------------------------
    if (Preg_Match('/Password\\schanged/', $Response)) {
        return TRUE;
    }
    #-----------------------------------------------------------------------------
    return new gException('WRONG_ANSWER', $Response);
}
示例#23
0
function GetUploadedFile($Table, $ID)
{
    #-------------------------------------------------------------------------------
    $FilePaths = GetFilePath($Table, $ID);
    #-------------------------------------------------------------------------------
    # проверяем наличие файла
    if (File_Exists($FilePaths['FilePath'])) {
        #-------------------------------------------------------------------------------
        $Data = IO_Read($FilePaths['FilePath']);
        if (Is_Error($Data)) {
            return ERROR | @Trigger_Error('[Upload_Get]: не удалось прочитать файл');
        }
        #-------------------------------------------------------------------------------
        return array('Data' => $Data);
        #-------------------------------------------------------------------------------
    } else {
        #-------------------------------------------------------------------------------
        return FALSE;
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
}
示例#24
0
            #-------------------------------------------------------------------------------
            default:
                return ERROR | @Trigger_Error(101);
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    # crutch added by lissyara. With big query, system task may not execute, because
    # it executed last, after all other
    $IsUpdate = DB_Update('Tasks', array('CreateDate' => Time()), array('Where' => '`UserID` = 1'));
    if (Is_Error($IsUpdate)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    echo SPrintF("%s in %s: Waiting %u seconds...\n\n", Date('Y-m-d', Time()), Date('H:i:s', Time()), $Config['Tasks']['SleepTime']);
    #-------------------------------------------------------------------------------
    Sleep($Config['Tasks']['SleepTime']);
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$FreeLock = DB_Query(SPrintF("SELECT RELEASE_LOCK('%s')", $LockID));
if (Is_Error($FreeLock)) {
    return ERROR | @Trigger_Error('[Demon]: не удалось сбросить блокировку');
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return Date('r');
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
示例#25
0
function Crypt_Decode1($String, $Key = HOST_ID)
{
    /****************************************************************************/
    $__args_types = array('string', 'string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $String = Base64_Decode($String);
    #-----------------------------------------------------------------------------
    if (empty($String)) {
        return $String;
    }
    #-----------------------------------------------------------------------------
    if (Extension_Loaded('mcrypt')) {
        #---------------------------------------------------------------------------
        $Module = @MCrypt_Module_Open(MCRYPT_DES, '', MCRYPT_MODE_ECB, '');
        if (!Is_Resource($Module)) {
            return ERROR | @Trigger_Error('[Crypt_Decode]: не удалось открыть дескриптор');
        }
        #-------------------------------------------------------------------------
        $Iv = @MCrypt_Create_Iv(MCrypt_Enc_Get_Iv_Size($Module), MCRYPT_RAND);
        if (!$Iv) {
            return ERROR | @Trigger_Error('[Crypt_Decode]: не удалось создать IV');
        }
        #-------------------------------------------------------------------------
        $Key = SubStr($Key, 0, MCrypt_Enc_Get_Key_Size($Module));
        Debug(SPrintF("[Crypt_Decode1]: Decode Key = %s", $Key));
        #-------------------------------------------------------------------------
        $IsInit = @MCrypt_Generic_Init($Module, $Key, $Iv);
        if (!Is_Integer($IsInit)) {
            return ERROR | @Trigger_Error('[Crypt_Decode]: не удалось инициализовать модуль дешифрования');
        }
        #-------------------------------------------------------------------------------
    }
    #---------------------------------------------------------------------------
    $String = @MDecrypt_Generic($Module, $String);
    if (!Is_String($String)) {
        return ERROR | @Trigger_Error('[Crypt_Decode]: не удалось дешифровать данные');
    }
    #---------------------------------------------------------------------------
    MCrypt_Generic_DeInit($Module);
    #---------------------------------------------------------------------------
    $String = Trim($String);
    #---------------------------------------------------------------------------
    return $String;
    #-------------------------------------------------------------------------------
}
示例#26
0
文件: Load.php 项目: carriercomm/jbs
/**
 * Custom shutdown function.
 */
function __ShutDown_Function__()
{
    #-------------------------------------------------------------------------------
    // Catch Fatal Errors.
    $lastError = error_get_last();
    #-------------------------------------------------------------------------------
    if ($lastError != NULL) {
        #-------------------------------------------------------------------------------
        $Message = SPrintF('[%s]-%s в линии %s файла %s', $lastError['type'], $lastError['message'], $lastError['line'], $lastError['file']);
        #-------------------------------------------------------------------------------
        Debug(SPrintF('[!] %s', $Message));
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    # added by lissyara 2011-10-12 in 16:15 MSK, for JBS-173
    #Debug("[JBs core]:" . print_r($GLOBALS, true));
    list($Micro, $Seconds) = Explode(' ', MicroTime());
    #-------------------------------------------------------------------------------
    $WorkTimeTmp = (double) $Micro + (double) $Seconds - START_TIME;
    #-------------------------------------------------------------------------------
    $UserData = array('CreateDate' => Time(), 'UserID' => isset($GLOBALS['__USER']) ? $GLOBALS['__USER']['ID'] : 10, 'REMOTE_ADDR' => isset($GLOBALS['_SERVER']['REMOTE_ADDR']) ? $GLOBALS['_SERVER']['REMOTE_ADDR'] : '', 'REQUEST_URI' => isset($GLOBALS['_SERVER']['REQUEST_URI']) ? $GLOBALS['_SERVER']['REQUEST_URI'] : '', 'HTTP_REFERER' => isset($GLOBALS['_SERVER']['HTTP_REFERER']) ? $GLOBALS['_SERVER']['HTTP_REFERER'] : '', 'HTTP_USER_AGENT' => isset($GLOBALS['_SERVER']['HTTP_USER_AGENT']) ? $GLOBALS['_SERVER']['HTTP_USER_AGENT'] : '', 'WORK_TIME' => $WorkTimeTmp, 'TIME_MYSQL' => $GLOBALS['__TIME_MYSQL'], 'COUNTER_MYSQL' => $GLOBALS['__COUNTER_MYSQL'], 'COUNTER_COMPS' => $GLOBALS['__COUNTER_COMPS']);
    #-------------------------------------------------------------------------------
    if ($GLOBALS['_SERVER']['REQUEST_URI'] != '/API/Events') {
        #-------------------------------------------------------------------------------
        $IsInsert = DB_Insert('RequestLog', $UserData);
        if (Is_Error($IsInsert)) {
            return ERROR | @Trigger_Error(500);
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    list($Micro, $Seconds) = Explode(' ', MicroTime());
    #-------------------------------------------------------------------------------
    if (!Define('WORK_TIME', (double) $Micro + (double) $Seconds - START_TIME)) {
        exit('[JBs core]: не удалось определить константу (WORK_TIME)');
    }
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[JBs core]: система работала: %s', WORK_TIME));
    #-------------------------------------------------------------------------------
    # added by lissyara, 2011-10-11 in 15:27 MSK
    Debug(SPrintF('[JBs core]: время работы MySQL: %s [%s%%]', $GLOBALS['__TIME_MYSQL'], Round($GLOBALS['__TIME_MYSQL'] / WORK_TIME * 100, 2)));
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[JBs core]: запросов к MySQL: %u', $GLOBALS['__COUNTER_MYSQL']));
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[JBs core]: загружено компонентов: %u', $GLOBALS['__COUNTER_COMPS']));
    #-------------------------------------------------------------------------------
    Debug('');
    Debug('');
    Debug('');
    Debug('');
    #-------------------------------------------------------------------------------
}
 public static function sendMsg(Msg $msg, $Methods = array())
 {
     #-------------------------------------------------------------------------------
     $Executor = Comp_Load('www/Administrator/API/ProfileCompile', array('ProfileID' => 100));
     #-------------------------------------------------------------------------------
     switch (ValueOf($Executor)) {
         case 'error':
             return ERROR | @Trigger_Error(500);
         case 'exception':
             # No more...
             break;
         case 'array':
             #-------------------------------------------------------------------------------
             $msg->setParam('Executor', $Executor['Attribs']);
             #-------------------------------------------------------------------------------
             break;
             #-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         default:
             return ERROR | @Trigger_Error(101);
     }
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     $User = DB_Select('Users', array('ID', 'Name', 'Sign', 'Email', 'UniqID', 'IsNotifies', 'Params'), array('UNIQ', 'ID' => $msg->getTo()));
     #-------------------------------------------------------------------------------
     switch (ValueOf($User)) {
         case 'error':
             return ERROR | @Trigger_Error('[Email_Send]: не удалось выбрать получателя');
         case 'exception':
             return new gException('EMAIL_RECIPIENT_NOT_FOUND', 'Получатель письма не найден');
         case 'array':
             #-------------------------------------------------------------------------------
             $TypeID = $msg->getTemplate();
             #-------------------------------------------------------------------------------
             Debug(SPrintF('[system/classes/NotificationManager]: TypeID = %s', $TypeID));
             #-------------------------------------------------------------------------------
             if ($TypeID != 'UserPasswordRestore') {
                 if (!$User['IsNotifies']) {
                     return new gException('NOTIFIES_RECIPIENT_DISABLED', 'Уведомления для получателя отключены');
                 }
             }
             #-------------------------------------------------------------------------------
             $msg->setParam('User', $User);
             #-------------------------------------------------------------------------------
             break;
             #-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         default:
             return ERROR | @Trigger_Error(101);
     }
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     $From = DB_Select('Users', array('ID', 'Name', 'Sign', 'Email', 'UniqID', 'Params'), array('UNIQ', 'ID' => $msg->getFrom()));
     #-------------------------------------------------------------------------------
     switch (ValueOf($From)) {
         case 'error':
             return ERROR | @Trigger_Error('[Email_Send]: не удалось выбрать отправителя');
         case 'exception':
             return new gException('EMAIL_SENDER_NOT_FOUND', 'Отправитель не найден');
         case 'array':
             #-------------------------------------------------------------------------------
             $msg->setParam('From', $From);
             #-------------------------------------------------------------------------------
             break;
             #-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         default:
             return ERROR | @Trigger_Error(101);
     }
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     $Config = Config();
     #-------------------------------------------------------------------------------
     $Notifies = $Config['Notifies'];
     #-------------------------------------------------------------------------------
     # вариант когда методы не заданы - значит все доступные
     if (SizeOf($Methods) == 0) {
         #-------------------------------------------------------------------------------
         $Array = array();
         #-------------------------------------------------------------------------------
         foreach (Array_Keys($Notifies['Methods']) as $MethodID) {
             $Array[] = $MethodID;
         }
         #-------------------------------------------------------------------------------
         $Methods = $Array;
         #-------------------------------------------------------------------------------
     }
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     $sentMsgCnt = 0;
     #-------------------------------------------------------------------------------
     foreach (Array_Keys($Notifies['Methods']) as $MethodID) {
         #-------------------------------------------------------------------------------
         if (!$Notifies['Methods'][$MethodID]['IsActive'] || !In_Array($MethodID, $Methods)) {
             continue;
         }
         #-------------------------------------------------------------------------------
         # проверяем контакт, если не мыло - должен быть подтверждён
         if ($MethodID != 'Email') {
             if (!$User['Params']['NotificationMethods'][$MethodID]['Confirmed']) {
                 continue;
             }
         }
         #-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         # кусок от JBS-879
         if (!isset($Notifies['Types'][$TypeID])) {
             #-------------------------------------------------------------------------------
             Debug(SPrintF('[system/classes/NotificationManager]: TypeID = %s not found', $TypeID));
             #-------------------------------------------------------------------------------
         } else {
             #-------------------------------------------------------------------------------
             # такие оповещения вообще могут быть отключены (пока, не настраиваемо, т.к. не нужно)
             if (!$Notifies['Types'][$TypeID]['IsActive']) {
                 continue;
             }
             #-------------------------------------------------------------------------------
             # проверяем, не отключены ли такие оповещения глобально
             $UseName = SPrintF('Use%s', $MethodID);
             #-------------------------------------------------------------------------------
             if (isset($Notifies['Types'][$TypeID][$UseName]) && !$Notifies['Types'][$TypeID][$UseName]) {
                 continue;
             }
             #-------------------------------------------------------------------------------
         }
         #-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         # проверяем, не отключены ли такие оповещения в настройках юзера
         $Count = DB_Count('Notifies', array('Where' => SPrintF("`UserID` = %u AND `MethodID` = '%s' AND `TypeID` = '%s'", $msg->getTo(), $MethodID, $TypeID)));
         if (Is_Error($Count)) {
             return ERROR | @Trigger_Error(500);
         }
         #-------------------------------------------------------------------------------
         if ($Count) {
             continue;
         }
         #-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         # JBS-1126: save $MethodID settings
         $msg->setParam('MethodSettings', $Notifies['Methods'][$MethodID]);
         #-------------------------------------------------------------------------------
         #-------------------------------------------------------------------------------
         if (!class_exists($MethodID)) {
             return new gException('DISPATCHER_NOT_FOUND', 'Dispatcher not found: ' . $MethodID);
         }
         #-------------------------------------------------------------------------------
         #$dispatcher = $MethodID::get();
         $dispatcher = call_user_func($MethodID . '::get', true);
         #-------------------------------------------------------------------------------
         try {
             #-------------------------------------------------------------------------------
             $dispatcher->send($msg);
             #-------------------------------------------------------------------------------
             $sentMsgCnt++;
             #-------------------------------------------------------------------------------
         } catch (jException $e) {
             #-------------------------------------------------------------------------------
             Debug(SPrintF("[system/classes/NotificationManager]: Error while sending message [userId=%s, message=%s]", $User['ID'], $e->getMessage()));
             #-------------------------------------------------------------------------------
         }
         #-------------------------------------------------------------------------------
     }
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     if ($sentMsgCnt < 1) {
         #-------------------------------------------------------------------------------
         Debug(SPrintF("[system/classes/NotificationManager]: Couldn't send notify by any methods to user #%s", $User['ID']));
         #-------------------------------------------------------------------------------
         return new gException('USER_NOT_NOTIFIED', 'Не удалось оповестить пользователя ни одним из методов');
         #-------------------------------------------------------------------------------
     }
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     return TRUE;
     #-------------------------------------------------------------------------------
     #------------------------------------------------------------------------------
 }
示例#28
0
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Scheme = DB_Select(SPrintF('%sSchemes', $Service['Code']), array('*'), array('UNIQ', 'ID' => $DNSmanagerOrder['SchemeID']));
switch (ValueOf($Scheme)) {
    case 'error':
        return ERROR | @Trigger_Error(500);
    case 'exception':
        return ERROR | @Trigger_Error(400);
    case 'array':
        break;
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Params = array('SchemeID' => $DNSmanagerOrder['SchemeID'], 'OrderID' => $DNSmanagerOrder['OrderID'], 'MaxOrders' => $Scheme['MaxOrders'], 'MinOrdersPeriod' => $Scheme['MinOrdersPeriod'], 'ServiceID' => $Service['ID'], 'ServiceName' => $Service['Name'], 'SchemeName' => $Scheme['Name']);
#-------------------------------------------------------------------------------
$Comp = Comp_Load('Services/Orders/OrdersHistory', $Params);
switch (ValueOf($Comp)) {
    case 'error':
        return ERROR | @Trigger_Error(500);
    case 'exception':
        return $Comp;
    case 'array':
        return TRUE;
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
示例#29
0
}
#-------------------------------------------------------------------------------
$Comp = Comp_Load('Form/Input', array('type' => 'button', 'onclick' => 'form.submit();', 'value' => 'Сформировать'));
if (Is_Error($Comp)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Table[] = $Comp;
#-------------------------------------------------------------------------------
$Table[] = new Tag('IFRAME', array('height' => 120, 'width' => '100%', 'name' => 'Statistics'), 'Загрузка...');
#-------------------------------------------------------------------------------
$Comp = Comp_Load('Tables/Standard', $Table);
if (Is_Error($Comp)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Form = new Tag('FORM', array('target' => 'Statistics', 'method' => 'POST', 'onsubmit' => 'return false;'), $Comp);
#-------------------------------------------------------------------------------
$Comp = Comp_Load('Form/Input', array('type' => 'hidden', 'name' => 'IsCreate', 'value' => 'yes'));
if (Is_Error($Comp)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Form->AddChild($Comp);
#-------------------------------------------------------------------------------
$DOM->AddChild('Into', $Form);
#-------------------------------------------------------------------------------
$Out = $DOM->Build();
#-------------------------------------------------------------------------------
return $Out;
#-------------------------------------------------------------------------------
示例#30
0
function RuCenter_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' => 'KOI8-R', 'IsLogging' => $Settings['Params']['IsLogging']);
    #-----------------------------------------------------------------------------
    $Query = array();
    #---------------------------------------------------------------------------
    $RequestID = UniqID('ID');
    #---------------------------------------------------------------------------
    $Query[] = 'lang: ru';
    $Query[] = 'request: contract';
    $Query[] = 'operation: create';
    $Query[] = SPrintF('login: %s', $Settings['Login']);
    $Query[] = SPrintF('password: %s', $Settings['Password']);
    $Query[] = SPrintF('request-id: %s', $RequestID);
    #---------------------------------------------------------------------------
    $Query[] = '';
    #---------------------------------------------------------------------------
    $Query[] = '[contract]';
    $Query[] = SPrintF('password: %s', UniqID());
    $Query[] = SPrintF('tech-password: %s', UniqID());
    $Query[] = 'currency-id: RUR';
    #---------------------------------------------------------------------------
    $Query[] = '';
    #---------------------------------------------------------------------------
    switch ($PepsonID) {
        case 'Natural':
            #-----------------------------------------------------------------------
            $Query[] = 'contract-type: PRS';
            $Query[] = SPrintF('person: %s %s %s', Translit($Person['Name']), Mb_SubStr(Translit($Person['Lastname']), 0, 1), Translit($Person['Sourname']));
            $Query[] = SPrintF('person-r: %s %s %s', $Person['Sourname'], $Person['Name'], $Person['Lastname']);
            $Query[] = SPrintF('country: %s', isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry']);
            $Query[] = SPrintF('phone: %s', $Person['Phone']);
            $Query[] = SPrintF('fax-no: %s', $Person['Fax']);
            $Query[] = SPrintF('birth-date: %s', $Person['BornDate']);
            $Query[] = SPrintF('passport: %s %s выдан %s, %s', $Person['PasportLine'], $Person['PasportNum'], $Person['PasportWhom'], $Person['PasportDate']);
            $Query[] = SPrintF('p-addr: %s, %s, %s, %s %s, %s', $Person['pIndex'], $Person['pState'], $Person['pCity'], $Person['pType'], $Person['pAddress'], $Person['pRecipient']);
            $Query[] = SPrintF('e-mail: %s', $Person['Email']);
            break;
        case 'Juridical':
            #-----------------------------------------------------------------------
            $Query[] = 'client-type: ORG';
            $Query[] = SPrintF('org: %s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull']));
            $Query[] = SPrintF('org-r: %s', SPrintF('%s "%s"', $Person['CompanyFormFull'], $Person['CompanyName']));
            $Query[] = SPrintF('country: %s', $Person['jCountry']);
            $Query[] = SPrintF('e-mail: %s', $Person['Email']);
            $Query[] = SPrintF('phone: %s', $Person['Phone']);
            $Query[] = SPrintF('fax-no: %s', $Person['Fax']);
            $Query[] = SPrintF('code: %s', $Person['Inn']);
            $Query[] = SPrintF('kpp: %s', $Person['Kpp']);
            $Query[] = SPrintF('address-r: %s, %s, %s, %s %s', $Person['jIndex'], $Person['jState'], $Person['jCity'], $Person['jType'], $Person['jAddress']);
            $Query[] = SPrintF('p-addr: %s, %s, %s, %s %s, %s "%s"', $Person['pIndex'], $Person['pState'], $Person['pCity'], $Person['pType'], $Person['pAddress'], $Person['CompanyFormFull'], $Person['CompanyName']);
            $Query[] = SPrintF('d-addr: %s, %s, %s, %s %s', $Person['jIndex'], $Person['jState'], $Person['jCity'], $Person['jType'], $Person['jAddress']);
            break;
        default:
            return new gException('WRONG_PROFILE_ID', 'Неверный идентификатор профиля');
    }
    #-----------------------------------------------------------------------------
    $Result = HTTP_Send('/dns/dealer', $HTTP, array(), array('SimpleRequest' => Implode("\n", $Query)));
    if (Is_Error($Result)) {
        return ERROR | @Trigger_Error('[RuCenter_Contract_Register]: не удалось выполнить запрос к серверу');
    }
    #-----------------------------------------------------------------------------
    if (Preg_Match('/HTTP\\/1.0\\s502/i', $Result['Heads'])) {
        return false;
    }
    #-----------------------------------------------------------------------------
    $Result = Trim($Result['Body']);
    #-----------------------------------------------------------------------------
    if (Preg_Match('/State:\\s([0-9]+)/', $Result, $CodeID)) {
        #---------------------------------------------------------------------------
        $CodeID = Next($CodeID);
        #---------------------------------------------------------------------------
        switch ($CodeID) {
            case '200':
                #-----------------------------------------------------------------------
                if (!Preg_Match('/nic-hdl:\\s([0-9]+\\/[A-Z\\-]+)/', $Result, $ContractID)) {
                    return new gException('LOGIN_NOT_FOUND', 'Неудалось получить номер договора');
                } else {
                    $ContractID = Next($ContractID);
                }
                break;
            case '500':
                return FALSE;
            default:
                return new gException('WRONG_ERROR', SPrintF('Неизвестный статус ошибки (%s)', $Result));
        }
    } else {
        return new gException('WRONG_ANSWER', $Result);
    }
    #-----------------------------------------------------------------------------
    # Делаем паузу перед запросом
    Sleep(10);
    #-----------------------------------------------------------------------------
    if (!In_Array($DomainZone, array('ru', 'su'))) {
        #---------------------------------------------------------------------------
        $Query = array();
        #---------------------------------------------------------------------------
        $RequestID = UniqID('ID');
        #---------------------------------------------------------------------------
        $Query[] = SPrintF('login: %s', $Settings['Login']);
        $Query[] = SPrintF('password: %s', $Settings['Password']);
        $Query[] = SPrintF('subject-contract: %s', $ContractID);
        $Query[] = 'request: contact';
        $Query[] = 'operation: create';
        $Query[] = 'lang: ru';
        $Query[] = SPrintF('request-id: %s', $RequestID);
        #---------------------------------------------------------------------------
        $Query[] = '';
        #---------------------------------------------------------------------------
        $Query[] = '[contact]';
        $Query[] = SPrintF('status:registrant');
        $Query[] = SPrintF('org:');
        $Query[] = SPrintF('name: %s, %s', Translit($Person['Name']), Translit($Person['Lastname']));
        $Query[] = SPrintF('country: %s', isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry']);
        $Query[] = SPrintF('region: %s', Translit($Person['pCity']));
        $Query[] = SPrintF('city: %s', Translit($Person['pCity']));
        $Query[] = SPrintF('street: %s', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress'])));
        $Query[] = SPrintF('zipcode: %s', $Person['pIndex']);
        $Query[] = SPrintF('phone: %s', $Person['Phone']);
        $Query[] = SPrintF('fax: %s', $Person['Fax']);
        $Query[] = SPrintF('email: %s', $Person['Email']);
        #---------------------------------------------------------------------------
        $Result = HTTP_Send('/dns/dealer', $HTTP, array(), array('SimpleRequest' => Implode("\n", $Query)));
        if (Is_Error($Result)) {
            return ERROR | @Trigger_Error('[RuCenter_Contract_Register]: не удалось выполнить запрос к серверу');
        }
        #---------------------------------------------------------------------------
        if (Preg_Match('/HTTP\\/1.0\\s502/i', $Result['Heads'])) {
            return FALSE;
        }
        #---------------------------------------------------------------------------
        $Result = Trim($Result['Body']);
        #---------------------------------------------------------------------------
        if (Preg_Match('/State:\\s([0-9]+)/', $Result, $CodeID)) {
            #-------------------------------------------------------------------------
            $CodeID = Next($CodeID);
            #-------------------------------------------------------------------------
            switch ($CodeID) {
                case '200':
                    #-----------------------------------------------------------------------
                    if (!Preg_Match('/nic-hdl:([0-9A-Za-z\\-]+)/', $Result, $NicHDL)) {
                        return array('TicketID' => SPrintF('%s:%s', $ContractID, Next($NicHDL)));
                    }
                    #-----------------------------------------------------------------------
                    return new gException('LOGIN_NOT_FOUND', 'Неудалось получить номер договора');
                case '500':
                    return FALSE;
                default:
                    return new gException('WRONG_ERROR', SPrintF('Неизвестный статус ошибки (%s)', $Result));
            }
        } else {
            return new gException('WRONG_ANSWER', $Result);
        }
    }
    #-----------------------------------------------------------------------------
    return array('TicketID' => $ContractID);
}