diff --git a/lib/lang/en_new_service_webdns.lng b/lib/lang/en_new_service_webdns.lng index c94dd85..a2102e2 100644 --- a/lib/lang/en_new_service_webdns.lng +++ b/lib/lang/en_new_service_webdns.lng @@ -180,6 +180,9 @@ $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; -$wb['error_dominio_mas_puntos'] = 'El Dominio no es correcto, hay 3 puntos o más.'; -$wb['error_dominio_www'] = 'El Dominio no es correcto. No escriba "www" antes del dominio.'; +$wb['error_dominio_mas_puntos'] = 'El dominio no es correcto, hay 3 puntos o más.'; +$wb['error_dominio_www'] = 'El dominio no es correcto. No escriba "www" antes del dominio.'; +$wb['error_no_existe_dominio_padre'] = 'El dominio padre para este subdominio, no existe.'; +$wb['error_no_ip'] = 'No tiene ip, necesita añadirla en la configuración.'; +$wb['error_subdominio_existe'] = 'Este subdominio existe.'; ?> \ No newline at end of file diff --git a/lib/lang/es_new_service_webdns.lng b/lib/lang/es_new_service_webdns.lng index 3084f28..8758f43 100644 --- a/lib/lang/es_new_service_webdns.lng +++ b/lib/lang/es_new_service_webdns.lng @@ -180,6 +180,9 @@ $wb['http_port_txt'] = 'HTTP Port'; $wb['https_port_txt'] = 'HTTPS Port'; $wb['http_port_error_regex'] = 'HTTP Port invalid.'; $wb['https_port_error_regex'] = 'HTTPS Port invalid.'; -$wb['error_dominio_mas_puntos'] = 'El Dominio no es correcto, hay 3 puntos o más.'; -$wb['error_dominio_www'] = 'El Dominio no es correcto. No escriba "www" antes del dominio.'; +$wb['error_dominio_mas_puntos'] = 'El dominio no es correcto, hay 3 puntos o más.'; +$wb['error_dominio_www'] = 'El dominio no es correcto. No escriba "www" antes del dominio.'; +$wb['error_no_existe_dominio_padre'] = 'El dominio padre para este subdominio, no existe.'; +$wb['error_no_ip'] = 'No tiene ip, necesita añadirla en la configuración.'; +$wb['error_subdominio_existe'] = 'Este subdominio existe.'; ?> diff --git a/lib/module.conf.php b/lib/module.conf.php index 22cd491..55cc0e1 100644 --- a/lib/module.conf.php +++ b/lib/module.conf.php @@ -32,12 +32,12 @@ $items[] = array( 'title' => 'Nuevo servicio web', 'link' => 'webdns/new_service_webdns.php', 'html_id' => 'new_service_webdns'); -/*$items[] = array( 'title' => 'Sitio Web', +$items[] = array( 'title' => 'Versión', 'target' => 'content', - 'link' => 'customdns/webdns_vhost_domain_edit.php?type=domain' - //'../sites/web_vhost_domain_edit.php?type=domain' + 'link' => 'webdns/version_webdns.php', + 'html_id' =>'version_webdns' ); -$items[] = array( 'title' => 'Web DNS2', +/*$items[] = array( 'title' => 'Web DNS2', 'target' => 'content', 'link' => 'customdns/new_service_dns2.php', 'html_id' => 'new_service_dns2');*/ @@ -48,4 +48,8 @@ $items[] = array( 'title' => 'Web DNS2', $module['nav'][] = array( 'title' => 'WebDNS', 'open' => 1, 'items' => $items - ); \ No newline at end of file + ); +/*$module['nav'][] = array( 'title' => 'Versión', + 'open' => 1, + 'items' => $items + );*/ \ No newline at end of file diff --git a/new_service_webdns.php b/new_service_webdns.php old mode 100644 new mode 100755 index 3251743..2293dac --- a/new_service_webdns.php +++ b/new_service_webdns.php @@ -65,10 +65,12 @@ class page_action extends tform_actions { /*parent::onShowEnd(); }*/ + public $dominio; public $subdominio; public $es_subdominio = false; public $subdom_error = false; + public $no_ip = false; //Expresiones regulares para comprobar si es subdominio @@ -85,7 +87,6 @@ class page_action extends tform_actions { //Se comprueba que no tenga 3 w "www" al principio del nombre del dominio o subdomino $encontradoWWW = preg_match($patronWWW, $subdom, $coincidencias); - //print "Patron WWW " . $encontrado; if($encontradoWWW){ $app->tform->errorMessage = $app->tform->wordbook['error_dominio_www']; return; @@ -118,21 +119,36 @@ class page_action extends tform_actions { //Crear subdominio - function crearSubDominio($remoto){ - //para usar variables globales en las funciones hay que declararlas dentro de la funcion, ¿? + function crearSubDominio($remoto, $campoSubDominio){ + //para usar variables globales en las funciones hay que declararlas dentro de la funcion. global $app, $conf; + //print "
"; print_r($campoSubDominio); print "
\n"; + //Compruebo que el subdominio no existe consultando la tabla web_domain. + $existeSubDominio = $app->db->queryOneRecord('SELECT domain_id, domain FROM web_domain WHERE domain = "'.$campoSubDominio.'"'); + //print '
El Sub existe '. $existeSubDominio['domain'];
+		if($existeSubDominio){
+		    $this->subdom_error = true;
+		    $app->tform->errorMessage = $app->tform->wordbook['error_subdominio_existe'];
+		    $this->onError();
+		    return;
+		}
 		//print "
El dominio es: " . $this->dominio;
 		$camDominio = $app->db->queryOneRecord('SELECT domain_id, domain FROM domain WHERE domain = "'.$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'].'"');
-
+		//print_r($camDominio);
+		//print_r($camDnsRR);
 
 		//Si el dominio NO existe mostramos mensaje de error y salimos de la ejecución
 		if(!$camDominio['domain']){
-			echo '
+ $this->subdom_error = true; + $app->tform->errorMessage = $app->tform->wordbook['error_no_existe_dominio_padre']; + $this->onError(); + //return; + /*echo '
@@ -140,9 +156,9 @@ class page_action extends tform_actions {
-
'; +
';*/ //print 'No existe el dominio'; - return; + return $this->subdom_error; } else { //Parametros para la creación de subdominios @@ -165,27 +181,22 @@ class page_action extends tform_actions { //Inserto en bbdd usando la clase remoto que se la he pasado en parámetros de la función $resultado = $remoto->insert_query('../dns/form/dns_a.tform.php', $fields['client_id'], $paramSubDominios); - echo '
- - - - - - -
Se ha dado de alta Web y Subdominio, '.$this->subdominio.', ¡Correctamente!
-
'; + echo '

+ Se ha dado de alta Web y Subdominio, '.$this->subdominio.', ¡Correctamente! +


'; + //$this->onShow(); } } function crearSitioWebSubdominio($remoto){ global $app, $conf; - + $fields = $app->tform->encode($this->dataRecord, $app->tform->getCurrentTab(), true); $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, + //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'"); @@ -271,6 +282,28 @@ 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"; + 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; + } + return false; + } + function onSubmit() { global $app, $conf; //Carga de campos del formulario. @@ -279,11 +312,19 @@ class page_action extends tform_actions { //Creo la clase remote para usar las librerias $remote = new remote_actions; - if($this->comprobarSubDominios($fields['domain'])){ - $this->crearSubDominio($remote); - $this->crearSitioWebSubdominio($remote); - return; + //$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); + } + return; } //else if(!$this->subdom_error){ // check for domain unique name @@ -348,7 +389,7 @@ class page_action extends tform_actions { $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, + //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'"); @@ -546,15 +587,15 @@ class page_action extends tform_actions { 'client_group_id' => $client_group_id, ); - print 'Valores: ' . $dns_ip_servidor_ipv6 . " " . $formulario . " Parametros: " ; + /*print 'Valores: ' . $dns_ip_servidor_ipv6 . " " . $formulario . " Parametros: " ; print "
"; print_r($paramsite); print "
\n"; print '
 cliente id ' . $fields['client_id'];
-		print "
";print_r($fields);print "
\n"; + print "
";print_r($fields);print "
\n";*/ //print "
Formulario ";print_r($formulario);print "
\n"; - print 'DNS IPV6 ' . $dns_ip_servidor_ipv6['ip_address']; + //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'); @@ -567,15 +608,20 @@ class page_action extends tform_actions { //$remote->insert_query('../sites/form/web_vhost_domain.tform.php', $fields['client_id'], $paramsite); //Si todo va bien, el resultado - echo '
+ echo '

+ Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente! +


'; + //$this->onShow(); + + /*echo '
- +
Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!
-
'; +
';*/ //} //parent::onSubmit(); diff --git a/new_service_webdnsOLD.php b/new_service_webdnsOLD.php old mode 100644 new mode 100755