\n";
+
+ $this->nombre_db_txt = $paramsBD['database_name'];
+
+
$remoto->sites_database_add($fields['client_id'], $paramsBD);
// get site data para usarlo en la creación de la cuenta ftp, otra forma de cargar una tupla dandole un id
@@ -136,9 +154,61 @@ class page_action extends tform_actions {
'dl_bandwidth' => '-1',//$template['dl_bandwidth'],
'active' => 'y',
);
+ $this->usuario_ftp_txt = $ftp_params['username'];
+ $this->pass_ftp_txt = $ftp_params['password'];
//print "
';
+
+
+ $html_resultado = ' BBDD
+ Usuario Base de Datos: '. $this->usuario_db_txt .'
+ Nombre Base de Datos: ' . $this->nombre_db_txt .'
+ Clave Base de Datos: ' . $this->pass_db_txt . '
El dominio es: " . $this->dominio;
- $camDominio = $app->db->queryOneRecord('SELECT domain_id, domain FROM domain WHERE domain = "'.$this->dominio.'"');
-
+ //$camDominio = $app->db->queryOneRecord('SELECT domain_id, domain FROM domain WHERE domain = "'.$this->dominio.'"');
+ $camDominio = $app->db->queryOneRecord('SELECT origin FROM dns_soa WHERE origin LIKE "'.$this->dominio.'%"');
$camDnsRR = $app->db->queryOneRecord('SELECT server_id, zone FROM dns_rr WHERE name LIKE "'.$this->dominio.'%"');
$camServIP = $app->db->queryOneRecord('SELECT ip_address FROM server_ip WHERE server_id = "'.$camDnsRR['server_id'].'"');
@@ -207,7 +277,7 @@ class page_action extends tform_actions {
//print_r($camDnsRR);
//Si el dominio NO existe mostramos mensaje de error y salimos de la ejecución
- if(!$camDominio['domain']){
+ if(!$camDominio['origin']){
$this->subdom_error = true;
$app->tform->errorMessage = $app->tform->wordbook['error_no_existe_dominio_padre'];
$this->onError();
@@ -239,6 +309,9 @@ class page_action extends tform_actions {
echo '
Se ha dado de alta Web y Subdominio, '.$this->subdominio.', ¡Correctamente!
';
+ /*echo '
+ Usuario de la Base de Datos: '. $this->usuario_db_txt .', Contraseña: ' . $this->pass_db_txt . '
';
+ */
//$this->onShow();
}
@@ -339,71 +412,46 @@ class page_action extends tform_actions {
function tieneIPs(){
global $app, $conf;
- $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
- //Llamada a la tabla server_ip para recuperar la ip4 e ip6
- $dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$app->functions->intval($fields['client_id']. " AND ip_type='IPv4'"));
-
- $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$fields['client_id']." AND ip_type='IPv6'");
-
- /*print "
Campos ";print_r($fields);print "
\n";
- print "
IP4 ";print_r($dns_ip_servidor);print "
\n";
+ //$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
+
+ //Llamada a la tabla server_ip para recuperar la ip4 e ip6
+ $dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE ip_type='IPv4'");
+ $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE ip_type='IPv6'");
+
+ /*print "
IP4 ";print_r($dns_ip_servidor);print "
\n";
print "
IP6 ";print_r($dns_ip_servidor_ipv6);print "
\n";*/
if(!$dns_ip_servidor['ip_address'] || !$dns_ip_servidor_ipv6['ip_address']){
- $app->tform->errorMessage = $app->tform->wordbook['error_no_ip'];
- $this->onError();
- //$this->no_ip = true;
- //print 'dentro if';
- return true;
+ $app->tform->errorMessage = $app->tform->wordbook['error_no_ip'];
+ $this->onError();
+ return true;
}
return false;
}
- function onSubmit() {
+ //Comprueba que no exista el dominio y que no tenga sitio web, puede tener sitio web y no tener dns.
+ function existeDominio($campos){
global $app, $conf;
- //Carga de campos del formulario.
- $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
- //Creo la clase remote para usar las librerias
- $remote = new remote_actions;
-
- //$this->tieneIPs();
-
- if($this->tieneIPs()){
- return;
- }
-
- if($this->comprobarSubDominios($fields['domain'])){
- //print 'despues de comprobar que es un subD ' . $fields['domain'];
- $this->crearSubDominio($remote, $fields['domain']);
- if(!$this->subdom_error){
- $this->crearSitioWebSubdominio($remote);
- }
- $this->crearBaseDatosFtp($remote);
- return;
- } //else if(!$this->subdom_error){
- //$this->crearBaseDatosFtp($remote);
- // check for domain unique name
- if($app->db->queryOneRecord('SELECT domain_id FROM domain WHERE domain = "'.$fields['domain'].'"')) {
+ if($app->db->queryOneRecord('SELECT * FROM dns_soa WHERE origin LIKE "'.$campos['domain'].'%"')) {
$app->tform->errorMessage = $app->tform->wordbook['domain_error_unique'];
}
+ if($app->db->queryOneRecord('SELECT domain_id, domain FROM web_domain WHERE domain = "'.$campos['domain'].'"')) {
+ $app->tform->errorMessage = $app->tform->wordbook['error_sitio_web_existe'];
+ }
+
if($app->tform->errorMessage)
{
$this->onError();
- return;
+ return true;
}
- //Esta variable nos llega por jQuery desde el htm para el control de errores en la vista.
- if($_POST['create'] != 1)
- {
- $app->tform->errorMessage = 'DUMMY';
- $app->tpl->setVar($this->dataRecord);
- $this->onShow();
- return;
- }
+ }
- // Domain OK, continue
- //$remote = new remote_actions;
+ function crearSitioDns($remoto){
+ global $app, $conf;
+ //Carga de campos del formulario.
+ $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
// client prefix and group id
$res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_id']));
@@ -411,7 +459,7 @@ class page_action extends tform_actions {
$client_prefix = 'c'.$fields['client_id'];
// add domain. Llamada que inserta el dominio en la tabla domain
- $domain_id = $remote->insert_query('../client/form/domain.tform.php', $fields['client_id'], array('domain' => $fields['domain']));
+ //$domain_id = $remote->insert_query('../client/form/domain.tform.php', $fields['client_id'], array('domain' => $fields['domain']));
//$this->crearBaseDatosFtp($remote);
//Carga del formulario dns_soa para guardar en base de datos
@@ -421,25 +469,6 @@ class page_action extends tform_actions {
// Carga y seleccion de dns_template, si no esta creado se informa de que tiene que crearse
$template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE visible = 'Y' AND name = 'webdns'"); /*'open6hosting'");*/
- /*if($template_record) {
- //echo '
Teplate '.$template_record.', ';
- $app->tform->errorMessage = 'Error hay que crear un template llamado webdns';
- $this->onError();
- return;
- } else {
- $app->tform->errorMessage = 'Error hay que crear un template llamado webdnsssssss';
- $this->onError();
- return;
- }*/
-
- /*if($app->tform->errorMessage)
- {
- $this->onError();
- return;
- }*/
-
- //$template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE visible = 'Y' AND name = 'webdns'"); /*'open6hosting'");*/
-
//Llamada a la tabla server_ip para recuperar la ip4 e ip6
$dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$app->functions->intval($fields['client_id']. " AND ip_type='IPv4'"));
@@ -507,26 +536,7 @@ class page_action extends tform_actions {
}
} // end foreach
-
-
- $dns_error = '';
- /*if($vars['origin'] == '') $dns_error .= $app->lng('error_origin_empty').' ';
- if($vars['ns'] == '') $dns_error .= $app->lng('error_ns_empty').' ';
- if($vars['mbox'] == '') $dns_error .= $app->lng('error_mbox_empty').' ';
- if($vars['refresh'] == '') $dns_error .= $app->lng('error_refresh_empty').' ';
- if($vars['retry'] == '') $dns_error .= $app->lng('error_retry_empty').' ';
- if($vars['expire'] == '') $dns_error .= $app->lng('error_expire_empty').' ';
- if($vars['minimum'] == '') $dns_error .= $app->lng('error_minimum_empty').' ';
- if($vars['ttl'] == '') $dns_error .= $app->lng('error_ttl_empty').' ';
-
- // check for dns errors
- if($dns_error)
- {
- $app->tform->errorMessage = $dns_error;
- $this->onError();
- return;
- }*/
//Llamada a la tabla client para recuperar el client_id y su default_dnsserver
$dns_servidor = $app->db->queryOneRecord("SELECT client_id, default_dnsserver, default_webserver FROM client WHERE client_id = ".$app->functions->intval($fields['client_id']));
@@ -654,41 +664,65 @@ class page_action extends tform_actions {
//print 'DNS IPV6 ' . $dns_ip_servidor_ipv6['ip_address'];
//El último parámetro es para lanzar un evento que llama a la función on_after_insert que prepara los campos document_root, system_user y system_group
- $site_id = $remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert');
- print 'Sitio id '. $site_id;
+ $site_id = $remoto->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $paramsite, 'sites:web_vhost_domain:on_after_insert');
+ //print 'Sitio id '. $site_id;
//$this->crearBaseDatosFtp($remote);
// get site data
- $app->uses('remoting_lib');
+ /*$app->uses('remoting_lib');
$app->remoting_lib->loadFormDef('../sites/form/web_vhost_domain.tform.php');
- $site_data = $app->remoting_lib->getDataRecord($site_id);
+ $site_data = $app->remoting_lib->getDataRecord($site_id);*/
+
+ }
+
+ function onSubmit() {
+ global $app, $conf;
+ //Carga de campos del formulario.
+ $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
+
+ //Creo la clase remote para usar las librerias
+ $remote = new remote_actions;
- //IMPORTANTE, es necesario cargar nuestro formulario para poder ejecutar la función que crea
- //la base de datos y el ftp ya que hay datos que tomamos de el antes de ejecutarla.
- $app->tform->loadFormDef('form/new_service_webdns.tform.php');
- $this->crearBaseDatosFtp($remote);
- //$remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $paramsite);
-
- //Si todo va bien, el resultado
- echo '
- Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!
-
';
- //$this->onShow();
+ if($this->tieneIPs()){
+ return;
+ }
+
+ if($this->existeDominio($fields)){
+ return;
+ }
+
+ //Esta variable nos llega por jQuery desde el htm para el control de errores en la vista.
+ if($_POST['create'] != 1)
+ {
+ $app->tform->errorMessage = 'DUMMY';
+ $app->tpl->setVar($this->dataRecord);
+ $this->onShow();
+ return;
+ }
- /*echo '
-
-
-
-
Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!
-
-
-
-
';*/
- //}
-
- //parent::onSubmit();
-
- //}//FIN IF
- //$this->crearBaseDatosFtp($remote);
+ if($this->comprobarSubDominios($fields['domain'])){
+
+ $this->crearSubDominio($remote, $fields['domain']);
+ if(!$this->subdom_error){
+ $this->crearSitioWebSubdominio($remote);
+ $this->crearBaseDatosFtp($remote);
+ }
+
+ } else {
+
+ $this->crearSitioDns($remote);
+
+ //Si todo va bien, el resultado de la web y dns
+ echo '
+ Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!
+
';
+
+ //IMPORTANTE, es necesario cargar nuestro formulario para poder ejecutar la función que crea
+ //la base de datos y el ftp ya que hay datos que tomamos de el antes de ejecutarla.
+ $app->tform->loadFormDef('form/new_service_webdns.tform.php');
+ $this->crearBaseDatosFtp($remote);
+ }
+
+
}
}
@@ -729,3 +763,85 @@ class remote_actions extends remoting {
$page = new page_action;
$page->onLoad();
+
+
+?>
+
diff --git a/new_service_webdnsOLD.php b/new_service_webdnsOLD.php
deleted file mode 100755
index 5e3960f..0000000
--- a/new_service_webdnsOLD.php
+++ /dev/null
@@ -1,361 +0,0 @@
-
-SQL y expresiones regulares por Pablo Sarria Pérez, Open6Hosting
-
-2017, All rights reserved.
-*/
-
-
-/******************************************
-* Begin Form configuration
-******************************************/
-//Solo se puede tener una variable para cargar los distintos formularios
-$tform_def_file = "form/new_service_webdns.tform.php";
-
-/******************************************
-* End Form configuration
-******************************************/
-
-require_once '../../lib/config.inc.php';
-require_once '../../lib/app.inc.php';
-
-//* Check permissions for module
-$app->auth->check_module_permissions('webdns');
-
-// Check the module permissions and redirect if not allowed.
-/*if(!stristr($_SESSION['s']['user']['modules'],'customdns')) {
- header('Location: ../index.php');
- die;
-}*/
-
-// Loading classes
-$app->uses('tpl,tform,tform_actions,remoting,tools_sites,remoting_lib');
-$app->load('tform_actions');
-
-class page_action extends tform_actions {
- //Con esta funcion se parsean y preparan los campos del formulario, new_service_dns.tform.php
- //justo después de la carga de este.
- /*function onShowEnd() {
- global $app, $conf;*/
- //FORMULARIO
- //Con esta llamada a al clase $app cargo todos los campos definidos en el formulario,
- //en este caso, los definidos en el array $form["tabs"]['webdns'];
- //$fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
-
- // select first template as default
- /*if($fields['dns_template_id'] == 0)
- {
- $first_template = $app->db->queryOneRecord("SELECT template_id FROM dns_template WHERE visible = 'Y' ORDER BY name ASC");
- $fields['dns_template_id'] = $first_template['template_id'];
- }*/
- //BASE DE DATOS - TEMPLATE
- //Cargo todos los valores de la tabla dns_template que coincidan con id del template seleccionado.
- ///$template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE template_id = ?", $fields['dns_template_id']);
- //IMPORTANTE, aquí cargo el campo fields de la tabla dns_template
- //que contiene una lista de los campos que se muestran en el template(vista)
- /*$fields = explode(',', $template_record['fields']);
- if(is_array($fields)) {
- foreach($fields as $field) {
- $app->tpl->setVar($field."_VISIBLE", 1);
- $field = strtolower($field);
- $app->tpl->setVar($field, $_POST['dns_'.$field]);
- }
- }*/
-
- /*parent::onShowEnd();
- }*/
-
-
- function onSubmit() {
- global $app, $conf;
- //Carga de campos del formulario.
- $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true);
-
- // check for domain unique name
- if($app->db->queryOneRecord('SELECT domain_id FROM domain WHERE domain = "'.$fields['domain'].'"')) {
- $app->tform->errorMessage = $app->tform->wordbook['domain_error_unique'];
- }
-
- if($app->tform->errorMessage)
- {
- $this->onError();
- return;
- }
- //Esta variable nos llega por jQuery desde el htm para el control de errores en la vista.
- if($_POST['create'] != 1)
- {
- $app->tform->errorMessage = 'DUMMY';
- $app->tpl->setVar($this->dataRecord);
- $this->onShow();
- return;
- }
-
- // Domain OK, continue
- $remote = new remote_actions;
-
- // client prefix and group id
- $res = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($fields['client_id']));
- $client_group_id = $res['groupid'];
- $client_prefix = 'c'.$fields['client_id'];
-
- // add domain. Llamada que inserta el dominio en la tabla domain
- $domain_id = $remote->insert_query('../client/form/domain.tform.php', $fields['client_id'], array('domain' => $fields['domain']));
-
-
- //Carga del formulario dns_soa para guardar en base de datos
- $tform_def_file = "../dns/form/dns_soa.tform.php";
- $app->tform->loadFormDef($tform_def_file);
-
- // Carga y seleccion de dns_template, si no esta creado se informa de que tiene que crearse
- $template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE visible = 'Y' AND name = 'webdns'"); /*'open6hosting'");*/
-
- /*if($template_record) {
- //echo '
Teplate '.$template_record.', ';
- $app->tform->errorMessage = 'Error hay que crear un template llamado webdns';
- $this->onError();
- return;
- } else {
- $app->tform->errorMessage = 'Error hay que crear un template llamado webdnsssssss';
- $this->onError();
- return;
- }*/
-
- /*if($app->tform->errorMessage)
- {
- $this->onError();
- return;
- }*/
-
- //$template_record = $app->db->queryOneRecord("SELECT * FROM dns_template WHERE visible = 'Y' AND name = 'webdns'"); /*'open6hosting'");*/
-
- //Llamada a la tabla server_ip para recuperar la ip4 e ip6
- $dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$app->functions->intval($fields['client_id']. " AND ip_type='IPv4'"));
-
- $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = ".$fields['client_id']." AND ip_type='IPv6'");
-
- //Comprobamos que el resultado para el cliente seleccionado no esta vacÃo,
- //si lo esta tomamos los datos del cliente id 0
- if(!$dns_ip_servidor_ipv6){
- $dns_ip_servidor = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 0 AND ip_type='IPv4'");
- $dns_ip_servidor_ipv6 = $app->db->queryOneRecord("SELECT ip_type, ip_address FROM server_ip WHERE client_id = 0 AND ip_type='IPv6'");
- /*echo '
Valor de la consulta '.$dns_ip_servidor_ipv6[ip_address].' ';
- echo '