Beispiel #1
0
 /**
 * Конструктор класса
 *
 * Создает документ из XML строки.
 *
 * @param string <иницилиазирующая строка>
 */
 public function DOM($Source = NULL)
 {
     /****************************************************************************/
     $__args_types = array('string,object');
     #-----------------------------------------------------------------------------
     $__args__ = Func_Get_Args();
     eval(FUNCTION_INIT);
     /****************************************************************************/
     if (!Is_Null($Source)) {
         #---------------------------------------------------------------------------
         if (Is_Object($Source)) {
             #-------------------------------------------------------------------------
             $this->Object = $Source;
             #-------------------------------------------------------------------------
             $this->Linking();
         }
         #---------------------------------------------------------------------------
         if (Is_String($Source)) {
             #-------------------------------------------------------------------------
             if (Mb_StrLen($Source) > 1) {
                 #-----------------------------------------------------------------------
                 $this->Object = String_XML_Parse($Source);
                 if (Is_Exception($this->Object)) {
                     return ERROR | Trigger_Error('[DOM->DOM]: не удалось преобразовать XML');
                 }
                 #-----------------------------------------------------------------------
                 $this->Object = Current($this->Object->Childs);
                 #-----------------------------------------------------------------------
                 $this->Linking();
             }
         }
     }
 }
Beispiel #2
0
#-------------------------------------------------------------------------------
$Settings = $Config['Interface']['Edesks']['DenyFoulLanguage'];
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$EnCharMap = array("jo", "j", "c", "u", "k", "e", "n", "g", "sh", "sh", "z", "h", "'", "f", "u", "v", "a", "p", "r", "o", "l", "d", "zh", "je", "ja", "ch", "s", "m", "i", "t", "'", "b", "ju");
#-------------------------------------------------------------------------------
# For transliteration russian char map
$RuCharMap = array("ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю");
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
foreach (Preg_Split('/[\\s,]+/', $Text) as $Word) {
    #Debug(SPrintF('[comp/Formats/Edesk/Message/CheckFoul]: Word = "%s"',print_r($Word,true)));
    #-------------------------------------------------------------------------------
    $Word = Trim(Str_Replace($EnCharMap, $RuCharMap, Mb_StrToLower($Word, 'UTF-8')));
    #-------------------------------------------------------------------------------
    if (Mb_StrLen($Word) > $Settings['FoulMaxLength']) {
        continue;
    }
    #-------------------------------------------------------------------------------
    foreach (Preg_Split('/\\s+/', $Regulars['Fouls']) as $Foul) {
        #-------------------------------------------------------------------------------
        $Foul = Trim($Foul);
        #Debug(SPrintF('[comp/Formats/Edesk/Message/CheckFoul]: Foul = "%s"',print_r($Foul,true)));
        #-------------------------------------------------------------------------------
        if (Preg_Match($Foul, $Word)) {
            #-------------------------------------------------------------------------------
            Debug(SPrintF('[comp/Formats/Edesk/Message/CheckFoul]: Foul found: "%s"', $Word));
            return array('Word' => $Word);
            # нецензурщина детектед
            #-------------------------------------------------------------------------------
        }
             }
             #-------------------------------------------------------------------------------
         } else {
             #-------------------------------------------------------------------------------
             $Value = 'Список выбора поля';
             #-------------------------------------------------------------------------------
         }
         #-------------------------------------------------------------------------------
         break;
         #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     case 'File':
         #-------------------------------------------------------------------------------
         $FileName = $ServiceOrderField['FileName'];
         #-------------------------------------------------------------------------------
         if (Mb_StrLen($FileName) > 15) {
             $FileName = SPrintF('%s...', Mb_SubStr($FileName, 0, 15));
         }
         #-------------------------------------------------------------------------------
         $Value = new Tag('TD', array('class' => 'Standard'), new Tag('A', array('href' => SPrintF('/OrderFileDownload?OrderFieldID=%u', $ServiceOrderField['ID'])), SPrintF('%s (%01.2f Кб.)', $FileName, StrLen(Base64_Decode($Value)) / 1024)));
         #-------------------------------------------------------------------------------
         break;
         #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     case 'Hidden':
         continue 2;
     default:
         # No more...
 }
 #-------------------------------------------------------------------------------
 $Fields[] = array($ServiceField['Name'], $Value);
