texto="SELECT * FROM ordenadores WHERE idordenador=".$idordenador; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error al abrir recordset $rs->Primero(); if (!$rs->EOF){ $arranque=$rs->campos["arranque"]; $rs->Cerrar(); } } ######## AGP $tablanodo=""; // Arbol para nodos insertados //________________________________________________________________________________________________________ $cmd=CreaComando($cadenaconexion); // Crea objeto comando $resul=false; if ($cmd){ if ($idaula==0) $idaula=toma_aula($cmd,$grupoid); $resul=Gestiona(); $cmd->Conexion->Cerrar(); } if($opcion!=$op_movida){ echo ''; echo ''; echo ' '; echo ''; echo '

'; echo ' '; echo ''; echo ' '; echo ''; } ?> texto="SELECT idaula FROM gruposordenadores WHERE idgrupo=".$idgrupo; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(0); // Error al abrir recordset $rs->Primero(); if (!$rs->EOF) return($rs->campos["idaula"]); else return(0); } /*________________________________________________________________________________________________________ Inserta, modifica o elimina datos en la tabla ordenadores ________________________________________________________________________________________________________*/ function Gestiona(){ global $cmd; global $opcion; global $fotoordenador; global $grupoid; global $idordenador; global $nombreordenador; global $numserie; global $n_row; global $n_col; global $ip; global $mac; global $idaula; global $idperfilhard; global $idrepositorio; global $oglive; global $idmenu; global $idprocedimiento; global $netiface; global $netdriver; ######################## UHU global $validacion; global $paginalogin; global $paginavalidacion; ######################## Ramón global $arranque; global $idioma; global $op_alta; global $op_modificacion; global $op_eliminacion; global $op_movida; global $tablanodo; ####################### Irina global $datosduplicados; $cmd->CreaParametro("@grupoid",$grupoid,1); $cmd->CreaParametro("@idaula",$idaula,1); $cmd->CreaParametro("@idordenador",$idordenador,1); $cmd->CreaParametro("@nombreordenador",$nombreordenador,0); $cmd->CreaParametro("@numserie",$numserie,0); $cmd->CreaParametro("@n_row",$n_row,1); $cmd->CreaParametro("@n_col",$n_col,1); $cmd->CreaParametro("@ip",$ip,0); $cmd->CreaParametro("@mac",$mac,0); $cmd->CreaParametro("@idperfilhard",$idperfilhard,1); $cmd->CreaParametro("@idrepositorio",$idrepositorio,1); $cmd->CreaParametro("@oglivedir",$oglive,0); $cmd->CreaParametro("@idmenu",$idmenu,1); $cmd->CreaParametro("@idprocedimiento",$idprocedimiento,1); $cmd->CreaParametro("@netiface",$netiface,0); $cmd->CreaParametro("@netdriver",$netdriver,0); $cmd->CreaParametro("@fotoordenador",$fotoordenador,0); ######################################################### UHU $cmd->CreaParametro("@validacion",$validacion,0); $cmd->CreaParametro("@paginalogin",$paginalogin,0); $cmd->CreaParametro("@paginavalidacion",$paginavalidacion,0); ######################################################### UHU switch($opcion){ case $op_alta : $duplicates = checkDuplicates($cmd, $datosduplicados, $idordenador, $nombreordenador, $ip, $mac); // Si no hay datos duplicados insertamos el ordenador; if (!$duplicates) { $cmd->texto="INSERT INTO ordenadores(nombreordenador,numserie,n_row,n_col,ip,mac,idperfilhard,idrepositorio,oglivedir, idmenu,idproautoexec,idaula,grupoid,netiface,netdriver,fotoord,validacion,paginalogin,paginavalidacion) VALUES (@nombreordenador,@numserie,@n_row,@n_col,@ip,@mac,@idperfilhard,@idrepositorio,@oglivedir, @idmenu,@idprocedimiento,@idaula,@grupoid,@netiface,@netdriver,@fotoordenador,@validacion,@paginalogin,@paginavalidacion)"; } $resul=$cmd->Ejecutar(); if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta $idordenador=$cmd->Autonumerico(); // Crear fichero TFTP/PXE por defecto para el nuevo ordenador. createBootMode ($cmd, "", $nombreordenador, $idioma); // Insertar datos en el árbol de configuración. $arbolXML=SubarbolXML_ordenadores($idordenador,$nombreordenador); $baseurlimg="../images/signos"; // Url de las imagenes de signo $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault); $tablanodo=$arbol->CreaArbolVistaXML(); } break; case $op_modificacion: $duplicates = checkDuplicates($cmd, $datosduplicados, $idordenador, $nombreordenador, $ip, $mac); if (!$duplicates) { $cmd->texto="UPDATE ordenadores SET nombreordenador=@nombreordenador,numserie=@numserie,n_row=@n_row,n_col=@n_col,ip=@ip,mac=@mac,idperfilhard=@idperfilhard, idrepositorio=@idrepositorio,oglivedir=@oglivedir,idmenu=@idmenu,idproautoexec=@idprocedimiento,netiface=@netiface,netdriver=@netdriver,fotoord=@fotoordenador,validacion=@validacion,paginalogin=@paginalogin,paginavalidacion=@paginavalidacion WHERE idordenador=@idordenador"; } $resul=$cmd->Ejecutar(); // Actualizar fichero TFTP/PXE a partir de la plantilla asociada. createBootMode ($cmd, $arranque, $nombreordenador, $idioma); break; case $op_eliminacion : $resul=EliminaOrdenadores($cmd,$idordenador,"idordenador");// Eliminación en cascada // Borrar fichero PXE. deleteBootFile ($mac); break; case $op_movida : $cmd->texto="UPDATE ordenadores SET idaula=@idaula, grupoid=@grupoid WHERE idordenador=@idordenador"; $resul=$cmd->Ejecutar(); // Actualizar fichero TFTP/PXE a partir de la plantilla asociada. createBootMode ($cmd, $arranque, $nombreordenador, $idioma); break; default: break; } return($resul); } function checkDuplicates(&$cmd, &$duplicate_data, $computer_id, $computer_name, $ip, $mac){ $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE nombreordenador=@nombreordenador OR ip=@ip OR mac=@mac"; $rs = new Recordset; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(0); $rs->Primero(); while (!$rs->EOF) { if ($computer_id != $rs->campos["idordenador"]) { if ( $computer_name == $rs->campos["nombreordenador"]) $duplicate_data ="nombre: $computer_name,"; if ( $ip == $rs->campos["ip"]) $duplicate_data .=" ip: $ip,"; if (strtoupper($mac) == strtoupper($rs->campos["mac"])) $duplicate_data .=" mac: $mac,"; } $rs->Siguiente(); } $rs->Cerrar(); $duplicate_data = trim($duplicate_data, ','); $ret = !empty($duplicate_data); return($ret); } /*________________________________________________________________________________________________________ Crea un arbol XML para el nuevo nodo insertado ________________________________________________________________________________________________________*/ function SubarbolXML_ordenadores($idordenador,$nombreordenador){ global $LITAMBITO_ORDENADORES; $cadenaXML='