function Comp_Load($Element) { /****************************************************************************/ $__args_types = array('string', '*'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $HostsIDs = System_HostsIDs(SPrintF('comp/%s.comp.php', $Element)); if (Is_Error($HostsIDs)) { return ERROR | @Trigger_Error('[Comp_Load]: не возможно найти компонент'); } #----------------------------------------------------------------------------- $IsCascade = In_Array(COMP_ALL_HOSTS, $__args__, TRUE); #----------------------------------------------------------------------------- if ($IsCascade) { $HostsIDs = Array_Reverse($HostsIDs); } #----------------------------------------------------------------------------- $Result = array(); #----------------------------------------------------------------------------- foreach ($HostsIDs as $HostID) { #--------------------------------------------------------------------------- $Path = SPrintF('%s/hosts/%s/comp/%s.comp.php', SYSTEM_PATH, $HostID, $Element); #--------------------------------------------------------------------------- if (Is_Dir($Path)) { return ERROR | @Trigger_Error('[Comp_Load]: объект не является компонентом'); } #--------------------------------------------------------------------------- $Args = $__args__; #--------------------------------------------------------------------------- Array_UnShift($Args, $Path); #--------------------------------------------------------------------------- $Comp = Call_User_Func_Array('LoadComp', $Args); if (Is_Error($Comp)) { return ERROR | @Trigger_Error('[Comp_Load]: не возможно загрузить компонент'); } #--------------------------------------------------------------------------- if ($IsCascade) { $Result[] = $Comp; } else { #------------------------------------------------------------------------- $Result = $Comp; #------------------------------------------------------------------------- break; } } #----------------------------------------------------------------------------- $Loaded =& Link_Get('Comp/Loaded', 'array'); #----------------------------------------------------------------------------- $Loaded[] = $Element; #----------------------------------------------------------------------------- return $Result; }
/** * Производит нормализацию объекта * * Удаляет всю служебную информацию, подргужает компоненты в документ, * подготавливает объект к выводу. */ public function Normalize(&$Object = NULL) { /****************************************************************************/ $__args_types = array('object,NULL'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ if (Is_Null($Object)) { $Object =& $this->Object; } #----------------------------------------------------------------------------- $Childs =& $Object->Childs; #----------------------------------------------------------------------------- if (Count($Childs) > 0) { #--------------------------------------------------------------------------- $i = 0; #--------------------------------------------------------------------------- while ($i < Count($ChildsIDs = Array_Keys($Childs))) { #------------------------------------------------------------------------- $Child =& $Childs[$ChildID = $ChildsIDs[$i]]; #------------------------------------------------------------------------- $Name = $Child->Name; #------------------------------------------------------------------------- switch ($Name) { case 'NOBODY': #--------------------------------------------------------------------- $Object->AddAttribs($Child->Attribs); #--------------------------------------------------------------------- $Object->AddText($Child->Text); #--------------------------------------------------------------------- Array_Splice($Childs, $ChildID, 1, $Child->Childs); continue 2; case 'COMP': #--------------------------------------------------------------------- $Attribs =& $Child->Attribs; #--------------------------------------------------------------------- $IsHasChilds = Count($Object->Childs) > 0; #--------------------------------------------------------------------- $FunctionID = $IsHasChilds ? 'AddChild' : 'AddText'; #--------------------------------------------------------------------- $CompPath = (string) @$Attribs['path']; #--------------------------------------------------------------------- if (Is_Error(System_Element(SPrintF('comp/%s.comp.php', $CompPath)))) { #------------------------------------------------------------------- $String = SPrintF('Компонент не найден (%s)', $CompPath); #------------------------------------------------------------------- $Object->{$FunctionID}($IsHasChilds ? new Tag('SPAN', $String) : $String); } else { #------------------------------------------------------------------- $Args = isset($Attribs['args']) ? Explode('|', $Attribs['args']) : array(); #------------------------------------------------------------------- Array_UnShift($Args, $CompPath); #------------------------------------------------------------------- $Comp = Call_User_Func_Array('Comp_Load', $Args); #------------------------------------------------------------------- switch ($Type = ValueOf($Comp)) { case 'error': #--------------------------------------------------------------- $String = SPrintF('Ошибка загрузки компонента (%s)', $CompPath); #--------------------------------------------------------------- if (isset($Attribs['debug'])) { $Object->AddChild(new Tag('PRE', Implode("\n", $GLOBALS['__SYSLOG']))); } else { $Object->{$FunctionID}($IsHasChilds ? new Tag('SPAN', $String) : $String); } break 2; case 'exception': #--------------------------------------------------------------- $String = $Comp->String; #--------------------------------------------------------------- $Object->{$FunctionID}($IsHasChilds ? new Tag('SPAN', $String) : $String); break 2; case 'object': $Child = $Comp; break 2; case 'string': #--------------------------------------------------------------- $Object->AddText($Comp); #--------------------------------------------------------------- Array_Splice($Childs, $ChildID, 1, $Child->Childs); continue 3; case 'false': # No more... # No more... case 'true': # No more... break 2; default: #--------------------------------------------------------------- $String = SPrintF('Компонент вернул результат неверного типа (%s)', $Type); #--------------------------------------------------------------- $Object->{$FunctionID}($IsHasChilds ? new Tag('SPAN', $String) : $String); } } default: # No more... } #------------------------------------------------------------------------- $i++; #------------------------------------------------------------------------- $this->Normalize($Child); } } }
public function GetDiskUsage() { /****************************************************************************/ $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ Array_UnShift($__args__, $this->Settings); #----------------------------------------------------------------------------- $Function = SPrintF('%s_Get_Disk_Usage', $this->SystemID); #----------------------------------------------------------------------------- if (!Function_Exists($Function)) { return new gException('FUNCTION_NOT_SUPPORTED', SPrintF('Функция (%s) не поддерживается API модулем', $Function)); } #----------------------------------------------------------------------------- $Result = Call_User_Func_Array($Function, $__args__); if (Is_Error($Result)) { return ERROR | @Trigger_Error('[HostingServer->GetDiskUsage]: не удалось вызвать целевую функцию'); } #----------------------------------------------------------------------------- return $Result; }
case 'exception': return $BUsages; case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #Debug(SPrintF('[comp/Tasks/HostingCPUUsage]: BUsage = %s',print_r($BUsages,true))); #------------------------------------------------------------------------------- $TUsages[$Server['ID']]['BUsages'] = $BUsages; #------------------------------------------------------------------------------- # достаём за вчера $PeriodStart = $PeriodEnd = Date('Y-m-d', Time() - 24 * 3600); #------------------------------------------------------------------------------- $SUsages = Call_User_Func_Array(array($ClassHostingServer, 'GetCPUUsage'), array($PeriodStart, $PeriodEnd)); #------------------------------------------------------------------------------- switch (ValueOf($SUsages)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return $SUsages; case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- $TUsages[$Server['ID']]['SUsages'] = $SUsages; #Debug(SPrintF('[comp/Tasks/HostingCPUUsage]: SUsage = %s',print_r($SUsages,true))); #-------------------------------------------------------------------------------
#------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- Debug(SPrintF('[comp/Tasks/VPSCreate]: DiskTemplate = (%s)', print_r($DiskTemplate, true))); #------------------------------------------------------------------------------- $VPSOrder['DiskTemplate'] = $DiskTemplate; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $IPsPool = Explode("\n", $VPSServer->Settings['Params']['IPsPool']); #------------------------------------------------------------------------------- $IP = $IPsPool[Rand(0, Count($IPsPool) - 1)]; #------------------------------------------------------------------------------- $Args = array($VPSOrder, $IP, $VPSScheme); #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $IsCreate = Call_User_Func_Array(array($VPSServer, 'Create'), $Args); #------------------------------------------------------------------------------- switch (ValueOf($IsCreate)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return $IsCreate; case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- # вносим адрес в базу $IsUpdate = DB_Update('VPSOrders', array('IP' => $IsCreate['IP']), array('ID' => $VPSOrder['ID'])); if (Is_Error($IsUpdate)) {
#------------------------------------------------------------------------------- $Args[] = $Profile['TemplateID']; #------------------------------------------------------------------------------- $Args[] = $Profile['Attribs']; #------------------------------------------------------------------------------- break; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $IsCreate = Call_User_Func_Array(array($ClassHostingServer, 'Create'), $Args); #------------------------------------------------------------------------------- switch (ValueOf($IsCreate)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return $IsCreate; case 'true': #------------------------------------------------------------------------------- $Comp = Comp_Load('www/API/StatusSet', array('ModeID' => 'HostingOrders', 'StatusID' => 'Active', 'RowsIDs' => $HostingOrder['ID'], 'Comment' => 'Заказ создан на сервере')); #------------------------------------------------------------------------------- switch (ValueOf($Comp)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return ERROR | @Trigger_Error(400);
#--------------------------------------------------------------------------- if (isset($Column['Hidden'])) { continue; } #--------------------------------------------------------------------------- $Td = new Tag('TD'); #--------------------------------------------------------------------------- $Value = isset($Row[$ColumnID]) ? $Row[$ColumnID] : ''; #--------------------------------------------------------------------------- if (StrLen($Comp = $Column['Comp'])) { #------------------------------------------------------------------------- $Args = Table_Super_Replace($Column['Args'], $Replace); #------------------------------------------------------------------------- Array_UnShift($Args, $Comp); #------------------------------------------------------------------------- $Value = Call_User_Func_Array('Comp_Load', $Args); if (Is_Error($Value)) { return ERROR | @Trigger_Error('[comp/Tables/Super]: не удалось отформатировать значение'); } } #--------------------------------------------------------------------------- switch (ValueOf($Value)) { case 'object': $Td->AddChild($Value); break; default: $Td->AddText($Value); } #--------------------------------------------------------------------------- $Attribs = $Column['Attribs']; #---------------------------------------------------------------------------
#------------------------------------------------------------------------------- return new gException('TASK_HANDLER_NOT_APPOINTED', 'Заданию не назначен обработчик'); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #--------------------------------TRANSACTION------------------------------------ if (Is_Error(DB_Transaction($TransactionID = UniqID('TaskExecute')))) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $__SYSLOG =& $GLOBALS['__SYSLOG']; #------------------------------------------------------------------------------- $Index = Count($__SYSLOG); #------------------------------------------------------------------------------- $Result = Call_User_Func_Array('Comp_Load', $Params); #------------------------------------------------------------------------------- $Log = Implode("\n", Array_Slice($__SYSLOG, $Index)); #------------------------------------------------------------------------------- #Debug(SPrintF('[comp/www/Administrator/API/TaskExecute]: Result = %s',print_r($Result,true))); switch (ValueOf($Result)) { case 'error': #------------------------------------------------------------------------------- if (Is_Error(DB_Roll($TransactionID))) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $UTask['Errors'] = $Task['Errors'] + 1; #------------------------------------------------------------------------------- $UTask['Result'] = SPrintF("%s\n\n%s", $Task['Result'], $Log); #-------------------------------------------------------------------------------
return ERROR | @Trigger_Error(400); case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # надо поправить в массиве имя используемой view $DNSmanagerScheme['ViewArea'] = $DNSmanagerOrder['Params']['ViewArea']; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Args = array($DNSmanagerOrder['Login'], $DNSmanagerOrder['Password'], $DNSmanagerScheme); #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $IsCreate = Call_User_Func_Array(array($ClassDNSmanagerServer, 'Create'), $Args); #------------------------------------------------------------------------------- switch (ValueOf($IsCreate)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return $IsCreate; case 'true': #------------------------------------------------------------------------------- $Comp = Comp_Load('www/API/StatusSet', array('ModeID' => 'DNSmanagerOrders', 'StatusID' => 'Active', 'RowsIDs' => $DNSmanagerOrder['ID'], 'Comment' => 'Заказ создан на сервере')); #------------------------------------------------------------------------------- switch (ValueOf($Comp)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return ERROR | @Trigger_Error(400);
function ToArray() { /****************************************************************************/ $__args_types = array('string,array'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $Names = Array_Merge($__args__, array('ListElement')); #----------------------------------------------------------------------------- $AttribsIDs = array(); #----------------------------------------------------------------------------- foreach ($__args__ as $__arg__) { #--------------------------------------------------------------------------- if (Is_Array($__arg__)) { $AttribsIDs = Array_Merge($AttribsIDs, $__arg__); } } #----------------------------------------------------------------------------- $Childs = $this->Childs; #----------------------------------------------------------------------------- if (Count($Childs) > 0) { #--------------------------------------------------------------------------- $j = 1; #--------------------------------------------------------------------------- $Result = array(); #--------------------------------------------------------------------------- foreach ($Childs as $Child) { #------------------------------------------------------------------------- $Name = $Child->Name; #------------------------------------------------------------------------- if (In_Array($Name, $Names)) { $Name = SPrintF('%s%06u', $Name, $j++); } #------------------------------------------------------------------------- $Name = $Name != 'UniqID' ? $Name : UniqID('UniqID'); #------------------------------------------------------------------------- $Result[$Name] = Call_User_Func_Array(array($Child, 'ToArray'), $__args__); #------------------------------------------------------------------------- foreach (Array_Keys($Child->Attribs) as $AttribID) { #----------------------------------------------------------------------- if (In_Array($AttribID, $AttribsIDs)) { #--------------------------------------------------------------------- if (!Is_Array($Result[$Name])) { $Result[$Name] = array(); } #--------------------------------------------------------------------- $Result[$Name][$AttribID] = $Child->Attribs[$AttribID]; } } } } else { #--------------------------------------------------------------------------- $Result = $this->Text != '' ? $this->Text : NULL; #--------------------------------------------------------------------------- $Type = 'string'; #--------------------------------------------------------------------------- if (isset($this->Attribs['type'])) { $Type = $this->Attribs['type']; } #--------------------------------------------------------------------------- @SetType($Result, $Type); } #----------------------------------------------------------------------------- return $Result; }
public function DomainCheck() { /******************************************************************************/ $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /******************************************************************************/ Array_UnShift($__args__, $this->Settings); #------------------------------------------------------------------------------- Debug('[system/classes/DomainServer.class.php]: function DomainCheck'); #------------------------------------------------------------------------------- $Function = SPrintF('%s_Domain_Check', $this->SystemID); #------------------------------------------------------------------------------- if (!Function_Exists($Function)) { return new gException('FUNCTION_NOT_SUPPORTED', SPrintF('Функция (%s) не поддерживается API модулем', $Function)); } #------------------------------------------------------------------------------- $Result = Call_User_Func_Array($Function, $__args__); if (Is_Error($Result)) { return ERROR | @Trigger_Error('[DomainServer->DomainCheck]: не удалось вызвать целевую функцию'); } #------------------------------------------------------------------------------- return $Result; #------------------------------------------------------------------------------- }
#------------------------------------------------------------------------------- $User = DB_Select('Users', '*', array('UNIQ', 'ID' => $ExtraIPOrder['UserID'])); #------------------------------------------------------------------------------- switch (ValueOf($User)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return ERROR | @Trigger_Error(400); case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $IsCreate = Call_User_Func_Array(array($ExtraIPServer, 'AddIP'), $Args); #------------------------------------------------------------------------------- switch (ValueOf($IsCreate)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return $IsCreate; case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $IsUpdate = DB_Update('ExtraIPOrders', array('Login' => $IsCreate['IP']), array('ID' => $ExtraIPOrder['ID'])); if (Is_Error($IsUpdate)) {