$Columns = array('ID', 'DomainName', 'StatusID', 'UserID', '(SELECT `Name` FROM `DomainSchemes` WHERE `DomainSchemes`.`ID` = `SchemeID`) as `SchemeName`'); #------------------------------------------------------------------------------- $DomainOrder = DB_Select('DomainOrdersOwners', $Columns, array('UNIQ', 'ID' => $DomainOrderID)); #------------------------------------------------------------------------------- switch (ValueOf($DomainOrder)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return new gException('DOMAIN_ORDER_NOT_FOUND', 'Заказ домена не найден'); case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- $WhoIs = WhoIs_Check($DomainOrder['DomainName'], $DomainOrder['SchemeName']); #------------------------------------------------------------------------------- switch (ValueOf($WhoIs)) { case 'error': #------------------------------------------------------------------------------- # JBS-1150 - сохраняем информацию о домене и ошибке в кэше, при повторе - тупо меняем дату обновления данных whois $CacheID = Md5(SPrintF('WhoIs-error-%s.%s', $DomainOrder['DomainName'], $DomainOrder['SchemeName'])); #------------------------------------------------------------------------------- $IsCheck = CacheManager::get($CacheID); #------------------------------------------------------------------------------- if ($IsCheck) { #------------------------------------------------------------------------------- $IsUpdate = DB_Update('DomainOrders', array('UpdateDate' => Time()), array('ID' => $DomainOrder['ID'])); if (Is_Error($IsUpdate)) { return ERROR | @Trigger_Error(500); }
#------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Input', array('name' => 'DomainTypeID', 'type' => 'hidden', 'value' => 'Nothing')); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Form->AddChild($Comp); #------------------------------------------------------------------------------- $Table[] = new Tag('TD', array('colspan' => 2, 'class' => 'Standard', 'style' => 'border:1px solid #F07D00;'), SPrintF('Доменная зона вашего имени [%s] не поддерживается нашей организацией, домен просто будет связан с заказом хостинга', $Domain)); #------------------------------------------------------------------------------- break; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- case 'array': #------------------------------------------------------------------------------- $IsCheck = WhoIs_Check($DomainName = $Parse['DomainName'], $DomainZone = $Parse['DomainZone']); #------------------------------------------------------------------------------- switch (ValueOf($IsCheck)) { case 'error': #------------------------------------------------------------------------------- $Comp = Comp_Load('Form/Input', array('name' => 'DomainTypeID', 'type' => 'hidden', 'value' => 'Nothing')); if (Is_Error($Comp)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- $Form->AddChild($Comp); #------------------------------------------------------------------------------- $Table[] = new Tag('TD', array('colspan' => 2, 'class' => 'Standard', 'style' => 'border:1px solid #F07D00;'), SPrintF('Ошибка определения доступности домена [%s], домен просто будет связан с заказом хостинга', $Domain)); #------------------------------------------------------------------------------- break; #-------------------------------------------------------------------------------
return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Config = Config(); #------------------------------------------------------------------------------- $Settings = $Config['Interface']['User']['Orders']['Domain']['DomainWhoIs']; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $CacheID = Md5(SPrintF('WhoIs-%s.%s', $DomainName, $DomainZone)); #------------------------------------------------------------------------------- $IsCheck = CacheManager::get($CacheID); #------------------------------------------------------------------------------- if (!$IsCheck) { #------------------------------------------------------------------------------- $IsCheck = WhoIs_Check($DomainName, $DomainZone, $IsAvalible); #------------------------------------------------------------------------------- CacheManager::add($CacheID, $IsCheck, IntVal($Settings['CacheTime'])); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- switch (ValueOf($IsCheck)) { case 'error': return array('Status' => 'Fail'); case 'exception': return $IsCheck; case 'false': return new gException('DOMAIN_ZONE_NOT_SUPPORTED', 'Доменная зона не поддерживается'); case 'array': #------------------------------------------------------------------------------- $IsCheck['Status'] = 'Borrowed';
if ($Count) { return new gException('DOMAIN_ORDER_EXISTS', 'Домен уже находится в вашем списке заказов'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Count = DB_Count('DomainOrdersOwners', array('Where' => SPrintF("`DomainName` = '%s' AND (SELECT `Name` FROM `DomainSchemes` WHERE `DomainSchemes`.`ID` = `DomainOrdersOwners`.`SchemeID`) = '%s' AND `StatusID` != 'Deleted' AND `StatusID` != 'Waiting'", $DomainName, $DomainScheme['Name']))); if (Is_Error($Count)) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- if ($Count) { return new gException('DOMAIN_ORDER_EXISTS', 'Домен уже находится в списке заказов другого пользователя'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $WhoIs = WhoIs_Check($DomainName, $DomainScheme['Name']); #------------------------------------------------------------------------------- switch (ValueOf($WhoIs)) { case 'exception': return new Tag('WHOIS_ERROR', 'Ошибка получения данных WhoIs', $WhoIs); case 'true': return new gException('DOMAIN_IS_FREE', 'Выбранный Вами домен свободен'); case 'error': # No more... # No more... case 'false': # No more... # No more... case 'array': break; default:
case 'error': return ERROR | @Trigger_Error(500); case 'exception': #------------------------------------------------------------------------------- #return ERROR | @Trigger_Error(400); # к моменту выполнения задания, бывает что юзер уже успел грохнуть заказ... Debug("[Task/DomainTransfer]: Заказа на домен уже не существует, вероятно пользователь его удалил"); #------------------------------------------------------------------------------- return TRUE; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- case 'array': #------------------------------------------------------------------------------- $GLOBALS['TaskReturnInfo'] = array($DomainOrder['Params']['Name'] => array(SPrintF('%s.%s', $DomainOrder['DomainName'], $DomainOrder['DomainZone']))); #------------------------------------------------------------------------------- $WhoIs = WhoIs_Check($DomainOrder['DomainName'], $DomainOrder['DomainZone']); #------------------------------------------------------------------------------- $Registrar = isset($WhoIs['Registrar']) ? $WhoIs['Registrar'] : 'NOT_FOUND'; #------------------------------------------------------------------------------- $Server = DB_Select('Servers', 'Params', array('UNIQ', 'ID' => $DomainOrder['ServerID'])); #------------------------------------------------------------------------------- Debug(SPrintF('[Task/DomainTransfer]: Registrar: %s; PrefixNic: %s', $Registrar, $Server['Params']['PrefixNic'])); #------------------------------------------------------------------------------- $IsInternal = Preg_Match(SPrintF('/%s/', $Server['Params']['PrefixNic']), $Registrar) ? TRUE : FALSE; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Server = new DomainServer(); #------------------------------------------------------------------------------- $IsSelected = $Server->Select((int) $DomainOrder['ServerID']); #------------------------------------------------------------------------------- switch (ValueOf($IsSelected)) {