Beispiel #4
0
    if (Is_Error($Sourse)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    //if(!Preg_Match('/\.comp.php/',$File))
    //  continue;
    #-----------------------------------------------------------------------------
    $Function = isset($Args['RegEx']) ? 'Preg_Replace' : 'Str_Replace';
    #-----------------------------------------------------------------------------
    $Out = $Function($Search, $Replace, $Sourse);
    #-----------------------------------------------------------------------------
    if ($Out != $Sourse) {
        #---------------------------------------------------------------------------
        if ($IsWrite) {
            #-------------------------------------------------------------------------
            $IsWrite = IO_Write($File, $Out, TRUE);
            if (Is_Error($IsWrite)) {
                return ERROR | @Trigger_Error(500);
            }
        }
        #---------------------------------------------------------------------------
        $Name = Mb_SubStr($File, Mb_StrLen($Folder) + 1);
        #---------------------------------------------------------------------------
        echo SPrintF("%s\n", $Name);
        #---------------------------------------------------------------------------
        $Count++;
    }
}
#-------------------------------------------------------------------------------
echo SPrintF("Replaced in %s files\n", $Count);
#-------------------------------------------------------------------------------
Beispiel #5
0
#-------------------------------------------------------------------------------
foreach (Array_Keys($Row) as $ColumnID) {
    #-------------------------------------------------------------------------------
    $TypeID = $ColumnsTypes[$ColumnID]['Type'];
    #-------------------------------------------------------------------------------
    $Value = $Row[$ColumnID];
    #-------------------------------------------------------------------------------
    #Debug(SPrintF('[comp/www/Administrator/RowEdit]: $ColumnID = %s; $Value = %s',$ColumnID,$Value));
    #-------------------------------------------------------------------------------
    if (Is_Null($Value)) {
        $Value = '[NULL]';
    }
    #-------------------------------------------------------------------------------
    if (Preg_Match('/blob/', $TypeID)) {
        #-------------------------------------------------------------------------------
        $Comp = Comp_Load('Upload', $ColumnID, SPrintF('%01.2f Кб.', Mb_StrLen($Value) / 1024));
        if (Is_Error($Comp)) {
            return ERROR | @Trigger_Error(500);
        }
        #-------------------------------------------------------------------------------
    } else {
        #-------------------------------------------------------------------------------
        if (Preg_Match('/(int|float)/', $TypeID)) {
            #-------------------------------------------------------------------------------
            $Comp = Comp_Load('Form/Input', array('name' => $ColumnID, 'type' => 'text', 'style' => 'width: 100%;', 'value' => (string) $Value));
            if (Is_Error($Comp)) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------------
        } else {
            #-------------------------------------------------------------------------------
$Args = Args();
#-------------------------------------------------------------------------------
$ClauseFileID = (int) @$Args['ClauseFileID'];
$IsPrintOut = (bool) @$Args['IsPrintOut'];
#-------------------------------------------------------------------------------
$ClauseFile = DB_Select('ClausesFiles', '*', array('UNIQ', 'ID' => $ClauseFileID));
#-------------------------------------------------------------------------------
switch (ValueOf($ClauseFile)) {
    case 'error':
        return ERROR | @Trigger_Error(500);
    case 'exception':
        return ERROR | @Trigger_Error(400);
    case 'array':
        #---------------------------------------------------------------------------
        $FileData = $ClauseFile['FileData'];
        #---------------------------------------------------------------------------
        if (!$IsPrintOut) {
            #-------------------------------------------------------------------------
            $Length = Mb_StrLen($FileData, 'ASCII');
            #-------------------------------------------------------------------------
            Header('Content-Type: application/octetstream; charset=utf-8');
            Header(SPrintF('Content-Length: %u', $Length));
            Header(SPrintF('Content-Disposition: attachment; filename="%s";', $ClauseFile['FileName']));
            Header('Pragma: nocache');
        }
        #---------------------------------------------------------------------------
        return $FileData;
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
Beispiel #7
0
     }
     #-------------------------------------------------------------------------------
     return $Comp;
     #-------------------------------------------------------------------------------
 #-------------------------------------------------------------------------------
 case 'array':
     #-------------------------------------------------------------------------------
     $Table[] = array('Платежная система', $PaymentSystem['Name']);
     #-------------------------------------------------------------------------------
     $Options = array();
     #-------------------------------------------------------------------------------
     foreach ($Contracts as $Contract) {
         #-------------------------------------------------------------------------------
         $Customer = $Contract['Customer'];
         #-------------------------------------------------------------------------------
         if (Mb_StrLen($Customer) > 20) {
             $Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 20));
         }
         #-------------------------------------------------------------------------------
         $Options[$Contract['ID']] = $Customer;
         #-------------------------------------------------------------------------------
     }
     #-------------------------------------------------------------------------------
     $Comp = Comp_Load('Form/Select', array('name' => 'ContractID', 'style' => 'width: 100%;'), $Options, $ContractID);
     if (Is_Error($Comp)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------------
     $Table[] = array('Базовый договор', $Comp);
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
Beispiel #8
0
eval(COMP_INIT);
/******************************************************************************/
/******************************************************************************/
$IPs = $ExtraIP ? Explode("\n", $ExtraIP) : array();
#-------------------------------------------------------------------------------
$IPs[] = $IP;
#-------------------------------------------------------------------------------
$IPs = Array_Unique($IPs);
#-------------------------------------------------------------------------------
$Count = Count($IPs);
#-------------------------------------------------------------------------------
if ($Count > 10) {
    $IPs = Array_Slice($IPs, 0, 9);
}
#-------------------------------------------------------------------------------
if (Mb_StrLen($IP) > $Length) {
    $IP = SPrintF('%s...', Mb_SubStr($IP, 0, $Length));
}
#-------------------------------------------------------------------------------
$A = new Tag('A', array('target' => 'blank', 'href' => SPrintF('http://%s/', $IP)), $IP);
#-------------------------------------------------------------------------------
$LinkID = UniqID('IPs');
#-------------------------------------------------------------------------------
$Links =& Links();
# Коллекция ссылок
$Links[$LinkID] =& $A;
#-------------------------------------------------------------------------------
$Comp = Comp_Load('Form/Prompt', $LinkID, SPrintF('<B>Всего: %u</B><BR />%s', $Count, Implode('<BR />', $IPs)));
if (Is_Error($Comp)) {
    return ERROR | @Trigger_Error(500);
}
Beispiel #9
0
        return ERROR | @Trigger_Error(500);
    case 'exception':
        return $Rss->ToXMLString();
    case 'array':
        break;
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
foreach ($Versions as $Version) {
    #-------------------------------------------------------------------------------
    $Link = SPrintF('http://%s/Rss/New?NewID=%u', HOST_ID, $Version['ID']);
    #-------------------------------------------------------------------------------
    $Text = Strip_Tags($Version['Text']);
    #-------------------------------------------------------------------------------
    if (Mb_StrLen($Text) > 120) {
        $Text = SPrintF('%s...', Mb_SubStr($Text, 0, 120));
    }
    #-------------------------------------------------------------------------------
    $Item = new Tag('item');
    $Item->AddChild(new Tag('guid', $Link));
    $Item->AddChild(new Tag('title', $Version['Title']));
    $Item->AddChild(new Tag('description', $Text));
    $Item->AddChild(new Tag('author', $Email));
    $Item->AddChild(new Tag('pubDate', Date('r', $Version['PublicDate'])));
    $Item->AddChild(new Tag('link', $Link));
    #-------------------------------------------------------------------------------
    $Channel->AddChild($Item);
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
Beispiel #10
0
 function ToXMLString($Level = 0, $IsFormat = TRUE)
 {
     /****************************************************************************/
     $__args_types = array('integer', 'boolean');
     #-----------------------------------------------------------------------------
     $__args__ = Func_Get_Args();
     eval(FUNCTION_INIT);
     /****************************************************************************/
     $Name = $this->Name;
     #-----------------------------------------------------------------------------
     $Result = SPrintF('<%s', $Name);
     #-----------------------------------------------------------------------------
     if ($IsFormat) {
         $Result = SPrintF('%s%s', $Level ? Str_Pad(' ', $Level) : '', $Result);
     }
     #-----------------------------------------------------------------------------
     $Attribs = $this->Attribs;
     #-----------------------------------------------------------------------------
     foreach (Array_Keys($Attribs) as $AttribID) {
         $Result .= SPrintF(' %s="%s"', $AttribID, HtmlSpecialChars((string) $Attribs[$AttribID]));
     }
     #-----------------------------------------------------------------------------
     $Childs = $this->Childs;
     #-----------------------------------------------------------------------------
     if (Count($Childs)) {
         #---------------------------------------------------------------------------
         $Result .= '>';
         #---------------------------------------------------------------------------
         $IsNoCData = TRUE;
         #---------------------------------------------------------------------------
         foreach ($Childs as $Child) {
             #-------------------------------------------------------------------------
             if (In_Array($Child->Name, array('CDATA'))) {
                 #-----------------------------------------------------------------------
                 $IsNoCData = FALSE;
                 #-----------------------------------------------------------------------
                 break;
             }
         }
         #---------------------------------------------------------------------------
         $Nodes = '';
         #---------------------------------------------------------------------------
         foreach ($Childs as $Child) {
             $Nodes .= In_Array($Child->Name, array('CDATA')) ? HtmlSpecialChars($Child->Text) : $Child->ToXMLString($Level + 1, $IsNoCData);
         }
         #---------------------------------------------------------------------------
         $Result .= $IsNoCData ? SPrintF("\n%s%s", $Nodes, $Level ? Str_Pad(' ', $Level) : '') : $Nodes;
     } else {
         #---------------------------------------------------------------------------
         $Text = isset($Attribs['force-escape']) ? $this->Text : HtmlSpecialChars($this->Text);
         #---------------------------------------------------------------------------
         $IsShort = !Mb_StrLen($Text) && !In_Array($Name, array('TEXTAREA', 'BUTTON', 'TITLE', 'SCRIPT', 'TABLE', 'TD', 'TR'));
         #---------------------------------------------------------------------------
         if ($IsShort) {
             #-------------------------------------------------------------------------
             $Result .= ' />';
             #-------------------------------------------------------------------------
             if ($IsFormat) {
                 $Result .= "\n";
             }
             #-------------------------------------------------------------------------
             return $Result;
         } else {
             $Result .= SPrintF('>%s', $Text);
         }
     }
     #-----------------------------------------------------------------------------
     $Result .= SPrintF('</%s>', $Name);
     #-----------------------------------------------------------------------------
     if ($IsFormat) {
         $Result .= "\n";
     }
     #-----------------------------------------------------------------------------
     return $Result;
 }
Beispiel #11
0
/******************************************************************************/
$Domains = $Parked ? Explode(',', $Parked) : array();
#-------------------------------------------------------------------------------
$Domains[] = $Domain;
#-------------------------------------------------------------------------------
$Domains = Array_Unique($Domains);
#-------------------------------------------------------------------------------
$Count = Count($Domains);
#-------------------------------------------------------------------------------
if ($Count > 10) {
    $Domains = Array_Slice($Domains, 0, 9);
}
#-------------------------------------------------------------------------------
$Domain = $Text = Current($Domains);
#-------------------------------------------------------------------------------
if (Mb_StrLen($Text) > $Length) {
    $Text = SPrintF('%s...', Mb_SubStr($Text, 0, $Length));
}
#-------------------------------------------------------------------------------
$A = new Tag('A', array('target' => 'blank', 'href' => SPrintF('http://%s/', $Domain)), $Text);
#-------------------------------------------------------------------------------
$LinkID = UniqID('Domains');
#-------------------------------------------------------------------------------
$Links =& Links();
# Коллекция ссылок
$Links[$LinkID] =& $A;
#-------------------------------------------------------------------------------
$Comp = Comp_Load('Form/Prompt', $LinkID, SPrintF('<B>Всего: %u</B><BR />%s', $Count, Implode('<BR />', $Domains)));
if (Is_Error($Comp)) {
    return ERROR | @Trigger_Error(500);
}
Beispiel #12
0
function IO_Read($Path, $IsUseLinks = TRUE)
{
    /******************************************************************************/
    $__args_types = array('string', 'boolean');
    #-------------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /******************************************************************************/
    Debug(SPrintF('[IO_Read]: открытие файла (%s)', $Path));
    #-------------------------------------------------------------------------------
    if (!File_Exists($Path)) {
        return ERROR | @Trigger_Error('[IO_Read]: файл не существует');
    }
    #-------------------------------------------------------------------------------
    if (!($File = @Fopen($Path, 'r'))) {
        return ERROR | @Trigger_Error('[IO_Read]: ошибка открытия файла');
    }
    #-------------------------------------------------------------------------------
    $Size = @FileSize($Path);
    if (!$Size) {
        return '';
    }
    #-------------------------------------------------------------------------------
    if (!($Result = @Fread($File, $Size))) {
        return ERROR | @Trigger_Error('[IO_Read]: ошибка чтения файла');
    }
    #-------------------------------------------------------------------------------
    if (!Fclose($File)) {
        return ERROR | @Trigger_Error('[IO_Read]: ошибка закрытия файла');
    }
    #-------------------------------------------------------------------------------
    if (Mb_StrLen($Result) > 4) {
        #-------------------------------------------------------------------------------
        if (Mb_SubStr($Result, 1, 4) == 'link' && $IsUseLinks) {
            #-------------------------------------------------------------------------------
            $LinkPath = Trim(Mb_SubStr($Result, Mb_StrPos($Result, ':') + 1));
            #-------------------------------------------------------------------------------
            switch ($Result[0]) {
                case '#':
                    # Абсолюная ссылка
                    # No more...
                    break;
                case '@':
                    # Относительная ссылка
                    #-------------------------------------------------------------------------------
                    $Folder = Mb_SubStr($Path, 0, Mb_StrrPos($Path, '/'));
                    #-------------------------------------------------------------------------------
                    $LinkPath = SPrintF('%s/%s', $Folder, $LinkPath);
                    #-------------------------------------------------------------------------------
                    break;
                    #-------------------------------------------------------------------------------
                #-------------------------------------------------------------------------------
                default:
                    return ERROR | @Trigger_Error('[IO_Read]: тип ссылки не определён');
            }
            #-------------------------------------------------------------------------------
            if ($Path == $LinkPath) {
                return ERROR | @Trigger_Error(SPrintF('[IO_Read]: ссылка сама на себя в файле(%s)', $Path));
            }
            #-------------------------------------------------------------------------------
            Debug(SPrintF('[IO_Read]: символическая ссылка (%s) на (%s)', $Path, $LinkPath));
            #-------------------------------------------------------------------------------
            $Result = IO_Read($LinkPath);
            if (Is_Error($Result)) {
                return ERROR | @Trigger_Error('[IO_Read]: ошибка рекурсивного вызова');
            }
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    return $Result;
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
}
Beispiel #13
0
/** @author Великодный В.В. (Joonte Ltd.) */
/******************************************************************************/
/******************************************************************************/
$__args_list = array('Value', 'Length', 'Url', 'IsHtmlEncode');
/******************************************************************************/
eval(COMP_INIT);
/******************************************************************************/
/******************************************************************************/
#Debug(SPrintF('[comp/Formats/String]: Value = %s; Length = %s; Url = %s',$Value,$Length,$Url));
#-------------------------------------------------------------------------------
if ($IsHtmlEncode) {
    $Value = HtmlSpecialChars($Value);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
if (Mb_StrLen($Value) > $Length) {
    #-------------------------------------------------------------------------------
    $Text = Mb_SubStr($Value, 0, $Length);
    #-------------------------------------------------------------------------------
    $Result = Is_Null($Url) ? new Tag('SPAN', SPrintF('%s...', $Text)) : new Tag('A', array('href' => $Url, 'target' => 'blank'), SPrintF('%s...', $Text));
    #-------------------------------------------------------------------------------
    $LinkID = UniqID('String');
    #-------------------------------------------------------------------------------
    $Links =& Links();
    #-------------------------------------------------------------------------------
    $Links[$LinkID] =& $Result;
    #-------------------------------------------------------------------------------
    $Comp = Comp_Load('Form/Prompt', $LinkID, $Value);
    if (Is_Error($Comp)) {
        return ERROR | @Trigger_Error(500);
    }
Beispiel #14
0
function WhoIs_Check($DomainName, $ZoneName, $IsAvalible = FALSE)
{
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[system/libs/WhoIs]: run function WhoIs_Check, Domain = %s.%s', $DomainName, $ZoneName));
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $CacheID = SPrintF('WhoIs-%s.%s', $DomainName, $ZoneName);
    #-------------------------------------------------------------------------------
    $Answer = CacheManager::get($CacheID);
    #-------------------------------------------------------------------------------
    if (!$Answer) {
        #-------------------------------------------------------------------------------
        # смотрим доменную зону, на предмет того использовать ли данные whois сервера, или юзать запросы к регистратору
        $DomainZones = System_XML('config/DomainZones.xml');
        if (Is_Error($DomainZones)) {
            return ERROR | @Trigger_Error('[comp/www/API/WhoIs]: не удалось загрузить базу WhoIs серверов');
        }
        #-------------------------------------------------------------------------------
        $IsSuppoted = FALSE;
        #-------------------------------------------------------------------------------
        foreach ($DomainZones as $Zone) {
            #-------------------------------------------------------------------------------
            if ($Zone['Name'] == $ZoneName) {
                #-------------------------------------------------------------------------------
                $IsSuppoted = TRUE;
                #-------------------------------------------------------------------------------
                break;
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
        if (!$IsSuppoted || $Zone['IsUseRegistratorWhoIs']) {
            #-------------------------------------------------------------------------------
            if (!$IsSuppoted) {
                Debug(SPrintF('[comp/www/API/WhoIs]: доменная зона не поддерживается'));
            }
            #-------------------------------------------------------------------------------
            if ($IsSuppoted && $Zone['IsUseRegistratorWhoIs']) {
                Debug(SPrintF('[comp/www/API/WhoIs]: принудительное использование WhoIs регистратора'));
            }
            #-------------------------------------------------------------------------------
            #-------------------------------------------------------------------------------
            # чекаем доменную зону
            $Regulars = Regulars();
            #-------------------------------------------------------------------------------
            if (!Preg_Match($Regulars['DomainZone'], $ZoneName)) {
                return ERROR | @Trigger_Error(SPrintF('[comp/www/API/WhoIs]: неверная доменная зона (%s)', $ZoneName));
            }
            #-------------------------------------------------------------------------------
            # достаём список серверов на которых есть такой тариф
            $Servers = DB_Select('DomainSchemes', array('ServerID'), array('Where' => SPrintF('`Name` = "%s"', $ZoneName)));
            #-------------------------------------------------------------------------------
            switch (ValueOf($Servers)) {
                case 'error':
                    return ERROR | @Trigger_Error(500);
                case 'exception':
                    return new gException('REGISTRATOR_SERVER_NOT_FOUND', 'Не найдены активные сервера регистраторов');
                case 'array':
                    #-------------------------------------------------------------------------------
                    $Array = array();
                    #-------------------------------------------------------------------------------
                    foreach ($Servers as $Server) {
                        $Array[] = $Server['ServerID'];
                    }
                    #-------------------------------------------------------------------------------
                    break;
                    #-------------------------------------------------------------------------------
                #-------------------------------------------------------------------------------
                default:
                    return ERROR | @Trigger_Error(101);
            }
            #-------------------------------------------------------------------------------
            # достаём список активных серверов регистраторов
            $Servers = DB_Select('Servers', array('ID', 'Address', 'Params'), array('Where' => array(SPrintF('`ID` IN (%s)', Implode(',', $Array)), '`IsActive` = "yes"'), 'SortOn' => 'Address'));
            #-------------------------------------------------------------------------------
            switch (ValueOf($Servers)) {
                case 'error':
                    return ERROR | @Trigger_Error(500);
                case 'exception':
                    return new gException('REGISTRATOR_SERVER_NOT_FOUND', 'Не найдены активные сервера регистраторов');
                case 'array':
                    break;
                default:
                    return ERROR | @Trigger_Error(101);
            }
            #-------------------------------------------------------------------------------
            # перебираем регистраторов
            $UseServer = FALSE;
            #-------------------------------------------------------------------------------
            foreach ($Servers as $iServer) {
                #-------------------------------------------------------------------------------
                # если это не проверка доступности и в настройках сервера не стоит галка про получение WhoIs - пропускаем
                if (!$IsAvalible) {
                    if (!$iServer['Params']['IsFetchWhoIs']) {
                        continue;
                    }
                }
                #-------------------------------------------------------------------------------
                # достаём использованные запросы к регистратору, на данную минуту
                $RatelimitID = SPrintF('ratelimit-%s-%s-00', $iServer['Address'], Date('H-i'));
                #-------------------------------------------------------------------------------
                $Ratelimit = CacheManager::get($RatelimitID);
                #-------------------------------------------------------------------------------
                # если из кэша что-то досталось и оно больше разрешённой частоты запросов - пропускаем цикл
                if ($Ratelimit && $Ratelimit >= $iServer['Params']['RatelimitAPI']) {
                    #-------------------------------------------------------------------------------
                    Debug(SPrintF('[comp/www/API/WhoIs]: превышена частота запросов к серверу %s (разрешено %u, использовано %u)', $iServer['Address'], $iServer['Params']['RatelimitAPI'], $Ratelimit));
                    #-------------------------------------------------------------------------------
                    continue;
                    #-------------------------------------------------------------------------------
                }
                #-------------------------------------------------------------------------------
                # сохраняем, на пару минут, в кэш новое число запросов к регистратору
                CacheManager::add($RatelimitID, IntVal($Ratelimit) + 1, 120);
                #-------------------------------------------------------------------------------
                $UseServer = $iServer;
                #-------------------------------------------------------------------------------
                break;
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
            # если не задан сервер - частота превышена для всех серверов
            if (!$UseServer) {
                return new gException('REGISTRATOR_SERVER_RATELIMIT', 'Превышена максимальная частота запросов к интерфейсу регистратора');
            }
            #-------------------------------------------------------------------------------
            #-------------------------------------------------------------------------------
            # выбираем сервер регистратора
            if (Is_Error(System_Load('classes/DomainServer.class.php'))) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------------
            $Server = new DomainServer();
            #-------------------------------------------------------------------------------
            $IsSelected = $Server->Select((int) $UseServer['ID']);
            #-------------------------------------------------------------------------------
            switch (ValueOf($IsSelected)) {
                case 'error':
                    return ERROR | @Trigger_Error(500);
                case 'exception':
                    return new gException('CANNOT_SELECT_REGISTRATOR', 'Не удалось выбрать регистратора');
                case 'true':
                    break;
                default:
                    return ERROR | @Trigger_Error(101);
            }
            #-------------------------------------------------------------------------------
            # делаем запрос к API - функция в зависимости от $IsAvalible
            if ($IsAvalible) {
                #-------------------------------------------------------------------------------
                $DomainCheck = $Server->DomainCheck($DomainName, $ZoneName);
                #-------------------------------------------------------------------------------
                switch (ValueOf($DomainCheck)) {
                    case 'error':
                        return ERROR | @Trigger_Error(500);
                    case 'exception':
                        return ERROR | @Trigger_Error(400);
                    case 'true':
                        return TRUE;
                    case 'false':
                        return array();
                    case 'array':
                        break;
                    default:
                        return ERROR | @Trigger_Error(101);
                }
                #-------------------------------------------------------------------------------
            } else {
                #-------------------------------------------------------------------------------
                $DomainWhoIs = $Server->DomainWhoIs($DomainName, $ZoneName);
                #-------------------------------------------------------------------------------
                switch (ValueOf($DomainWhoIs)) {
                    case 'error':
                        return ERROR | @Trigger_Error(500);
                    case 'exception':
                        # a функции нет ... вылезаем на обычную проверку whois
                        break;
                    case 'true':
                        return TRUE;
                    case 'string':
                        #-------------------------------------------------------------------------------
                        CacheManager::add($CacheID, $DomainWhoIs, 1800);
                        #-------------------------------------------------------------------------------
                        break;
                        #-------------------------------------------------------------------------------
                    #-------------------------------------------------------------------------------
                    default:
                        return ERROR | @Trigger_Error(101);
                }
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $Config = Config();
    #-------------------------------------------------------------------------------
    $UseSystemApplication = $Config['Other']['Libs']['WhoIs']['UseSystemApplication'];
    #-------------------------------------------------------------------------------
    $Regulars = Regulars();
    #-------------------------------------------------------------------------------
    if (!Preg_Match($Regulars['DomainName'], $DomainName)) {
        return new gException('WRONG_DOMAIN_NAME', 'Неверное доменное имя');
    }
    #-------------------------------------------------------------------------------
    $DomainZones = System_XML('config/DomainZones.xml');
    if (Is_Error($DomainZones)) {
        return ERROR | @Trigger_Error('[WhoIs_Check]: не удалось загрузить базу WhoIs серверов');
    }
    #-------------------------------------------------------------------------------
    $IsSuppoted = FALSE;
    #-------------------------------------------------------------------------------
    foreach ($DomainZones as $DomainZone) {
        #-------------------------------------------------------------------------------
        if ($DomainZone['Name'] == $ZoneName) {
            #-------------------------------------------------------------------------------
            $IsSuppoted = TRUE;
            #-------------------------------------------------------------------------------
            break;
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    if (!$IsSuppoted && !isset($DomainWhoIs)) {
        return FALSE;
    }
    #-------------------------------------------------------------------------------
    if (Mb_StrLen($DomainName) < ($MinChars = $DomainZone['MinChars'])) {
        return new gException('WRONG_DOMAIN_NAME_LENGTH', SPrintF('Длина доменного имени должна быть не менее %u символа(ов)', $MinChars));
    }
    #-------------------------------------------------------------------------------
    $Domain = SPrintF('%s.%s', $DomainName, $DomainZone['Name']);
    #-------------------------------------------------------------------------------
    $Answer = CacheManager::get($CacheID);
    #-------------------------------------------------------------------------------
    if (!$Answer) {
        #-------------------------------------------------------------------------------
        $IDNAConverter = new IDNAConvert();
        #-------------------------------------------------------------------------------
        if ($UseSystemApplication) {
            #-------------------------------------------------------------------------------
            $IsExec = Exec(SPrintF('whois %s', $IDNAConverter->encode($Domain)), $Answer);
            #-------------------------------------------------------------------------------
            $Answer = Implode("\n", $Answer);
            #-------------------------------------------------------------------------------
        } else {
            #-------------------------------------------------------------------------------
            $Socket = @FsockOpen($DomainZone['Server'], 43, $nError, $sError, 5);
            #-------------------------------------------------------------------------------
            if (!$Socket) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: ошибка соединения с сервером WhoIs');
            }
            #-------------------------------------------------------------------------------
            if (!@Fputs($Socket, SPrintF("%s\r\n", $IDNAConverter->encode($Domain)))) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: ошибка работы с серверов WhoIs');
            }
            #-------------------------------------------------------------------------------
            $Answer = '';
            #-------------------------------------------------------------------------------
            do {
                #-------------------------------------------------------------------------------
                $Line = @Fgets($Socket, 10);
                #-------------------------------------------------------------------------------
                $Answer .= $Line;
                #-------------------------------------------------------------------------------
            } while ($Line);
            #-------------------------------------------------------------------------------
            Fclose($Socket);
            #-------------------------------------------------------------------------------
            CacheManager::add($CacheID, $Answer, 1800);
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
        Debug(SPrintF('[system/libs/WhoIs.php]: Answer = %s', print_r($Answer, true)));
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    if (Preg_Match(SPrintF('/%s/', $DomainZone['Available']), $Answer)) {
        return TRUE;
    }
    #-------------------------------------------------------------------------------
    if (Preg_Match(SPrintF('/%s/', $DomainZone['NotAvailable']), $Answer)) {
        return new gException('DOMAIN_NOT_AVAILABLE', 'Доменное имя не доступно для регистрации');
    }
    #-------------------------------------------------------------------------------
    $Result = array('Info' => Preg_Replace('/\\n\\s+\\n/sU', "\n", Preg_Replace('/\\%.+\\n/sU', '', $Answer)), 'ExpirationDate' => 0);
    #-------------------------------------------------------------------------------
    $ExpirationDate = $DomainZone['ExpirationDate'];
    #-------------------------------------------------------------------------------
    if ($ExpirationDate) {
        #-------------------------------------------------------------------------------
        if (Preg_Match(SPrintF('/%s/', $ExpirationDate), $Answer, $Mathes)) {
            #-------------------------------------------------------------------------------
            if (Count($Mathes) < 2) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: шаблон поиска даты окончания задан неверно');
            }
            #-------------------------------------------------------------------------------
            $ExpirationDate = $Mathes[1];
            #-------------------------------------------------------------------------------
            $Months = array('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec');
            #-------------------------------------------------------------------------------
            if (Preg_Match('/^[0-9]{4}\\.[0-9]{2}\\.[0-9]{2}$/', $ExpirationDate)) {
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Year', 'Month', 'Day'), Explode('.', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Date['Month'], $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            } elseif (Preg_Match('/^[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}$/', $ExpirationDate)) {
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Year', 'Month', 'Day'), Explode('-', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Date['Month'], $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            } elseif (Preg_Match('/^[0-9]{2}\\-[a-zA-Z]{3}\\-[0-9]{4}$/', $ExpirationDate)) {
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Day', 'Month', 'Year'), Explode('-', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $Month = Array_Search(StrToLower($Date['Month']), $Months);
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Month + 1, $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            } elseif (Preg_Match('/^[0-9]{2}\\s[a-zA-Z]{2,10}\\s[0-9]{4}$/', $ExpirationDate)) {
                #-------------------------------------------------------------------------------
                $Months = array('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'octember', 'november', 'decemeber');
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Day', 'Month', 'Year'), Preg_Split('/\\s+/', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $Month = Array_Search(StrToLower($Date['Month']), $Months);
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Month + 1, $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            } else {
                #-------------------------------------------------------------------------------
                $Date = Array_Combine(array('Week', 'Month', 'Day', 'Time', 'GMT', 'Year'), Preg_Split('/\\s+/', $ExpirationDate));
                #-------------------------------------------------------------------------------
                $Month = Array_Search(StrToLower($Date['Month']), $Months);
                #-------------------------------------------------------------------------------
                $ExpirationDate = MkTime(0, 0, 0, $Month + 1, $Date['Day'], $Date['Year']);
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
            $Result['ExpirationDate'] = $ExpirationDate;
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    $NsName = $DomainZone['NsName'];
    #-------------------------------------------------------------------------------
    if ($NsName) {
        #-------------------------------------------------------------------------------
        if (Preg_Match_All(SPrintF('/%s/', $NsName), $Answer, $Mathes)) {
            #-------------------------------------------------------------------------------
            if (Count($Mathes) < 2) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: шаблон поиска именных серверов задан неверно');
            }
            #-------------------------------------------------------------------------------
            $NsNames = $Mathes[1];
            #-------------------------------------------------------------------------------
            for ($i = 0; $i < Count($NsNames); $i++) {
                #-------------------------------------------------------------------------------
                $NsName = Trim(StrToLower($NsNames[$i]), '.');
                #-------------------------------------------------------------------------------
                $Result[SPrintF('Ns%uName', $i + 1)] = $NsName;
                #-------------------------------------------------------------------------------
                if ($NsName) {
                    #-------------------------------------------------------------------------------
                    if (Mb_SubStr($NsName, -Mb_StrLen($Domain)) == $Domain) {
                        #-------------------------------------------------------------------------------
                        $IP = GetHostByName($NsName);
                        #-------------------------------------------------------------------------------
                        if ($IP != $NsName) {
                            $Result[SPrintF('Ns%uIP', $i + 1)] = $IP;
                        }
                        #-------------------------------------------------------------------------------
                    }
                    #-------------------------------------------------------------------------------
                }
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    $Registrar = $DomainZone['Registrar'];
    #-------------------------------------------------------------------------------
    if ($Registrar) {
        #-------------------------------------------------------------------------------
        if (Preg_Match(SPrintF('/%s/', $Registrar), $Answer, $Mathes)) {
            #-------------------------------------------------------------------------------
            if (Count($Mathes) < 2) {
                return ERROR | @Trigger_Error('[WhoIs_Check]: шаблон поиска регистратора серверов задан неверно');
            }
            #-------------------------------------------------------------------------------
            $Registrar = Next($Mathes);
            #-------------------------------------------------------------------------------
            $Result['Registrar'] = $Registrar;
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    return $Result;
    #-------------------------------------------------------------------------------
}
Beispiel #15
0
# truncate $Theme & $Message
$Theme = substr($Theme, 0, 127);
$Message = substr($Message, 0, 62000);
#-------------------------------------------------------------------------------
if (Is_Error(System_Load('modules/Authorisation.mod', 'libs/Upload.php'))) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Config = Config();
#-------------------------------------------------------------------------------
if (!$Theme) {
    return new gException('THEME_IS_EMPTY', 'Введите тему запроса');
}
#-------------------------------------------------------------------------------
if (Mb_StrLen(Count_Chars($Theme, 3)) < $Config['Interface']['Edesks']['ThemeMinimumLength']) {
    return new gException('THEME_IS_TOO_SHORT', 'Некорректная тема запроса');
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Priorities = $Config['Edesks']['Priorities'];
#-------------------------------------------------------------------------------
if (!In_Array($PriorityID, Array_Keys($Priorities))) {
    return new gException('WRONG_PRIORITY', 'Неверный приоритет запроса');
}
#-------------------------------------------------------------------------------
if (!$Message) {
    return new gException('MESSAGE_IS_EMPTY', 'Введите сообщение запроса');
}
#-------------------------------------------------------------------------------
$Count = DB_Count('Groups', array('ID' => $TargetGroupID));
Beispiel #16
0
function String_Xml_Parse($String, $IsUseCache = TRUE)
{
    #-------------------------------------------------------------------------------
    # костыль для удаления не-UTF8 символов
    $String = iconv('UTF-8', 'UTF-8//IGNORE', $String);
    #-------------------------------------------------------------------------------
    $Length = Mb_StrLen($String);
    #-------------------------------------------------------------------------------
    $IsUseCache = $IsUseCache && $Length > 1024;
    #-------------------------------------------------------------------------------
    if ($IsUseCache) {
        #-------------------------------------------------------------------------------
        $CacheID = SPrintF('String_XML_Parse[%s]', Md5(Crc32($String)));
        #-------------------------------------------------------------------------------
        $Result = CacheManager::get($CacheID);
        if ($Result) {
            return $Result;
        }
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[String_XML_Parse]: парсирование строки (%u bytes)', $Length));
    #-------------------------------------------------------------------------------
    $XmlParser = Xml_Parser_Create('UTF-8');
    #-------------------------------------------------------------------------------
    if (!Xml_Parser_Set_Option($XmlParser, XML_OPTION_CASE_FOLDING, FALSE)) {
        return ERROR | Trigger_Error('[String_Xml_Parse]: не удалось установить опцию парсирования (XML_OPTION_CASE_FOLDING)');
    }
    #-------------------------------------------------------------------------------
    if (!Xml_Parser_Set_Option($XmlParser, XML_OPTION_SKIP_WHITE, FALSE)) {
        return ERROR | Trigger_Error('[String_Xml_Parse]: не удалось установить опцию парсирования (XML_OPTION_SKIP_WHITE)');
    }
    #-------------------------------------------------------------------------------
    if (!Xml_Parse_Into_Struct($XmlParser, $String, $Nodes)) {
        #-------------------------------------------------------------------------------
        $ByteIndex = Xml_Get_Current_Byte_Index($XmlParser);
        #-------------------------------------------------------------------------------
        Debug(SPrintF('[system/libs/auto/String.php]: xml_error_string = %s', Xml_Error_String(Xml_Get_Error_Code($XmlParser))));
        #-------------------------------------------------------------------------------
        Debug(SPrintF('[system/libs/auto/String.php]: %s', Mb_SubStr($String, $ByteIndex - 100, $ByteIndex + 100)));
        #-------------------------------------------------------------------------------
        $Buffer = Mb_SubStr($String, 0, $ByteIndex);
        #-------------------------------------------------------------------------------
        $Line = Preg_Match_All("/(\r\n|\n)/sU", $Buffer, $Matches) + 1;
        #-------------------------------------------------------------------------------
        return new gException('XML_PARSE_ERROR', SPrintF('%s в линии %u', Xml_Error_String($XmlParser), $Line));
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    #-----------------------------------------------------------------------------
    Xml_Parser_Free($XmlParser);
    #-----------------------------------------------------------------------------
    $Root = new Tag('__ROOT__');
    #-----------------------------------------------------------------------------
    $Links = array(&$Root);
    #-----------------------------------------------------------------------------
    foreach ($Nodes as $Node) {
        #---------------------------------------------------------------------------
        $Current = $Links[Count($Links) - 1];
        #---------------------------------------------------------------------------
        switch ($Node['type']) {
            case 'open':
                #-----------------------------------------------------------------------
                $Tag = new Tag($Node['tag']);
                #-----------------------------------------------------------------------
                if (isset($Node['attributes'])) {
                    $Tag->AddAttribs($Node['attributes']);
                }
                #-----------------------------------------------------------------------
                if (isset($Node['value'])) {
                    #---------------------------------------------------------------------
                    $Value = $Node['value'];
                    #---------------------------------------------------------------------
                    if (Trim($Value)) {
                        $Tag->AddChild(new Tag('CDATA', $Value));
                    }
                }
                #-----------------------------------------------------------------------
                $Current->Childs[] = $Tag;
                #-----------------------------------------------------------------------
                $Links[] =& $Current->Childs[Count($Current->Childs) - 1];
                break;
            case 'cdata':
                #-----------------------------------------------------------------------
                $Value = $Node['value'];
                #-----------------------------------------------------------------------
                if (Trim($Value)) {
                    #---------------------------------------------------------------------
                    $Tag = new Tag('CDATA', $Value);
                    #---------------------------------------------------------------------
                    $Current->Childs[] = $Tag;
                }
                break;
            case 'complete':
                #-----------------------------------------------------------------------
                $Tag = new Tag($Node['tag']);
                #-----------------------------------------------------------------------
                if (isset($Node['attributes'])) {
                    $Tag->AddAttribs($Node['attributes']);
                }
                #-----------------------------------------------------------------------
                if (isset($Node['value'])) {
                    $Tag->AddText($Node['value']);
                }
                #-----------------------------------------------------------------------
                $Current->Childs[] = $Tag;
                break;
            case 'close':
                Array_Pop($Links);
                break;
            default:
                # No more...
        }
    }
    #-----------------------------------------------------------------------------
    if ($IsUseCache) {
        CacheManager::add($CacheID, $Root);
    }
    #-----------------------------------------------------------------------------
    return $Root;
}
Beispiel #17
0
 #-------------------------------------------------------------------------------
 $Result = "qiwi" . Str_Pad($Settings['Send']['from'], 10, "0", STR_PAD_LEFT) . "\n";
 #-------------------------------------------------------------------------------
 $Result .= base64_encode($crypted);
 #-------------------------------------------------------------------------------
 # send message to QIWI server
 $HTTP = array('Protocol' => $Settings['Send']['UseSSL'] ? 'ssl' : 'tcp', 'Port' => $Settings['Send']['UseSSL'] ? '443' : '80', 'Address' => 'ishop.qiwi.ru', 'Host' => 'ishop.qiwi.ru', 'IsLogging' => $Settings['IsLogging']);
 #-------------------------------------------------------------------------------
 $Send = HTTP_Send('/xml', $HTTP, array(), $Result, array('Content-type: text/xml; encoding=utf-8'));
 #-------------------------------------------------------------------------------
 if (Is_Error($Send)) {
     return TRUE;
 }
 #-------------------------------------------------------------------------------
 # parse XML
 if (Mb_StrLen($Send['Body']) == 0) {
     #-------------------------------------------------------------------------------
     Debug(SPrintF('[comp/comp/Tasks/GC/QIWI]: Body zero size'));
     #-------------------------------------------------------------------------------
     return TRUE;
     #-------------------------------------------------------------------------------
 }
 #-------------------------------------------------------------------------------
 $XML = String_XML_Parse($Send['Body']);
 if (Is_Exception($XML)) {
     return ERROR | @Trigger_Error(500);
 }
 #-------------------------------------------------------------------------------
 $Response = Trim($Send['Body']);
 #-------------------------------------------------------------------------------
 $XML = String_XML_Parse($Response);
Beispiel #18
0
#-------------------------------------------------------------------------------
$Number = Comp_Load('Formats/Order/Number', $ServiceOrderID);
if (Is_Error($Number)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Settings = @$Order['Params']['Statuses']['OnCreate'];
#-------------------------------------------------------------------------------
# проверяем, надо ли выполнять задачу
if (isset($Settings['IsNoAction']) && $Settings['IsNoAction'] == 'yes') {
    return TRUE;
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
if (isset($Settings['Script']) && Mb_StrLen(Trim($Settings['Script'])) > 0) {
    #-------------------------------------------------------------------------------
    $File = Trim($Settings['Script']);
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[comp/Tasks/ServiceCreate]: Script = %s', $File));
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    if (IntVal($Order['ServerID']) == 0) {
        return new gException('SERVER_NOT_SET', 'Для услуги не задан сервер размещения, скрипт не может быть выполнен. Создайте для услуги группу серверов, назначьте в неё сервер, после чего сделайте заказ заново');
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    # находим полный путь к файлу
    if (SubStr($File, 0, 1) != '/') {
        $File = SPrintF('%s/hosts/%s/scripts/%s', SYSTEM_PATH, HOST_ID, $File);
    }
Beispiel #19
0
        if (Count($Contracts) < 2) {
            return FALSE;
        }
        #---------------------------------------------------------------------------
        $Options = array('Default' => 'Все договора');
        #---------------------------------------------------------------------------
        foreach ($Contracts as $Contract) {
            #-------------------------------------------------------------------------
            $Comp = Comp_Load('Formats/Contract/Number', $Contract['ID']);
            if (Is_Error($Comp)) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------
            $Customer = SPrintF('%s %s', $Comp, $Contract['Customer']);
            #-------------------------------------------------------------------------
            if (Mb_StrLen($Customer) > 40) {
                $Customer = SPrintF('%s...', Mb_SubStr($Customer, 0, 30));
            }
            #-------------------------------------------------------------------------
            $Options[$Contract['ID']] = $Customer;
        }
        break;
    default:
        return ERROR | @Trigger_Error(101);
}
#-------------------------------------------------------------------------------
if (!isset($Options[$ContractID])) {
    $ContractID = 'Default';
}
#-------------------------------------------------------------------------------
if ($ContractID != 'Default') {
Beispiel #20
0
<?php

#-------------------------------------------------------------------------------
/** @author Великодный В.В. (Joonte Ltd.) */
/******************************************************************************/
/******************************************************************************/
$__args_list = array('Domain', 'Zone', 'Length', 'DomainZone');
/******************************************************************************/
eval(COMP_INIT);
/******************************************************************************/
/******************************************************************************/
#-------------------------------------------------------------------------------
if (Mb_StrLen($Domain) > $Length) {
    $Domain1 = SPrintF('%s...', Mb_SubStr($Domain, 0, $Length));
} else {
    $Domain1 = $Domain;
}
#-------------------------------------------------------------------------------
$A = new Tag('A', array('target' => 'blank', 'href' => SPrintF('http://%s.%s/', $Domain, $DomainZone), 'title' => 'Перейти на сайт'), $Domain1);
#-------------------------------------------------------------------------------
return $A;
#-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #return new gException('NAME_NS3_NOT_FILL','Укажите имя дополнительного сервера имен');
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Ns4Name = Trim(Mb_StrToLower($Ns4Name, 'UTF-8'), '.');
#-------------------------------------------------------------------------------
if ($Ns4Name) {
    #-------------------------------------------------------------------------------
    if (!Preg_Match($Regulars['DnsDomain'], $Ns4Name)) {
        return new gException('WRONG_NAME_NS4', 'Неверное имя расширенного сервера имен');
    }
    #-------------------------------------------------------------------------------
    if (Mb_SubStr($Ns4Name, -Mb_StrLen($Domain)) == $Domain) {
        #-------------------------------------------------------------------------------
        if (!Preg_Match($Regulars['IP'], $Ns4IP)) {
            return new gException('WRONG_IP_NS4', 'Неверный IP адрес расширенного сервера имен');
        }
        #-------------------------------------------------------------------------------
    } else {
        #-------------------------------------------------------------------------------
        if ($Ns4IP) {
            $Ns4IP = '';
        }
        #-------------------------------------------------------------------------------
        #return new gException('IP_NS4_CAN_NOT_FILL','IP адрес расширенного сервера имен не может быть указан');
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
Beispiel #22
0
 case 'exception':
     return new gException('PROFILES_NOT_FOUND', 'Профили клиента не найдены');
 case 'array':
     #-----------------------------------------------------------------------
     $Options = array();
     #-----------------------------------------------------------------------
     foreach ($Profiles as $Profile) {
         #---------------------------------------------------------------------
         $Comp = Comp_Load('Formats/Profile/Number', $Profile['ID']);
         if (Is_Error($Comp)) {
             return ERROR | @Trigger_Error(500);
         }
         #---------------------------------------------------------------------
         $Name = SPrintF('%s - %s', $Comp, $Profile['Name']);
         #---------------------------------------------------------------------
         if (Mb_StrLen($Name) > 30) {
             $Name = SPrintF('%s...', Mb_SubStr($Name, 0, 30));
         }
         #---------------------------------------------------------------------
         $Options[$Profile['ID']] = $Name;
     }
     #-----------------------------------------------------------------------
     $Comp = Comp_Load('Form/Select', array('name' => 'ProfileID', 'style' => 'width:100%'), $Options, $Contract['ProfileID']);
     if (Is_Error($Comp)) {
         return ERROR | @Trigger_Error(500);
     }
     #-----------------------------------------------------------------------
     $Table[] = array('Профиль', $Comp);
     #-----------------------------------------------------------------------
     $Comp = Comp_Load('Form/Input', array('name' => 'IsEnclosures', 'type' => 'checkbox', 'value' => 'yes'));
     if (Is_Error($Comp)) {