diff --git a/library/NGNPro/Records/Carriers.php b/library/NGNPro/Records/Carriers.php index 4c5bb85..f8cc4fe 100644 --- a/library/NGNPro/Records/Carriers.php +++ b/library/NGNPro/Records/Carriers.php @@ -1,397 +1,471 @@ array('type'=>'integer', - 'readonly' => true), - 'name' => array('type'=>'string') - ); + var $Fields = array( + 'id' => array( + 'type'=>'integer', + 'readonly' => true + ), + 'name' => array('type'=>'string') + ); - var $sortElements=array( - 'changeDate' => 'Change date', - 'name' => 'Carrier' - ); + var $sortElements = array( + 'changeDate' => 'Change date', + 'name' => 'Carrier' + ); public function __construct($SoapEngine) { $this->filters = array( 'id' => trim($_REQUEST['id_filter']), 'name' => trim($_REQUEST['name_filter']) ); parent::__construct($SoapEngine); } - function showCustomerTextBox () { + function showCustomerTextBox() + { print "Reseller"; print ""; $this->showResellerForm('reseller'); print ""; } - function listRecords() { - + function listRecords() + { $this->showSeachForm(); // Insert credetials $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); // Filter - $filter=array( - 'id' => intval($this->filters['id']), - 'name' => $this->filters['name'], - 'reseller' => intval($this->filters['reseller']) - ); + $filter = array( + 'id' => intval($this->filters['id']), + 'name' => $this->filters['name'], + 'reseller' => intval($this->filters['reseller']) + ); // Range - $range=array('start' => intval($this->next), - 'count' => intval($this->maxrowsperpage) - ); + $range = array( + 'start' => intval($this->next), + 'count' => intval($this->maxrowsperpage) + ); // Order if (!$this->sorting['sortBy']) $this->sorting['sortBy'] = 'changeDate'; if (!$this->sorting['sortOrder']) $this->sorting['sortOrder'] = 'DESC'; - $orderBy = array('attribute' => $this->sorting['sortBy'], - 'direction' => $this->sorting['sortOrder'] - ); + $orderBy = array( + 'attribute' => $this->sorting['sortBy'], + 'direction' => $this->sorting['sortOrder'] + ); // Compose query - $Query=array('filter' => $filter, - 'orderBy' => $orderBy, - 'range' => $range - ); + $Query = array( + 'filter' => $filter, + 'orderBy' => $orderBy, + 'range' => $range + ); // Call function $this->log_action('getCarriers'); - $result = $this->SoapEngine->soapclient->getCarriers($Query); + $result = $this->SoapEngine->soapclient->getCarriers($Query); if ($this->checkLogSoapError($result, true)) { return false; } else { - $this->rows = $result->total; - print " -
$this->rows records found
-

- - "; - - print " - - - - - - - - - - - - "; + print <<< END +
$this->rows records found
+

+

IdOwnerCarrierNameGatewaysChange dateActions
+ + + + + + + + + + + +END; if (!$this->next) $this->next=0; - if ($this->rows > $this->maxrowsperpage) { + if ($this->rows > $this->maxrowsperpage) { $maxrows = $this->maxrowsperpage + $this->next; if ($maxrows > $this->rows) $maxrows = $this->maxrowsperpage; } else { - $maxrows=$this->rows; + $maxrows = $this->rows; } $i=0; if ($this->rows) { - while ($i < $maxrows) { + while ($i < $maxrows) { if (!$result->carriers[$i]) break; $carrier = $result->carriers[$i]; - $index=$this->next+$i+1; + $base_url_data = array( + 'service' => $this->SoapEngine->service, + 'id_filter' => $carrier->id + ); + + $delete_url_data = array_merge( + $base_url_data, + array( + 'action' => 'Delete' + ) + ); + + $_url_data = array_merge( + $base_url_data, + array( + 'reseller_filter' => $carrier->reseller + ) + ); + + $customer_url_data = array( + 'service' => sprintf('customers@%s', $this->SoapEngine->service), + 'customer_filter' => $carrier->reseller + ); - $_delete_url = $this->url.sprintf("&service=%s&action=Delete&id_filter=%s", - urlencode($this->SoapEngine->service), - urlencode($carrier->id) + $gateway_url_data = array( + 'service' => sprintf('pstn_gateways@%s', $this->SoapEngine->service), + 'carrier_id_filter' => $carrier->id, + 'reseller_filter' => $carrier->reseller ); + $index = $this->next + $i + 1; + if ($_REQUEST['action'] == 'Delete' && $_REQUEST['id_filter'] == $carrier->id) { - $_delete_url .= "&confirm=1"; + $delete_url_data['confirm'] = 1; $actionText = "Confirm"; } else { $actionText = "Delete"; } - $_url = $this->url.sprintf("&service=%s&id_filter=%s&reseller_filter=%s", - urlencode($this->SoapEngine->service), - urlencode($carrier->id), - urlencode($carrier->reseller) + $_delete_url = sprintf( + "%s&%s", + $this->url, + http_build_query($delete_url_data) ); - $_customer_url = $this->url.sprintf("&service=customers@%s&customer_filter=%s", - urlencode($this->SoapEngine->customer_engine), - urlencode($carrier->reseller) + $_url = sprintf( + "%s&%s", + $this->url, + http_build_query($_url_data) ); - $_gateway_url = $this->url.sprintf("&service=pstn_gateways@%s&carrier_id_filter=%d&reseller_filter=%s", - urlencode($this->SoapEngine->soapEngine), - urlencode($carrier->id), - urlencode($carrier->reseller) + $_customer_url = sprintf( + "%s&%s", + $this->url, + http_build_query($customer_url_data) ); - printf(" - - - - - - - - - ", - $index, - $_customer_url, - $carrier->reseller, - $_url, - $carrier->id, - $carrier->name, - $_gateway_url, - $carrier->changeDate, - $_delete_url, - $actionText + $_gateway_url = sprintf( + "%s&%s", + $this->url, + http_build_query($gateway_url_data) ); - printf(" - - "); - $i++; + printf( + " + + + + + + + + + + ", + $index, + $_customer_url, + $carrier->reseller, + $_url, + $carrier->id, + $carrier->name, + $_gateway_url, + $carrier->changeDate, + $_delete_url, + $actionText + ); + print ""; + $i++; } - } print "
IdOwnerCarrierNameGatewaysChange dateActions
%s%s%s%sGateways%s%s
%s%s%s%sGateways%s%s
"; if ($this->rows == 1) { $this->showRecord($carrier); } else { $this->showPagination($maxrows); } return true; } } - function showAddForm() { + function showAddForm() + { //if ($this->selectionActive) return; - printf ("

",$_SERVER['PHP_SELF']); - print " -
- "; - - print " - - "; - print "
"; + printf("", $_SERVER['PHP_SELF']); + print <<< END +
+ +
+ +END; $this->showCustomerTextBox(); - printf ("
Name
"); + print "
Name
"; $this->printHiddenFormElements(); print "
"; } - function addRecord($dictionary=array()) { + function addRecord($dictionary = array()) + { if ($dictionary['name']) { - $name=$dictionary['name']; + $name = $dictionary['name']; } else { $name = trim($_REQUEST['name']); } - list($customer,$reseller)=$this->customerFromLogin($dictionary); + list($customer, $reseller)=$this->customerFromLogin($dictionary); - $structure=array('name' => $name, + $structure = array('name' => $name, 'reseller' => intval($reseller) ); if (!strlen($name)) { - printf ("

Error: Missing name. "); + printf("

Error: Missing name. "); return false; } - $function=array('commit' => array('name' => 'addCarrier', - 'parameters' => array($structure), - 'logs' => array('success' => sprintf('Carrier %s has been added',$name))) - ); + $function = array( + 'commit' => array( + 'name' => 'addCarrier', + 'parameters' => array($structure), + 'logs' => array( + 'success' => sprintf('Carrier %s has been added', $name) + ) + ) + ); - return $this->SoapEngine->execute($function,$this->html); + return $this->SoapEngine->execute($function, $this->html); } - function deleteRecord($dictionary=array()) { + function deleteRecord($dictionary = array()) + { if (!$dictionary['confirm'] && !$_REQUEST['confirm']) { print "

Please press on Confirm to confirm the delete. "; return true; } if ($dictionary['id']) { - $id = $dictionary['id']; + $id = $dictionary['id']; } else { - $id = trim($this->filters['id']); + $id = trim($this->filters['id']); } if (!strlen($id)) { print "

Error: missing carrier id "; return false; } - $function=array('commit' => array('name' => 'deleteCarrier', - 'parameters' => array(intval($id)), - 'logs' => array('success' => sprintf('Carrier %d has been deleted',$id))) - ); + $function = array( + 'commit' => array( + 'name' => 'deleteCarrier', + 'parameters' => array(intval($id)), + 'logs' => array( + 'success' => sprintf('Carrier %d has been deleted', $id) + ) + ) + ); unset($this->filters); - return $this->SoapEngine->execute($function,$this->html); + return $this->SoapEngine->execute($function, $this->html); } - function showSeachFormCustom() { - printf ("

Carrier
",$this->filters['id']); - printf ("
Name
",$this->filters['name']); + function showSeachFormCustom() + { + printf( + " +
+ Carrier + +
+ ", + $this->filters['id'] + ); + printf( + " +
+ Name + +
+ ", + $this->filters['name'] + ); } - function showCustomerForm($name='customer_filter') { + function showCustomerForm($name = 'customer_filter') + { } - function showTextBeforeCustomerSelection() { + function showTextBeforeCustomerSelection() + { print "Owner"; } - function getRecord($id) { + function getRecord($id) + { // Insert credetials $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); // Filter - $filter=array('id' => intval($id)); + $filter = array('id' => intval($id)); // Range - $range=array('start' => 0, - 'count' => 1 - ); + $range = array( + 'start' => 0, + 'count' => 1 + ); // Order if (!$this->sorting['sortBy']) $this->sorting['sortBy'] = 'name'; if (!$this->sorting['sortOrder']) $this->sorting['sortOrder'] = 'ASC'; - $orderBy = array('attribute' => $this->sorting['sortBy'], - 'direction' => $this->sorting['sortOrder'] - ); + $orderBy = array( + 'attribute' => $this->sorting['sortBy'], + 'direction' => $this->sorting['sortOrder'] + ); // Compose query - $Query=array('filter' => $filter, - 'orderBy' => $orderBy, - 'range' => $range - ); + $Query = array( + 'filter' => $filter, + 'orderBy' => $orderBy, + 'range' => $range + ); // Call function $this->log_action('getCarriers'); $result = $this->SoapEngine->soapclient->getCarriers($Query); if ($this->checkLogSoapError($result, true)) { return false; } else { - if ($result->carriers[0]){ + if ($result->carriers[0]) { return $result->carriers[0]; } else { return false; } } } - function showRecord($carrier) { - + function showRecord($carrier) + { print "

Carrier

"; - - printf ("
",$_SERVER['PHP_SELF']); + printf("", $_SERVER['PHP_SELF']); print ""; foreach (array_keys($this->Fields) as $item) { if ($this->Fields[$item]['name']) { - $item_name=$this->Fields[$item]['name']; + $item_name = $this->Fields[$item]['name']; } else { - $item_name=ucfirst($item); + $item_name = ucfirst($item); } - printf ("
- ", - $item_name + printf( + " +
+ + ", + $item_name ); if ($this->Fields[$item]['readonly']) { - printf ("
%s
", - $item, - $carrier->$item, - $carrier->$item + printf( + "
%s
", + $item, + $carrier->$item, + $carrier->$item ); } else { - printf ("
", - $item, - $carrier->$item + printf( + "
", + $item, + $carrier->$item ); } print "
"; } - printf ("",$carier->id); + printf("", $carrier->id); $this->printFiltersToForm(); $this->printHiddenFormElements(); - print " -
+ print <<< END +
-
- "; - print ""; - +
+ +END; } - function updateRecord () { + function updateRecord() + { //print "

Updating carrier ..."; if (!$_REQUEST['id_filter']) return; if (!$carrier = $this->getRecord($_REQUEST['id_filter'])) { return false; } foreach (array_keys($this->Fields) as $item) { - $var_name=$item.'_form'; + $var_name = $item.'_form'; if ($this->Fields[$item]['type'] == 'integer') { $carrier->$item = intval($_REQUEST[$var_name]); } else { $carrier->$item = trim($_REQUEST[$var_name]); } } - $function=array('commit' => array('name' => 'updateCarrier', - 'parameters' => array($carrier), - 'logs' => array('success' => sprintf('Carrier %d has been updated',$_REQUEST['id_filter']))) - ); + $function = array( + 'commit' => array( + 'name' => 'updateCarrier', + 'parameters' => array($carrier), + 'logs' => array( + 'success' => sprintf('Carrier %d has been updated', $_REQUEST['id_filter']) + ) + ) + ); - $result = $this->SoapEngine->execute($function,$this->html); + $result = $this->SoapEngine->execute($function, $this->html); dprint_r($result); return (bool)$result; } } - diff --git a/library/NGNPro/Records/DnsZones.php b/library/NGNPro/Records/DnsZones.php index 408007d..cf71d88 100644 --- a/library/NGNPro/Records/DnsZones.php +++ b/library/NGNPro/Records/DnsZones.php @@ -1,904 +1,904 @@ array( 'type'=>'integer', 'help' => 'Zone owner' ) ); var $Fields = array( 'customer' => array( 'type' => 'integer', 'help' => 'Zone owner' ), 'serial' => array( 'type' => 'integer', 'help' => 'Serial number', 'readonly' => 1 ), 'email' => array( 'type' => 'string', 'help' => 'Administrator address' ), 'ttl' => array( 'type' => 'integer', 'help' => 'Time to live of SOA record' ), 'minimum' => array( 'type' => 'integer', 'help' => 'Default time to live period' ), 'retry' => array( 'type' => 'integer', 'help' => 'Retry transfer period' ), 'expire' => array( 'type' => 'integer', 'help' => 'Expire period' ), 'info' => array( 'type' => 'string', 'help' => 'Zone description' ) ); public function __construct($SoapEngine) { dprint("init DnsZones"); $this->filters = array( 'name' => trim($_REQUEST['name_filter']), 'info' => trim($_REQUEST['info_filter']) ); parent::__construct($SoapEngine); $this->sortElements = array( 'changeDate' => 'Change date', 'name' => 'Name' ); $this->Fields['nameservers'] = array( 'type'=>'text', 'name'=>'Name servers', 'help'=>'Authoritative name servers' ); } function showAfterEngineSelection() { if ($this->SoapEngine->name_servers) { //printf(" Available name servers: %s", $this->SoapEngine->name_servers); } } function listRecords() { $this->showSeachForm(); // Filter $filter = array( 'name' => $this->filters['name'], 'info' => $this->filters['info'], 'customer' => intval($this->filters['customer']), 'reseller' => intval($this->filters['reseller']) ); // Range $range = array( 'start' => intval($this->next), 'count' => intval($this->maxrowsperpage) ); // Order if (!$this->sorting['sortBy']) $this->sorting['sortBy'] = 'changeDate'; if (!$this->sorting['sortOrder']) $this->sorting['sortOrder'] = 'DESC'; $orderBy = array('attribute' => $this->sorting['sortBy'], 'direction' => $this->sorting['sortOrder'] ); // Compose query $Query = array('filter' => $filter, 'orderBy' => $orderBy, 'range' => $range ); $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); $this->log_action('getZones'); $result = $this->SoapEngine->soapclient->getZones($Query); if ($this->checkLogSoapError($result, true)) { return false; } else { $this->rows = $result->total; if ($this->rows && $_REQUEST['action'] != 'PerformActions' && $_REQUEST['action'] != 'Delete') { $this->showActionsForm(); } print <<< END

$this->rows records found

END; if (!$this->next) $this->next=0; if ($this->rows > $this->maxrowsperpage) { $maxrows = $this->maxrowsperpage + $this->next; if ($maxrows > $this->rows) $maxrows = $this->maxrowsperpage; } else { $maxrows = $this->rows; } $i=0; if ($this->rows) { while ($i < $maxrows) { if (!$result->zones[$i]) break; $zone = $result->zones[$i]; $base_url_data = array( 'service' => $this->SoapEngine->service, 'name_filter' => $zone->name ); $delete_url_data = array_merge( $base_url_data, array( 'action' => 'Delete' ) ); $zone_url_data = $base_url_data; $records_url_data = array( 'service' => sprintf('dns_records@%s', $this->SoapEngine->service), 'zone_filter' => $zone->name ); $customer_url_data = array( - 'service' => sprintf('dns_records@%s', $this->SoapEngine->service), + 'service' => sprintf('customers@%s', $this->SoapEngine->service), 'customer_filter' => $zone->customer ); $index = $this->next + $i + 1; if ($this->adminonly) { $delete_url_data['reseller_filter'] = $zone->reseller; $zone_url_data['reseller_filter'] = $zone->reseller; $records_url_data['reseller_filter'] = $zone->reseller; } if ($_REQUEST['action'] == 'Delete' && $_REQUEST['name_filter'] == $zone->name) { $delete_url_data['confirm'] = 1; $actionText = "Confirm"; } else { $actionText = "Delete"; } $_url = sprintf( "%s&%s", $this->url, http_build_query($delete_url_data) ); $zone_url = sprintf( "%s&%s", $this->url, http_build_query($zone_url_data) ); $records_url = sprintf( "%s&%s", $this->url, http_build_query($records_url_data) ); $customer_url = sprintf( "%s&%s", $this->url, http_build_query($customer_url_data) ); sort($zone->nameservers); $ns_text = ''; foreach ($zone->nameservers as $ns) { $ns_text.= $ns." "; } printf( " ", $index, $customer_url, $zone->customer, $zone->reseller, $zone_url, $zone->name, $zone->email, $zone->info, $records_url, $zone->serial, $zone->ttl, $zone->changeDate, $_url, $actionText ); print ""; $i++; } } print "
Id Owner Zone Administrator Info Serial Default TTL Change date Actions
%s %s.%s %s %s %s Records %s %s %s %s
"; if ($this->rows == 1) { $this->showRecord($zone); } else { $this->showPagination($maxrows); } return true; } } function deleteRecord($dictionary = array()) { if (!$dictionary['confirm'] && !$_REQUEST['confirm']) { print "

Please press on Confirm to confirm the delete. "; return true; } if (!strlen($this->filters['name'])) { print "

Error: missing Dns zone name "; return false; } $name = $this->filters['name']; $function = array( 'commit' => array( 'name' => 'deleteZone', 'parameters' => array($name), 'logs' => array( 'success' => sprintf('Dns zone %s has been deleted', $this->filters['name']) ) ) ); unset($this->filters); $result = $this->SoapEngine->execute($function, $this->html); if ($this->checkLogSoapError($result, true)) { return false; } else { return true; } } function showAddForm() { if ($this->selectionActive) return; printf( "

", $_SERVER['PHP_SELF'] ); print "
"; print ""; $this->showCustomerTextBox(); printf( "
DNS zone
", $_REQUEST['name'] ); $this->printHiddenFormElements(); print <<< END Import DNS zones from file:
Select file Change Remove
END; print "
"; } function addRecord($dictionary = array()) { $name = trim($_REQUEST['name']); $info = trim($_REQUEST['info']); $name_servers = trim($_REQUEST['name_servers']); if ($_FILES['import_file']['tmp_name']) { $content = fread(fopen($_FILES['import_file']['tmp_name'], "r"), $_FILES['import_file']['size']); //print_r($content); if (!$imported_data = json_decode($content, true)) { printf("

Error: reading imported data. "); return false; } //print_r($imported_data); if (!in_array('dns_zones', array_keys($imported_data))) { printf("

Error: Missing zones in imported data. "); return false; } if (!in_array('dns_records', array_keys($imported_data))) { return false; printf("

Error: Missing records in imported data. "); } foreach ($imported_data['customers'] as $customer) { // Insert credetials $this->SoapEngine->soapclientCustomers->addHeader($this->SoapEngine->SoapAuth); $customer['credit'] = floatval($customer['credit']); $customer['balance'] = floatval($customer['balance']); // Call function $this->log_action('addAccount'); $result = $this->SoapEngine->soapclientCustomers->addAccount($customer); if ((new PEAR)->isError($result)) { $error_msg = $result->getMessage(); $error_fault= $result->getFault(); $error_code = $result->getCode(); if ($error_fault->detail->exception->errorcode == 5001) { $result = $this->SoapEngine->soapclientCustomers->updateCustomer($customer); if (!$this->checkLogSoapError($result, true, true)) { printf('

Customer %s has been updated', $customer['id']); } } else { $log = sprintf( "SOAP request error from %s: %s (%s): %s", $this->SoapEngine->SOAPurl, $error_msg, $error_fault->detail->exception->errorcode, $error_fault->detail->exception->errorstring ); syslog(LOG_NOTICE, $log); printf("

Error: $log"); } } else { printf('

Customer %s has been added', $customer['id']); } } $name_servers = array(); foreach ($imported_data['dns_zones'] as $zone) { flush(); $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); $this->log_action('addZone'); $result = $this->SoapEngine->soapclient->addZone($zone); $name_servers[$zone['name']] = $zone['nameservers']; if ((new PEAR)->isError($result)) { $error_msg = $result->getMessage(); $error_fault= $result->getFault(); $error_code = $result->getCode(); if ($error_fault->detail->exception->errorcode == 7001) { $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); $this->log_action('updateZone'); $result = $this->SoapEngine->soapclient->updateZone($zone); if (!$this->checkLogSoapError($result, true, true)) { printf('

Zone %s has been updated', $zone['name']); } } else { $log = sprintf( "SOAP request error from %s: %s (%s): %s", $this->SoapEngine->SOAPurl, $error_msg, $error_fault->detail->exception->errorcode, $error_fault->detail->exception->errorstring ); syslog(LOG_NOTICE, $log); printf("

Error: $log"); } } else { printf('

Zone %s has been added', $zone['name']); } } $added = 0; $updated = 0; foreach ($imported_data['dns_records'] as $record) { flush(); if (in_array($record['name'], $name_servers[$record['zone']]) && $record['type'] == "A") { continue; } $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); $this->log_action('addRecord'); $result = $this->SoapEngine->soapclient->addRecord($record); if ((new PEAR)->isError($result)) { $error_msg = $result->getMessage(); $error_fault= $result->getFault(); $error_code = $result->getCode(); if ($error_fault->detail->exception->errorcode == 7003) { $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); $this->log_action('updateRecord'); $result = $this->SoapEngine->soapclient->updateRecord($record); if (!$this->checkLogSoapError($result, true, true)) { $added += 1; } } else { $log = sprintf( "SOAP request error from %s: %s (%s): %s", $this->SoapEngine->SOAPurl, $error_msg, $error_fault->detail->exception->errorcode, $error_fault->detail->exception->errorstring ); syslog(LOG_NOTICE, $log); printf("

Error: $log"); } } else { $added += 1; } } printf('

%d DNS records added and %d updated', $added, $updated); return true; } else { if (isset($this->SoapEngine->allow_none_local_dns_zones)) { $allow_none_local_dns_zones = $this->SoapEngine->allow_none_local_dns_zones; } else { $allow_none_local_dns_zones = false; } if (!strlen($name)) { printf("

Error: Missing zone name.

"); return false; } $lookup1 = dns_get_record($name); //dprint_r($lookup1); $ns_array1=explode(" ", trim($this->SoapEngine->name_servers)); if (empty($lookup1) || $allow_none_local_dns_zones) { $valid = 1; } else { $valid = 0; foreach ($lookup1 as $lrecord) { if ($lrecord['type'] == 'NS') { if (in_array($lrecord['target'], $ns_array1)) { $valid = 1 ; } } } } if ($valid==0) { printf("

Error: DNS zone already exists on other server. Please contact our support if you plan to transfer this DNS zone to this system.

"); return false; } if (is_numeric($prefix)) { printf("

Error: Numeric zone names are not allowed. Use ENUM port instead. "); return false; } list($customer, $reseller)=$this->customerFromLogin($dictionary); if (!trim($_REQUEST['ttl'])) { $ttl=3600; } else { $ttl = intval(trim($_REQUEST['ttl'])); } if ($name_servers) { $ns_array = explode(" ", trim($name_servers)); } elseif ($this->login_credentials['login_type'] != 'admin' && $this->SoapEngine->name_servers) { $ns_array = explode(" ", trim($this->SoapEngine->name_servers)); } else { $ns_array = array(); } $zone = array( 'name' => $name, 'ttl' => $ttl, 'info' => $info, 'customer' => intval($customer), 'reseller' => intval($reseller), 'nameservers' => $ns_array ); $function = array('commit' => array('name' => 'addZone', 'parameters' => array($zone), 'logs' => array('success' => sprintf('DNS zone %s has been added', $name))) ); $result = $this->SoapEngine->execute($function, $this->html); dprint_r($result); if ($this->checkLogSoapError($result, true)) { return false; } else { return true; } } } function showSeachFormCustom() { printf( "

DNS zone
", $this->filters['name'] ); printf( "
Info
", $this->filters['info'] ); } function showRecord($zone) { print <<< END
END; printf("", $_SERVER['PHP_SELF']); print <<< END "; END; printf("", $zone->name); if ($this->adminonly) { foreach (array_keys($this->FieldsAdminOnly) as $item) { if ($item == 'nameservers') { foreach ($zone->$item as $_item) { $nameservers.=$_item."\n"; } $item_value = $nameservers; } else { $item_value = $zone->$item; } if ($this->FieldsAdminOnly[$item]['name']) { $item_name = $this->FieldsAdminOnly[$item]['name']; } else { $item_name = ucfirst($item); } if ($this->FieldsAdminOnly[$item]['type'] == 'text') { printf( " ", $item_name, $item, $item_value, $this->FieldsAdminOnly[$item]['help'] ); } else { printf( " ", $item_name, $item, $item_value, $this->FieldsAdminOnly[$item]['help'] ); } } } foreach (array_keys($this->Fields) as $item) { if ($this->Fields[$item]['name']) { $item_name = $this->Fields[$item]['name']; } else { $item_name = ucfirst($item); } if ($item == 'nameservers') { foreach ($zone->$item as $_item) { $nameservers.=$_item."\n"; } $item_value = $nameservers; } else { $item_value = $zone->$item; } if ($this->Fields[$item]['type'] == 'text') { printf( " ", $item_name, $item, $item_value, $this->Fields[$item]['help'] ); } elseif ($this->Fields[$item]['readonly']) { printf( " ", $item_name, $item_value, $this->Fields[$item]['help'] ); } else { printf( " ", $item_name, $item, $item_value, $this->Fields[$item]['help'] ); } } printf("", $zone->id->tld); printf("", $zone->id->prefix); $this->printFiltersToForm(); $this->printHiddenFormElements(); print ""; print "
DNS zone%s
%s %s
%s %s
%s %s
%s %s %s
%s %s
"; } function updateRecord() { if (!$_REQUEST['name_filter']) return; //dprintf("

Updating zone %s...", $_REQUEST['name_filter']); $filter = array('name' => $_REQUEST['name_filter']); if (!$zone = $this->getRecord($filter)) { return false; } $zone_old = $zone; foreach (array_keys($this->Fields) as $item) { $var_name = $item.'_form'; //printf("
%s=%s", $var_name, $_REQUEST[$var_name]); if ($this->Fields[$item]['type'] == 'integer') { $zone->$item = intval($_REQUEST[$var_name]); } elseif ($item == 'nameservers') { $_txt = trim($_REQUEST[$var_name]); if (!strlen($_txt)) { unset($zone->$item); } else { $_nameservers = array(); $_lines = explode("\n", $_txt); foreach ($_lines as $_line) { $_ns = trim($_line); $_nameservers[] = $_ns; } $zone->$item = $_nameservers; } } else { $zone->$item = trim($_REQUEST[$var_name]); } } if ($this->adminonly) { foreach (array_keys($this->FieldsAdminOnly) as $item) { $var_name = $item.'_form'; if ($this->FieldsAdminOnly[$item]['type'] == 'integer') { $zone->$item = intval($_REQUEST[$var_name]); } else { $zone->$item = trim($_REQUEST[$var_name]); } } } $function = array('commit' => array('name' => 'updateZone', 'parameters' => array($zone), 'logs' => array('success' => sprintf('DNS zone %s has been updated', $filter['name']))) ); $result = $this->SoapEngine->execute($function, $this->html); dprint_r($result); if ($this->checkLogSoapError($result, true)) { return false; } else { return true; } } function getRecord($zone) { // Filter if (!$zone['name']) { print "Error in getRecord(): Missing zone name"; return false; } $filter = array('name' => $zone['name']); // Range $range = array('start' => 0, 'count' => 1 ); // Order $orderBy = array('attribute' => 'changeDate', 'direction' => 'DESC' ); // Compose query $Query = array('filter' => $filter, 'orderBy' => $orderBy, 'range' => $range ); $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); $this->log_action('getZones'); $result = $this->SoapEngine->soapclient->getZones($Query); if ($this->checkLogSoapError($result, true)) { return false; } else { if ($result->zones[0]) { return $result->zones[0]; } else { return false; } } } function getRecordKeys() { // Filter $filter = array( 'name' => $this->filters['name'], 'info' => $this->filters['info'], 'customer' => intval($this->filters['customer']), 'reseller' => intval($this->filters['reseller']) ); // Range $range = array( 'start' => 0, 'count' => 200 ); // Order if (!$this->sorting['sortBy']) $this->sorting['sortBy'] = 'changeDate'; if (!$this->sorting['sortOrder']) $this->sorting['sortOrder'] = 'DESC'; $orderBy = array( 'attribute' => $this->sorting['sortBy'], 'direction' => $this->sorting['sortOrder'] ); // Compose query $Query = array( 'filter' => $filter, 'orderBy' => $orderBy, 'range' => $range ); // Insert credetials $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); $this->log_action('getZones'); // Call function $result = $this->SoapEngine->soapclient->getZones($Query); if ($this->checkLogSoapError($result, true)) { return false; } else { foreach ($result->zones as $zone) { $this->selectionKeys[] = array('name' => $zone->name); } return true; } } function hide_html() { if ($_REQUEST['action'] == 'PerformActions' && $_REQUEST['sub_action'] == 'export') { return true; } else { return false; } } }