@@ -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 "<pre>"; print_r($campoSubDominio); print "</pre>\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 '<pre>El Sub existe '. $existeSubDominio['domain'];
if($existeSubDominio){
$this->subdom_error = true;
$app->tform->errorMessage = $app->tform->wordbook['error_subdominio_existe'];
$this->onError();
return;
}
//print "<pre>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 '<div class="table-wrapper marginTop15">
$this->subdom_error = true;
$app->tform->errorMessage = $app->tform->wordbook['error_no_existe_dominio_padre'];
$this->onError();
//return;
/*echo '<div class="table-wrapper marginTop15">
<table class="table">
<tbody>
<tr>
@@ -140,9 +156,9 @@ class page_action extends tform_actions {
</tr>
</tbody>
</table>
</div>';
</div>';*/
//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 '<div class="table-wrapper marginTop15">
<table class="table">
<tbody>
<tr>
<td bgcolor="#1ccb00" colspan="2"><b>Se ha dado de alta Web y Subdominio, '.$this->subdominio.', ¡Correctamente!</b></td>
</tr>
</tbody>
</table>
</div>';
echo '<br><div class="alert alert-success"><br>
Se ha dado de alta Web y Subdominio, <b>'.$this->subdominio.'</b>, ¡Correctamente!
<br><br></div></br>';
//$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 "<pre>Campos ";print_r($fields);print "</pre>\n";
print "<pre>IP4 ";print_r($dns_ip_servidor);print "</pre>\n";
print "<pre>IP6 ";print_r($dns_ip_servidor_ipv6);print "</pre>\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 "<pre>"; print_r($paramsite); print "</pre>\n";
print '<pre> cliente id ' . $fields['client_id'];
print "<pre>";print_r($fields);print "</pre>\n";
print "<pre>";print_r($fields);print "</pre>\n";*/
//print "<pre>Formulario ";print_r($formulario);print "</pre>\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 '<div class="table-wrapper marginTop15">
echo '<br><div class="alert alert-success"><br>
Altas Web y DNS del dominio <b>'.$fields['domain'].'</b>, ¡Creadas correctamente!
<br><br></div></br>';
//$this->onShow();
/*echo '<div class="table-wrapper marginTop15">
<table class="table">
<tbody>
<tr>
<td bgcolor="#1ccb00" colspan="2"><b>Altas Web y DNS del dominio '.$fields['domain'].', ¡Creadas correctamente!</b></td>
<td bgcolor="#1ccb00" colspan="2">Altas Web y DNS del dominio <b> '.$fields['domain'].'</b> , ¡Creadas correctamente!</td>
</tr>
</tbody>
</table>
</div>';
</div>';*/
//}
//parent::onSubmit();