Beispiel #1
0
 public function Load()
 {
     #-----------------------------------------------------------------------------
     $SessionID = $this->SessionID;
     #-----------------------------------------------------------------------------
     if (!$SessionID) {
         return FALSE;
     }
     #-----------------------------------------------------------------------------
     $Tmp = System_Element('tmp');
     if (Is_Error($Tmp)) {
         return ERROR | @Trigger_Error('[Session->Load]: не удалось найти временную папку');
     }
     #-----------------------------------------------------------------------------
     $Path = SPrintF('%s/sessions/%s', $Tmp, $SessionID);
     #-----------------------------------------------------------------------------
     if (!File_Exists($Path)) {
         return FALSE;
     }
     #-----------------------------------------------------------------------------
     $Content = IO_Read($Path);
     if (Is_Error($Content)) {
         return ERROR | @Trigger_Error('[Session->Load]: не удалось прочитать файл сессии');
     }
     #-----------------------------------------------------------------------------
     #$this->Data = @UnSerialize($Content);
     $this->Data = @JSON_Decode($Content, true);
     if ($this->Data === FALSE) {
         return ERROR | @Trigger_Error('[Session->Load]: не удалось восстановить данные из файла сессии');
     }
     #-----------------------------------------------------------------------------
     return TRUE;
 }
Beispiel #2
0
 public function Load($TemplateID)
 {
     /****************************************************************************/
     $__args_types = array('string');
     #-----------------------------------------------------------------------------
     $__args__ = Func_Get_Args();
     eval(FUNCTION_INIT);
     /****************************************************************************/
     foreach ($__args__ as $__arg__) {
         #---------------------------------------------------------------------------
         $this->TemplateID = $__arg__;
         #---------------------------------------------------------------------------
         $Path = System_Element(SPrintF('templates/%s.xml', $__arg__));
         if (!Is_Error($Path)) {
             #-------------------------------------------------------------------------
             $Source = IO_Read($Path);
             if (Is_Error($Source)) {
                 return ERROR | @Trigger_Error('[DOM->Load]: не удалось загрузить файл шаблона');
             }
             #-------------------------------------------------------------------------
             $this->Object = String_XML_Parse($Source);
             if (Is_Exception($this->Object)) {
                 return ERROR | @Trigger_Error('[DOM->Load]: не удалось преобразовать XML');
             }
             #-------------------------------------------------------------------------
             $this->Object = Current($this->Object->Childs);
             #-------------------------------------------------------------------------
             $this->Linking();
             #-------------------------------------------------------------------------
             break;
         }
     }
     #-----------------------------------------------------------------------------
     $Trigger = SPrintF('Triggers/DOM/Before/%s', $this->TemplateID);
     #-----------------------------------------------------------------------------
     if ($this->TemplateID) {
         #---------------------------------------------------------------------------
         if (!Is_Error(System_Element(SPrintF('comp/%s.comp.php', $Trigger)))) {
             #-------------------------------------------------------------------------
             $LinkID = UniqID('DOM-');
             #-------------------------------------------------------------------------
             $Links =& Links();
             # Коллекция ссылок
             $Links[$LinkID] =& $this;
             #-------------------------------------------------------------------------
             $Comp = Comp_Load($Trigger, $LinkID, COMP_ALL_HOSTS);
             if (Is_Error($Comp)) {
                 return ERROR | @Trigger_Error('[DOM->Load]: ошибка загрузки предобработчика');
             }
             #-------------------------------------------------------------------------
             unset($Links[$LinkID]);
         }
     }
     #-----------------------------------------------------------------------------
     return TRUE;
 }
