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