Beispiel #3
0
function TemplateReplace($Text, $Params = array(), $NoBody = TRUE)
{
    #-------------------------------------------------------------------------------
    $Text = Trim($Text);
    #-------------------------------------------------------------------------------
    # проверяем что нам сунули - текст или файл
    if (!Preg_Match('/\\s/', $Text)) {
        #-------------------------------------------------------------------------------
        # достаём текст из файла
        $Path = System_Element(SPrintF('templates/modules/%s.html', $Text));
        #-------------------------------------------------------------------------------
        if (Is_Error($Path)) {
            #-------------------------------------------------------------------------------
            $Text = SprintF('Отсутствует шаблон сообщения (templates/modules/%s.html)', $Text);
            #-------------------------------------------------------------------------------
        } else {
            #-------------------------------------------------------------------------------
            $Text = Trim(IO_Read($Path));
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    if ($NoBody) {
        $Text = SPrintF('<NOBODY><SPAN>%s</SPAN></NOBODY>', $Text);
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $Replace = Array_ToLine($Params, '%');
    #-------------------------------------------------------------------------------
    foreach (Array_Keys($Replace) as $Key) {
        $Text = Str_Replace($Key, $Replace[$Key], $Text);
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    return $Text;
    #-------------------------------------------------------------------------------
}
Beispiel #4
0
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Tr = new Tag('TR');
#-------------------------------------------------------------------------------
if (!isset($GLOBALS['__USER'])) {
    #-------------------------------------------------------------------------------
    $Links['DOM']->AddChild('Head', new Tag('SCRIPT', array('type' => 'text/javascript', 'src' => 'SRC:{Js/Logon.js}')));
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $Path = System_Element('templates/TopPanel/Logon.xml');
    if (Is_Error($Path)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    $Parse = IO_Read($Path);
    if (Is_Error($Parse)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    $Tr->AddHTML($Parse);
    #-------------------------------------------------------------------------------
    $Script = new Tag('SCRIPT', array('type' => 'text/javascript'), "function TopPanelLogon(){ Logon(document.getElementById('TopPanelEmail').value,document.getElementById('TopPanelPassword').value,document.getElementById('TopPanelIsRemember').checked); }");
    #-------------------------------------------------------------------------------
    $Links['DOM']->AddChild('Head', $Script);
    #-------------------------------------------------------------------------------
} else {
    #-------------------------------------------------------------------------------
    $__USER = $GLOBALS['__USER'];
    #-------------------------------------------------------------------------------
    if (Is_Null($__USER)) {
Beispiel #5
0
  //----------------------------------------------------------------------------
  var Element = document.getElementById(ElementID);
  if(!Element)
    return;
  //----------------------------------------------------------------------------
  var Style = Element.style;
  //----------------------------------------------------------------------------
  Style.display = (Style.display != 'none'?'none':'');
  //----------------------------------------------------------------------------
  FadeIn(Element);
}
EOD;
#-------------------------------------------------------------------------------
$DOM->AddChild('Head', new Tag('SCRIPT', $JavaScript));
#-------------------------------------------------------------------------------
$Parse = IO_Read('/work/joonte/Repository.xml');
if (Is_Error($Parse)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$DB = new DOM($Parse);
if (Is_Error($DB)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
function XML_Read($Object, $Level = 1)
{
    #-----------------------------------------------------------------------------
    static $Index = 1;
    #-----------------------------------------------------------------------------
    $Md5 = Md5($Index++);
Beispiel #6
0
$Mime = (string) @$Args['Mime'];
#-------------------------------------------------------------------------------
if (!Preg_Match('/^[a-zA-Z0-9\\_\\.\\]\\[]+$/', $File)) {
    return 'Не верно указано имя файла';
}
#-------------------------------------------------------------------------------
$Tmp = System_Element('tmp');
if (Is_Error($Tmp)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Path = SPrintF('%s/files/%s', $Tmp, $File);
#-------------------------------------------------------------------------------
if (!File_Exists($Path)) {
    return 'Файл не существует';
}
#-------------------------------------------------------------------------------
$Source = IO_Read($Path);
if (Is_Error($Source)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Length = MB_StrLen($Source, 'ASCII');
#-------------------------------------------------------------------------------
Header(SPrintF('Content-Type: %s; charset=utf-8', $Mime ? $Mime : 'application'));
Header(SPrintF('Content-Length: %u', $Length));
Header(SPrintF('Content-Disposition: attachment; filename="%s";', $Name ? AddSlashes($Name) : $File));
Header('Pragma: nocache');
#-------------------------------------------------------------------------------
echo $Source;
#-------------------------------------------------------------------------------
Beispiel #7
0
<?php

#-------------------------------------------------------------------------------
$Config = IO_Read($Path = SPrintF('%s/hosts/%s/host.ini', SYSTEM_PATH, HOST_ID));
if (Is_Error($Config)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Config = Str_Replace('JBsServer', 'jbs-server', $Config);
#-------------------------------------------------------------------------------
$IsWrite = IO_Write($Path, $Config, TRUE);
if (Is_Error($IsWrite)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
return TRUE;
#-------------------------------------------------------------------------------
Beispiel #8
0
#-------------------------------------------------------------------------------
$Folder = SPrintF('%s/hosts/%s', SYSTEM_PATH, HOST_ID);
#-------------------------------------------------------------------------------
$Files = IO_Files($Folder);
if (Is_Error($Files)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
foreach ($Files as $File) {
    #-----------------------------------------------------------------------------
    if (!Preg_Match('/\\.xml/', $File)) {
        continue;
    }
    #-----------------------------------------------------------------------------
    $Sourse = IO_Read($File);
    if (Is_Error($Sourse)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    $Out = Str_Replace('path="MenuLeft"', 'path="Menus/Left"', $Sourse);
    #-----------------------------------------------------------------------------
    if ($Out != $Sourse) {
        #---------------------------------------------------------------------------
        $IsWrite = IO_Write($File, $Out, TRUE);
        if (Is_Error($IsWrite)) {
            return ERROR | @Trigger_Error(500);
        }
    }
}
#-------------------------------------------------------------------------------
Beispiel #9
0
#-------------------------------------------------------------------------------
$Search = "case\\s'xception\\'\\:\n\\s+return\\s\$";
#-------------------------------------------------------------------------------
Header('Content-type: text/plain; charset=utf-8');
#-------------------------------------------------------------------------------
$Files = IO_Files(SYSTEM_PATH);
if (Is_Error($Files)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Count = Count($Files);
#-------------------------------------------------------------------------------
echo SPrintF("Finded %s files\n", $Count);
#-------------------------------------------------------------------------------
echo SPrintF("Search (%s)\n", $Search);
#-------------------------------------------------------------------------------
foreach ($Files as $File) {
    #-----------------------------------------------------------------------------
    $Source = IO_Read($File);
    if (Is_Error($Source)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    #if(!Preg_Match('/\.comp.php/',$File))
    #  continue;
    #-----------------------------------------------------------------------------
    if (Preg_Match(SPrintF('/%s/sU', $Search), $Source)) {
        echo SPrintF("%s\n", $File);
    }
}
#-------------------------------------------------------------------------------
Beispiel #10
0
function Styles_XML($Element)
{
    /****************************************************************************/
    $__args_types = array('string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $CacheID = SPrintF('Styles_XML[%s]', Md5($Element));
    #-----------------------------------------------------------------------------
    $Result = CacheManager::get($CacheID);
    if ($Result) {
        return $Result;
    }
    #-----------------------------------------------------------------------------
    $HostsIDs = Styles_HostsIDs($Element);
    if (Is_Error($HostsIDs)) {
        return ERROR | @Trigger_Error('[Styles_XML]: список хостов содержащих элемент не найдены');
    }
    #-----------------------------------------------------------------------------
    $Result = array();
    #-----------------------------------------------------------------------------
    foreach (Array_Reverse($HostsIDs) as $HostID) {
        #---------------------------------------------------------------------------
        $Path = SPrintF('%s/styles/%s/%s', SYSTEM_PATH, $HostID, $Element);
        #---------------------------------------------------------------------------
        $File = IO_Read($Path);
        if (Is_Error($File)) {
            return ERROR | @Trigger_Error('[Styles_XML]: не удалось прочитать XML-файл');
        }
        #---------------------------------------------------------------------------
        $XML = String_XML_Parse($File);
        if (Is_Exception($XML)) {
            return ERROR | @Trigger_Error('[Styles_XML]: не удалось разобрать XML-строку');
        }
        #---------------------------------------------------------------------------
        $Child = Current($XML->Childs);
        #---------------------------------------------------------------------------
        if (isset($Child->Attribs['recursive'])) {
            $Result = array();
        }
        #---------------------------------------------------------------------------
        $Adding = $XML->ToArray();
        #---------------------------------------------------------------------------
        $Adding = $Adding['XML'];
        #---------------------------------------------------------------------------
        Array_Union($Result, $Adding);
    }
    #-----------------------------------------------------------------------------
    CacheManager::add($CacheID, $Result);
    #-----------------------------------------------------------------------------
    return $Result;
}
Beispiel #11
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 #12
0
       </TD>
      </TR>
     </TABLE>
    </FORM>
   </TD>
   <TD>
    <IFRAME name="Main" src="FileList.html" style="width:100%;height:100%;s" />
   </TD>
  </TR>
</TABLE>
EOD;
#-------------------------------------------------------------------------------
$DOM->AddHTML('Into', $Parse);
#-------------------------------------------------------------------------------
$Out = $DOM->Build();
#-------------------------------------------------------------------------------
$IsWrite = IO_Write(SPrintF('%s/Index.html', $JBsDocPath), $Out, TRUE);
if (Is_Error($IsWrite)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$File = IO_Read(SPrintF('%s/styles/root/Css/Standard.css', SYSTEM_PATH));
if (Is_Error($File)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$IsWrite = IO_Write(SPrintF('%s/Standard.css', $JBsDocPath), $File, TRUE);
if (Is_Error($IsWrite)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
Beispiel #13
0
#-------------------------------------------------------------------------------
$DOM->AddAttribs('MenuLeft', array('args' => 'Administrator/AddIns'));
#-------------------------------------------------------------------------------
$DOM->AddText('Title', 'Дополнения → Мастера настройки → Базовый шаблон');
#-------------------------------------------------------------------------------
$Script = new Tag('SCRIPT', array('type' => 'text/javascript', 'src' => 'SRC:{Js/Pages/Administrator/BaseEdit.js}'));
#-------------------------------------------------------------------------------
$DOM->AddChild('Head', $Script);
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
$Element = System_Element('templates/Base.xml');
if (Is_Error($Element)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Base = IO_Read($Element);
if (Is_Error($Base)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Table = array();
#-------------------------------------------------------------------------------
$Comp = Comp_Load('CodePress', 'Base', 'html', $Base);
if (Is_Error($Comp)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Table[] = $Comp;
#-------------------------------------------------------------------------------
$Div = new Tag('DIV', array('align' => 'right'));
#-------------------------------------------------------------------------------
Beispiel #14
0
#-------------------------------------------------------------------------------
if (!File_Exists($Uploads)) {
    if (!@MkDir(SPrintF('%s/uploads', $Tmp), 0777, TRUE)) {
        return ERROR | @Trigger_Error(500);
    }
}
#-------------------------------------------------------------------------------
if (!Copy($Path, SPrintF('%s/%s', $Uploads, $Hash))) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Name = $File['name'];
#-------------------------------------------------------------------------------
$NamesPath = SPrintF('%s/names.txt', $Uploads);
#-------------------------------------------------------------------------------
$Names = Is_Error($Names = IO_Read($NamesPath)) ? array() : JSON_Decode($Names, true);
#-------------------------------------------------------------------------------
$Names[$Hash] = $Name;
#-------------------------------------------------------------------------------
$IsWrite = IO_Write($NamesPath, JSON_Encode($Names), TRUE);
if (Is_Error($IsWrite)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Size = Round($File['size'] / 1024);
#-------------------------------------------------------------------------------
# вывод для JS в браузере...
if (!isset($GLOBALS['IsCron'])) {
    echo SPrintF('%s^%s^%s^', $Name, $Size, $Hash);
}
#-------------------------------------------------------------------------------
Beispiel #15
0
function System_Read($Element)
{
    #-----------------------------------------------------------------------------
    $Path = System_Element($Element);
    if (Is_Error($Path)) {
        return ERROR | @Trigger_Error('[System_Read]: не удалось найти элемент');
    }
    #-----------------------------------------------------------------------------
    $Result = IO_Read($Path);
    if (Is_Error($Result)) {
        return ERROR | @Trigger_Error('[System_Read]: не удалось прочитать данные');
    }
    #-----------------------------------------------------------------------------
    return $Result;
}
Beispiel #16
0
<?php

#-------------------------------------------------------------------------------
$Folder = $_SERVER['DOCUMENT_ROOT'];
#-------------------------------------------------------------------------------
$Link = SPrintF('%s/styles', $Folder);
#-------------------------------------------------------------------------------
if (!File_Exists($Link)) {
    #-----------------------------------------------------------------------------
    if (!SymLink(SPrintF('%s/styles', SYSTEM_PATH), $Link)) {
        return ERROR | @Trigger_Error(500);
    }
}
#-------------------------------------------------------------------------------
$HtAccess = IO_Read(SPrintF('%s/.htaccess', $Folder));
if (Is_Error($HtAccess)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$HtAccess = Str_Replace('Styles', 'styles', $HtAccess);
#-------------------------------------------------------------------------------
$IsWrite = IO_Write(SPrintF('%s/.htaccess', $Folder), $HtAccess, TRUE);
if (Is_Error($IsWrite)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
@UnLink(SPrintF('%s/Styles', $Folder));
#-------------------------------------------------------------------------------
return TRUE;
#-------------------------------------------------------------------------------
Beispiel #17
0
<?php

#-------------------------------------------------------------------------------
$Real = SPrintF('%s/hosts/%s/domtemplates/Base.xml', SYSTEM_PATH, HOST_ID);
#-------------------------------------------------------------------------------
if (File_Exists($Real)) {
    #-----------------------------------------------------------------------------
    $Source = IO_Read($Real);
    if (Is_Error($Source)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    $Replace = <<<EOD
<TD id="Context">
     <TABLE cellspacing="0" cellpadding="0" width="100%" height="100%">
      <TR>
       <COMP id="MenuLeft" path="Menus/Left" />
       <TD valign="top">
        <DIV class="Title" id="Title" />
        <TABLE width="100%" cellspacing="5" cellpadding="0">
         <TR>
          <TD id="Into" />
         </TR>
        </TABLE>
       </TD>
      </TR>
     </TABLE>
    </TD>
EOD;
    #-----------------------------------------------------------------------------
    $Source = Str_Replace('<TD id="Main" />', $Replace, $Source);
Beispiel #18
0
function Started_Contract_Register($Settings, $PepsonID, $Person, $DomainZone)
{
    /****************************************************************************/
    $__args_types = array('array', 'string', 'array', 'string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    $HTTP = array('Protocol' => $Settings['Protocol'], 'Port' => $Settings['Port'], 'Address' => $Settings['Address'], 'Host' => $Settings['Address'], 'IsLogging' => $Settings['Params']['IsLogging']);
    #-----------------------------------------------------------------------------
    $Reseller = new Tag('reseller');
    $Reseller->AddChild(new Tag('login', $Settings['Login']));
    $Reseller->AddChild(new Tag('password', $Settings['Password']));
    #-----------------------------------------------------------------------------
    $Tmp = System_Element('tmp');
    if (Is_Error($Tmp)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    $pCountry = isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry'];
    #-----------------------------------------------------------------------------
    $Path = SPrintF('%s/started/states[%s].json', $Tmp, $pCountry);
    #-----------------------------------------------------------------------------
    if (File_Exists($Path)) {
        #---------------------------------------------------------------------------
        $States = IO_Read($Path);
        if (Is_Error($States)) {
            return ERROR | @Trigger_Error(500);
        }
        #---------------------------------------------------------------------------
        $States = JSON_Decode($States, TRUE);
        if (!$States) {
            return ERROR | @Trigger_Error(500);
        }
    } else {
        #---------------------------------------------------------------------------
        $Request = new Tag('RequestBody', $Reseller);
        #---------------------------------------------------------------------------
        $objCountry = new Tag('objCountry');
        $objCountry->AddChild(new Tag('method', 'getRegions'));
        $objCountry->AddChild(new Tag('country', $pCountry));
        #---------------------------------------------------------------------------
        $Request->AddChild($objCountry);
        #---------------------------------------------------------------------------
        $Post = SprintF("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n%s", $Request->ToXMLString());
        #---------------------------------------------------------------------------
        $Responce = HTTP_Send('/', $HTTP, array(), $Post, array('Content-type: text/xml'));
        if (Is_Error($Responce)) {
            return ERROR | @Trigger_Error(500);
        }
        #---------------------------------------------------------------------------
        $Response = Trim($Responce['Body']);
        #---------------------------------------------------------------------------
        $Answer = String_XML_Parse($Response);
        if (Is_Exception($Answer)) {
            return new gException('WRONG_ANSWER', $Response, $Answer);
        }
        #---------------------------------------------------------------------------
        $States = Current($States->ToArray('item'));
        #---------------------------------------------------------------------------
        $IsWrite = IO_Write($Path, JSON_Encode($States), TRUE);
        if (Is_Error($IsWrite)) {
            return ERROR | @Trigger_Error(500);
        }
    }
    #-----------------------------------------------------------------------------
    $objUser = new Tag('objUser');
    $objUser->AddChild(new Tag('method', 'create'));
    #-----------------------------------------------------------------------------
    $objUser->AddChild(new Tag('email', $Person['Email']));
    $objUser->AddChild(new Tag('password', SubStr(Md5(UniqID()), -8)));
    #-----------------------------------------------------------------------------
    $IsRussian = In_Array(isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry'], array('RU', 'BY', 'UA'));
    #-----------------------------------------------------------------------------
    switch ($PepsonID) {
        case 'Natural':
            #-------------------------------------------------------------------------
            $pStateID = 0;
            #-------------------------------------------------------------------------
            $pState = $Person['pState'];
            #-------------------------------------------------------------------------
            foreach ($States as $State) {
                #-----------------------------------------------------------------------
                if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($pState))) {
                    #---------------------------------------------------------------------
                    $pStateID = $State['id'];
                    #---------------------------------------------------------------------
                    Debug(SPrintF('Найдена область: %s', $pStateID));
                    #---------------------------------------------------------------------
                    break;
                }
            }
            #-------------------------------------------------------------------------
            if (!$pStateID) {
                #-----------------------------------------------------------------------
                Debug(SPrintF('Область не найдена, проверьте название области (%s)', $pState));
                #-----------------------------------------------------------------------
                return new gException('POST_REGION_NOT_FOUND', 'Область почтового адреса не найдена');
            }
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('type', 'person'));
            #-------------------------------------------------------------------------
            if ($IsRussian) {
                #-----------------------------------------------------------------------
                $objUser->AddChild(new Tag('fname', $Person['Name']));
                $objUser->AddChild(new Tag('lname', $Person['Lastname']));
                $objUser->AddChild(new Tag('mname', $Person['Sourname']));
                $objUser->AddChild(new Tag('doc_issued', $Person['PasportWhom']));
            } else {
                $objUser->AddChild(new Tag('fname', Translit($Person['Name'])));
                $objUser->AddChild(new Tag('lname', Translit($Person['Lastname'])));
                $objUser->AddChild(new Tag('mname', Translit($Person['Sourname'])));
                $objUser->AddChild(new Tag('doc_issued', Translit($Person['PasportWhom'])));
            }
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('p_inn', ''));
            $objUser->AddChild(new Tag('doc_serial', $Person['PasportLine']));
            $objUser->AddChild(new Tag('doc_number', $Person['PasportNum']));
            $objUser->AddChild(new Tag('doc_date', $Person['PasportDate']));
            $objUser->AddChild(new Tag('birth_date', $Person['BornDate']));
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('country', StrToLower(isset($Person['PasportCountry']) ? $Person['PasportCountry'] : $Person['pCountry'])));
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('zip', $Person['pIndex']));
            $objUser->AddChild(new Tag('state', $pStateID));
            $objUser->AddChild(new Tag('city_type', 'city'));
            $objUser->AddChild(new Tag('addr_type', StrToLower($Person['pType'])));
            #-------------------------------------------------------------------------
            if ($IsRussian) {
                #-----------------------------------------------------------------------
                $objUser->AddChild(new Tag('city', $Person['pCity']));
                $objUser->AddChild(new Tag('addr', SPrintF('%s %s', $Person['pType'], $Person['pAddress'])));
            } else {
                $objUser->AddChild(new Tag('city', Translit($Person['pCity'])));
                $objUser->AddChild(new Tag('addr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress']))));
            }
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('pzip', $Person['pIndex']));
            $objUser->AddChild(new Tag('pstate', $pStateID));
            $objUser->AddChild(new Tag('pcity_type', 'city'));
            $objUser->AddChild(new Tag('paddr_type', StrToLower($Person['pType'])));
            #-------------------------------------------------------------------------
            if ($IsRussian) {
                #-----------------------------------------------------------------------
                $objUser->AddChild(new Tag('pcity', $Person['pCity']));
                $objUser->AddChild(new Tag('paddr', SPrintF('%s %s', $Person['pType'], $Person['pAddress'])));
                $objUser->AddChild(new Tag('pto', $Person['pRecipient']));
            } else {
                #-----------------------------------------------------------------------
                $objUser->AddChild(new Tag('pcity', Translit($Person['pCity'])));
                $objUser->AddChild(new Tag('paddr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress']))));
                $objUser->AddChild(new Tag('pto', Translit($Person['pRecipient'])));
            }
            break;
        case 'Juridical':
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('type', 'organization'));
            #-------------------------------------------------------------------------
            if ($IsRussian) {
                #-----------------------------------------------------------------------
                $objUser->AddChild(new Tag('fname', $Person['dName']));
                $objUser->AddChild(new Tag('lname', $Person['dLastname']));
                $objUser->AddChild(new Tag('mname', $Person['dSourname']));
                $objUser->AddChild(new Tag('org', SPrintF('%s "%s"', $Person['CompanyFormFull'], $Person['CompanyName'])));
            } else {
                $objUser->AddChild(new Tag('fname', Translit($Person['dName'])));
                $objUser->AddChild(new Tag('lname', Translit($Person['dLastname'])));
                $objUser->AddChild(new Tag('mname', Translit($Person['dSourname'])));
                $objUser->AddChild(new Tag('org', SPrintF('%s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull']))));
            }
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('o_inn', $Person['Inn']));
            $objUser->AddChild(new Tag('kpp', $Person['Kpp']));
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('country', StrToLower($Person['jCountry'])));
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('zip', $Person['jIndex']));
            #-------------------------------------------------------------------------
            $jStateID = 0;
            #-------------------------------------------------------------------------
            $jState = $Person['jState'];
            #-------------------------------------------------------------------------
            foreach ($States as $State) {
                #-----------------------------------------------------------------------
                if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($jState))) {
                    #---------------------------------------------------------------------
                    $jStateID = $State['id'];
                    #---------------------------------------------------------------------
                    Debug(SPrintF('Найдена область: %s', $jStateID));
                    #---------------------------------------------------------------------
                    break;
                }
            }
            #-------------------------------------------------------------------------
            if (!$jStateID) {
                #-----------------------------------------------------------------------
                Debug(SPrintF('Область не найдена, проверьте название области (%s)', $jState));
                #-----------------------------------------------------------------------
                return new gException('JURIDICAL_REGION_NOT_FOUND', 'Область юридического адреса не найдена');
            }
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('state', $jStateID));
            $objUser->AddChild(new Tag('city_type', 'city'));
            $objUser->AddChild(new Tag('addr_type', StrToLower($Person['jType'])));
            #-------------------------------------------------------------------------
            if ($IsRussian) {
                #-----------------------------------------------------------------------
                $objUser->AddChild(new Tag('city', $Person['jCity']));
                $objUser->AddChild(new Tag('addr', SPrintF('%s %s', $Person['jType'], $Person['jAddress'])));
            } else {
                $objUser->AddChild(new Tag('city', Translit($Person['jCity'])));
                $objUser->AddChild(new Tag('addr', Translit(SPrintF('%s %s', $Person['jType'], $Person['jAddress']))));
            }
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('pzip', $Person['pIndex']));
            #-------------------------------------------------------------------------
            $pStateID = 0;
            #-------------------------------------------------------------------------
            $pState = $Person['pState'];
            #-------------------------------------------------------------------------
            foreach ($States as $State) {
                #-----------------------------------------------------------------------
                if (Preg_Match(SPrintF('/%s/', StrToLower($State['title'])), StrToLower($pState))) {
                    #---------------------------------------------------------------------
                    $pStateID = $State['id'];
                    #---------------------------------------------------------------------
                    Debug(SPrintF('Найдена область: %s', $pStateID));
                    #---------------------------------------------------------------------
                    break;
                }
            }
            #-------------------------------------------------------------------------
            if (!$pStateID) {
                #-----------------------------------------------------------------------
                Debug(SPrintF('Область не найдена, проверьте название области (%s)', $pState));
                #-----------------------------------------------------------------------
                return new gException('POST_REGION_NOT_FOUND', 'Область почтового адреса не найдена');
            }
            #-------------------------------------------------------------------------
            $objUser->AddChild(new Tag('pstate', $pStateID));
            $objUser->AddChild(new Tag('pcity_type', 'city'));
            $objUser->AddChild(new Tag('paddr_type', StrToLower($Person['pType'])));
            #-------------------------------------------------------------------------
            if ($IsRussian) {
                #-----------------------------------------------------------------------
                $objUser->AddChild(new Tag('pcity', $Person['pCity']));
                $objUser->AddChild(new Tag('paddr', SPrintF('%s %s', $Person['pType'], $Person['pAddress'])));
                $objUser->AddChild(new Tag('pto', SPrintF('%s "%s"', $Person['CompanyFormFull'], $Person['CompanyName'])));
            } else {
                $objUser->AddChild(new Tag('pcity', Translit($Person['pCity'])));
                $objUser->AddChild(new Tag('paddr', Translit(SPrintF('%s %s', $Person['pType'], $Person['pAddress']))));
                $objUser->AddChild(new Tag('pto', SPrintF('%s %s', Translit($Person['CompanyName']), Translit($Person['CompanyFormFull']))));
            }
            break;
        default:
            return ERROR | @Trigger_Error(101);
    }
    #-----------------------------------------------------------------------------
    $Phone = $Person['Phone'];
    #-----------------------------------------------------------------------------
    if ($Phone) {
        #---------------------------------------------------------------------------
        $Phone = StrPBrk($Phone, ' ');
        #---------------------------------------------------------------------------
        $objUser->AddChild(new Tag('tel', Trim($Phone)));
    } else {
        $objUser->AddChild(new Tag('tel'));
    }
    #-----------------------------------------------------------------------------
    $Fax = $Person['Fax'];
    #-----------------------------------------------------------------------------
    if ($Fax) {
        #---------------------------------------------------------------------------
        $Fax = StrPBrk($Fax, ' ');
        #---------------------------------------------------------------------------
        $objUser->AddChild(new Tag('fax', Trim($Fax)));
    } else {
        $objUser->AddChild(new Tag('fax'));
    }
    #-----------------------------------------------------------------------------
    $Request = new Tag('RequestBody', $Reseller);
    #-----------------------------------------------------------------------------
    $Request->AddChild($objUser);
    #-----------------------------------------------------------------------------
    $Post = SprintF("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n%s", $Request->ToXMLString());
    #-----------------------------------------------------------------------------
    $Responce = HTTP_Send('/', $HTTP, array(), $Post, array('Content-type: text/xml; charset=utf-8'));
    if (Is_Error($Responce)) {
        return ERROR | @Trigger_Error(500);
    }
    #-----------------------------------------------------------------------------
    $Response = Trim($Responce['Body']);
    #-----------------------------------------------------------------------------
    $Answer = String_XML_Parse($Response);
    if (Is_Exception($Answer)) {
        return new gException('WRONG_ANSWER', $Response, $Answer);
    }
    #-----------------------------------------------------------------------------
    $Answer = $Answer->ToArray();
    #-----------------------------------------------------------------------------
    $Answer = $Answer['AnswerBody'];
    #-----------------------------------------------------------------------------
    if (isset($Answer['statusCode'])) {
        return new gException('REGISTRATOR_ERROR', SPrintF('[%s]=(%s)', $Answer['statusCode'], $Answer['statusMessage']));
    }
    #-----------------------------------------------------------------------------
    return array('TicketID' => $Answer['user_id']);
}
Beispiel #19
0
<?php

#-------------------------------------------------------------------------------
/** @author Великодный В.В. (Joonte Ltd.) */
/******************************************************************************/
/******************************************************************************/
$__args_list = array('Element');
/******************************************************************************/
eval(COMP_INIT);
/******************************************************************************/
/******************************************************************************/
$NoBody = new Tag('NOBODY');
#-------------------------------------------------------------------------------
$Path = System_Element($Element);
if (Is_Error($Path)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$HTML = IO_Read($Path);
if (Is_Error($HTML)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$NoBody->AddHTML($HTML);
#-------------------------------------------------------------------------------
return $NoBody;
#-------------------------------------------------------------------------------
Beispiel #20
0
 Sort($PatchesIDs);
 #-------------------------------------------------------------------------------
 $File = SPrintF('%s/hosts/%s/.LastPatchFiles', SYSTEM_PATH, $HostID);
 #-------------------------------------------------------------------------------
 if (!File_Exists($File)) {
     #-------------------------------------------------------------------------------
     $LastPatchFiles = IntVal(End($PatchesIDs));
     #-------------------------------------------------------------------------------
     $IsWrite = IO_Write($File, (string) $LastPatchFiles, TRUE);
     if (Is_Error($IsWrite)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------------
 } else {
     #-------------------------------------------------------------------------------
     $LastPatchFiles = IO_Read($File);
     if (Is_Error($LastPatchFiles)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------------
     $LastPatchFiles = IntVal($LastPatchFiles);
     #-------------------------------------------------------------------------------
     echo SPrintF("Последний патч файлов хоста (%s) (%u)\n", $HostID, $LastPatchFiles);
     #-------------------------------------------------------------------------------
     foreach ($PatchesIDs as $PatchID) {
         #-------------------------------------------------------------------------------
         $PatchInt = IntVal($PatchID);
         #-------------------------------------------------------------------------------
         if ($PatchInt > $LastPatchFiles) {
             #-------------------------------------------------------------------------------
             echo SPrintF("Применение патча файлов хоста (%s) (%s)\n", $HostID, $PatchID);
Beispiel #21
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;
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
}
Beispiel #22
0
<?php

#-------------------------------------------------------------------------------
/** @author Великодный В.В. (Joonte Ltd.) */
/******************************************************************************/
/******************************************************************************/
$__args_list = array('Element');
/******************************************************************************/
eval(COMP_INIT);
/******************************************************************************/
/******************************************************************************/
$Path = System_Element($Element);
if (Is_Error($Path)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$File = IO_Read($Path);
if (Is_Error($File)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
return $File;
#-------------------------------------------------------------------------------
Beispiel #23
0
<?php

#-------------------------------------------------------------------------------
/** @author Великодный В.В. (Joonte Ltd.) */
#-------------------------------------------------------------------------------
$Path = Styles_Element('Images/Icon.png');
if (Is_Error($Path)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Icon = IO_Read($Path);
if (Is_Error($Icon)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
Header('Content-Type: image/png');
#-------------------------------------------------------------------------------
return $Icon;
#-------------------------------------------------------------------------------
Beispiel #24
0
#-------------------------------------------------------------------------------
$UserID = $UserID ? $UserID : @$GLOBALS['__USER']['ID'];
#-------------------------------------------------------------------------------
if (!$UserID) {
    return 'No user defined';
}
#-------------------------------------------------------------------------------
# проверяем наличие файла
if (!GetUploadedFileSize('Users', $UserID)) {
    #-------------------------------------------------------------------------------
    $Path = Styles_Element('Images/UserFoto.jpg');
    if (Is_Error($Path)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    $Foto = IO_Read($Path);
    if (Is_Error($Foto)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
} else {
    #-------------------------------------------------------------------------------
    $File = GetUploadedFile('Users', $UserID);
    #-------------------------------------------------------------------------------
    $Foto = $File['Data'];
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Header('Content-Type: image/jpg');
#-------------------------------------------------------------------------------
Beispiel #25
0
    # нету файла по стандартным путям хранения файлов
    $Service = DB_Select('Services', array('ID', 'Code'), array('UNIQ', 'ID' => $ServiceID));
    #-------------------------------------------------------------------------------
    switch (ValueOf($Service)) {
        case 'error':
            return ERROR | @Trigger_Error(500);
        case 'exception':
            return ERROR | @Trigger_Error(400);
        case 'array':
            #-------------------------------------------------------------------------------
            $Emblem = Styles_Element(SPrintF('Images/Icons/%s.png', $Service['Code']));
            if (Is_Error($Emblem)) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------------
            $Emblem = IO_Read($Emblem);
            if (Is_Error($Emblem)) {
                return ERROR | @Trigger_Error(500);
            }
            #-------------------------------------------------------------------------------
            break;
        default:
            return ERROR | @Trigger_Error(101);
    }
    #-------------------------------------------------------------------------------
} else {
    #-------------------------------------------------------------------------------
    $File = GetUploadedFile('Services', $ServiceID);
    #-------------------------------------------------------------------------------
    $Emblem = $File['Data'];
    #-------------------------------------------------------------------------------
Beispiel #26
0
<?php

#-------------------------------------------------------------------------------
/** @author Alex Keda, for www.host-food.ru */
/******************************************************************************/
/******************************************************************************/
$ConfigPath = SPrintF('%s/hosts/%s/config/Config.xml', SYSTEM_PATH, HOST_ID);
#-------------------------------------------------------------------------------
if (File_Exists($ConfigPath)) {
    #-------------------------------------------------------------------------------
    $File = IO_Read($ConfigPath);
    if (Is_Error($File)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    $XML = String_XML_Parse($File);
    if (Is_Exception($XML)) {
        return ERROR | @Trigger_Error(500);
    }
    #-------------------------------------------------------------------------------
    $Config = $XML->ToArray();
    #-------------------------------------------------------------------------------
    $Config = $Config['XML'];
    #-------------------------------------------------------------------------------
} else {
    #-------------------------------------------------------------------------------
    $Config = array();
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
     }
     #-----------------------------------------------------------------
     $Command = SPrintF('convert -density 120 -compress group4 %s %s', $PDF, $Tiff = SPrintF('%s/%s.tiff', $Tmp, $UniqID));
     #-----------------------------------------------------------------
     Debug($Command);
     #-----------------------------------------------------------------
     $ImageMagick = @Proc_Open($Command, array(array('pipe', 'r'), array('pipe', 'w'), array('file', SPrintF('%s/logs/ImageMagic.log', $Tmp), 'a')), $Pipes);
     if (!Is_Resource($ImageMagick)) {
         return ERROR | @Trigger_Error(500);
     }
     #-----------------------------------------------------------------
     Proc_Close($ImageMagick);
     #-----------------------------------------------------------------
     UnLink($PDF);
     #-----------------------------------------------------------------
     $File = IO_Read($Tiff);
     if (Is_Error($File)) {
         return ERROR | @Trigger_Error(500);
     }
     #-----------------------------------------------------------------
     UnLink($Tiff);
     #-----------------------------------------------------------------
     $Extension = 'tiff';
 } else {
     $Extension = 'pdf';
 }
 #-------------------------------------------------------------------
 $Length = MB_StrLen($File, 'ASCII');
 #-------------------------------------------------------------------
 $Comp = Comp_Load('Formats/Invoice/Number', $Invoice['ID']);
 if (Is_Error($Comp)) {
Beispiel #28
0
<?php

#-------------------------------------------------------------------------------
$Config = IO_Read($Path = SPrintF('%s/hosts/%s/config/Config.xml', SYSTEM_PATH, HOST_ID));
if (Is_Error($Config)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
$Config = Str_Replace('Account', 'Invoice', $Config);
#-------------------------------------------------------------------------------
$IsWrite = IO_Write($Path, $Config, TRUE);
if (Is_Error($IsWrite)) {
    return ERROR | @Trigger_Error(500);
}
#-------------------------------------------------------------------------------
return TRUE;
#-------------------------------------------------------------------------------
Beispiel #29
0
function Image_Resize($Source, $Width, $Height)
{
    /****************************************************************************/
    $__args_types = array('string', 'integer');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    if (!Function_Exists('ImageCreateFromString')) {
        return ERROR | Trigger_Error('[Image_Resize]: модуль работы с изображениями не установлен');
    }
    #-----------------------------------------------------------------------------
    $Real = @ImageCreateFromString($Source);
    if (!Is_Resource($Real)) {
        return ERROR | @Trigger_Error("[Image_Resize]: не возможно создать изображение");
    }
    #-----------------------------------------------------------------------------
    if (Function_Exists('imageantialias')) {
        ImageAntiAlias($Real, TRUE);
    }
    #-----------------------------------------------------------------------------
    $Result = ImageCreateTrueColor($Width, $Height);
    if (!$Result) {
        return ERROR | @Trigger_Error('[Image_Resize]: не удалось создать пустое изображение');
    }
    #-----------------------------------------------------------------------------
    $White = ImageColorAllocate($Result, 230, 230, 230);
    #-----------------------------------------------------------------------------
    if (!ImageFill($Result, 0, 0, $White)) {
        return ERROR | @Trigger_Error('[Image_Resize]: не удалось закрасить изображение');
    }
    #-----------------------------------------------------------------------------
    $Sx = @ImageSx($Real);
    if (!$Sx) {
        return ERROR | @Trigger_Error("[Image_Resize]: не возможно получить ширину изображения");
    }
    #-----------------------------------------------------------------------------
    $Sy = @ImageSy($Real);
    if (!$Sy) {
        return ERROR | @Trigger_Error("[Image_Resize]: не возможно получить высоту изображения");
    }
    #-----------------------------------------------------------------------------
    $Folder = System_Element('tmp');
    if (Is_Error($Folder)) {
        return ERROR | @Trigger_Error('[Image_Resize]: не удалось найти временную папку');
    }
    #-----------------------------------------------------------------------------
    if ($Width < $Sx || $Height < $Sy) {
        #---------------------------------------------------------------------------
        $HW = $Sy / $Sx;
        $WH = $Sx / $Sy;
        #---------------------------------------------------------------------------
        $WNew = $Width;
        $HNew = $Height;
        #---------------------------------------------------------------------------
        if ($Sx < $Sy) {
            $HNew = (int) ($WNew * $HW);
        } else {
            $WNew = (int) ($HNew * $WH);
        }
        #---------------------------------------------------------------------------
        if (!Preg_Match('/no\\sconvert/', Exec('which convert'))) {
            #-------------------------------------------------------------------------
            $File = SPrintF('%s/%s', $Folder, UniqID('Image'));
            #-------------------------------------------------------------------------
            if (!ImageJpeg($Real, $File, 100)) {
                return ERROR | @Trigger_Error('[Image_Resize]: не удалось сохранить временное изображение');
            }
            #-------------------------------------------------------------------------
            $Command = SPrintF('convert %s -thumbnail %ux%u^ -gravity North -extent %ux%u %s', $File, $Width, $Height, $Width, $Height, $File);
            #-------------------------------------------------------------------------
            Debug($Command);
            #-------------------------------------------------------------------------
            if (Exec($Command, $Log)) {
                return ERROR | @Trigger_Error(SPrintF("[Image_Resize]: ошибка выполнения команды:\n%s", Implode("\n", $Log)));
            }
            #-------------------------------------------------------------------------
            $Result = IO_Read($File);
            if (Is_Error($Result)) {
                return ERROR | @Trigger_Error('[Image_Resize]: не удалось прочитать изображение');
            }
            #-------------------------------------------------------------------------
            if (!UnLink($File)) {
                return ERROR | @Trigger_Error('[Image_Resize]: не удалось удалить временный файл');
            }
            #-------------------------------------------------------------------------
            return $Result;
        } else {
            #-------------------------------------------------------------------------
            if (!ImageCopyResized($Result, $Real, 0, 0, 0, 0, $WNew, $HNew, $Sx, $Sy)) {
                return ERROR | @Trigger_Error('[Image_Resize]: не удалось уменьшить изображение');
            }
        }
    } else {
        #---------------------------------------------------------------------------
        if (!ImageCopy($Result, $Real, ($Width - $Sx) / 2, ($Height - $Sy) / 2, 0, 0, $Sx, $Sy)) {
            return ERROR | @Trigger_Error('[Image_Resize]: не удалось уменьшить изображение');
        }
    }
    #-----------------------------------------------------------------------------
    $File = SPrintF('%s/%s', $Folder, UniqID('Image'));
    #-----------------------------------------------------------------------------
    if (!ImageJpeg($Result, $File, 95)) {
        return ERROR | @Trigger_Error('[Image_Resize]: не удалось сохранить временное изображение');
    }
    #-----------------------------------------------------------------------------
    if (!ImageDestroy($Result)) {
        return ERROR | @Trigger_Error('[Image_Resize]: не удалось освободить ресурс изображения');
    }
    #-----------------------------------------------------------------------------
    $Result = IO_Read($File);
    if (Is_Error($Result)) {
        return ERROR | @Trigger_Error('[Image_Resize]: не удалось прочитать изображение');
    }
    #-----------------------------------------------------------------------------
    if (!UnLink($File)) {
        return ERROR | @Trigger_Error('[Image_Resize]: не удалось удалить временный файл');
    }
    #-----------------------------------------------------------------------------
    return $Result;
}