summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/includes
diff options
context:
space:
mode:
authoralonso <alonso@us.es>2010-10-23 09:34:04 +0000
committeralonso <alonso@us.es>2010-10-23 09:34:04 +0000
commit3ec149cb19165453434984c88e8ba03f648e578e (patch)
tree9d315751684c2c27ed66ad645aeea52ce9027859 /admin/WebConsole/includes
parent550b680d176cbccfecfe35fad440dd570d90ba5b (diff)
git-svn-id: https://opengnsys.es/svn/trunk@1314 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin/WebConsole/includes')
-rw-r--r--admin/WebConsole/includes/ConfiguracionesParticiones.php639
-rw-r--r--admin/WebConsole/includes/CreaComando.php24
-rw-r--r--admin/WebConsole/includes/CreaTablaParametros.php50
-rw-r--r--admin/WebConsole/includes/FicherosPost.php51
-rw-r--r--admin/WebConsole/includes/HTMLCTEMULSELECT.php37
-rw-r--r--admin/WebConsole/includes/HTMLCTESELECT.php31
-rw-r--r--admin/WebConsole/includes/HTMLMULSELECT.php52
-rw-r--r--admin/WebConsole/includes/HTMLSELECT.php52
-rw-r--r--admin/WebConsole/includes/InvFecha.php37
-rw-r--r--admin/WebConsole/includes/RecopilaIpesMacs.php149
-rw-r--r--admin/WebConsole/includes/RedireccionaError.php13
-rw-r--r--admin/WebConsole/includes/TomaDato.php41
-rw-r--r--admin/WebConsole/includes/TomanDatos.php36
-rw-r--r--admin/WebConsole/includes/comunes.php378
-rw-r--r--admin/WebConsole/includes/constantes.php172
-rw-r--r--admin/WebConsole/includes/ctrlacc.php48
-rw-r--r--admin/WebConsole/includes/cuestionacciones.php79
-rw-r--r--admin/WebConsole/includes/cuestionaccionescab.php23
-rw-r--r--admin/WebConsole/includes/opciones.php16
-rw-r--r--admin/WebConsole/includes/opcionesbotones.php7
-rw-r--r--admin/WebConsole/includes/opcionesbotonesop.php9
21 files changed, 1944 insertions, 0 deletions
diff --git a/admin/WebConsole/includes/ConfiguracionesParticiones.php b/admin/WebConsole/includes/ConfiguracionesParticiones.php
new file mode 100644
index 00000000..30ee490e
--- /dev/null
+++ b/admin/WebConsole/includes/ConfiguracionesParticiones.php
@@ -0,0 +1,639 @@
+<?php
+/*________________________________________________________________________________________________________
+ La clave de configuración está formada por una serie de valores separados por ";"
+ Ejemplo:1;7;30000000;3;3;0;11
+
+ Parámetros:
+ 1) Número de partición
+ 2) Código de la partición
+ 3) Tamaño
+ 4) Identificador del sistema de ficheros instalado en la partición
+ 5) Identificador del nombre del sistema operativo instalado en la partición
+ 6) Identificador de la imagen restaurada en la partición
+ 7) Identificador del perfil software que contiene el S.O. instalado en la partición
+
+ Además de este campo, la consulta almacena la descripción de los identificadores que forman parte
+ de esta clave compuesta de manera que el tiempo de acceso para recuperlarlos sean corto
+ ya que están en memoria y no en tablas.
+
+ En el ejempo anterior podríamos tener datos
+ 1 NTFS 30000000 Windows NTFS Windows XP profesional NULL Perfil Software (CUR-8, Part:1)
+ Que indica:
+ 1) Número de partición
+ 2) Código de la partición
+ 3) Tamaño
+ 4) Descripción del sistema de ficheros instalado en la partición
+ 5) Descripción del nombre del sistema operativo instalado en la partición
+ 6) Descripción de la imagen restaurada en la partición
+ 7) Descripción del perfil software que contiene el S.O. instalado en la partición
+
+ Estos datos se guardan en la misma tabla de claves que será una matriz asociativa.
+
+ Parámetros de la función:
+ $cmd: Objeto comando (Operativo)
+ $idambito: Identificador del ámbito (identificador del Aula, grupo de ordenador u ordenador)
+ $ambito: Tipo de ambito (Aulas, grupos de ordenadores u ordenadores)
+ $sws: Switchs que indican el nivel de agrupamiento de los ordenadores para ser tratados
+ Se trata de un octeto de manera que si tiene un "1" en la posición determinada
+ indica que se requiere desplegar por ese parámetro:
+ 00000001- No agrupar por Sistema de ficheros
+ 00000010- No agrupar por Nombre de sistema Operativo
+ 00000100- No agrupar por Tamaño de partición
+ 00001000- No agrupar por Imagen instalada
+ 00010000- No agrupar por Perfil software contenido
+ $swr: Indica si se se tiene en cuenta las particiones no clonables (si:true o no:false)
+________________________________________________________________________________________________________*/
+function cargaCaves($cmd,$idambito,$ambito,$sws,$swr)
+{
+ global $tbKeys; // Tabla contenedora de claves de configuración
+ global $conKeys; // Contador de claves de configuración
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ global $msk_sysFi;
+ global $msk_nombreSO;
+ global $msk_tamano;
+ global $msk_imagen;
+ global $msk_perfil;
+
+ $cmd->texto="SELECT
+ concat_WS( ';',
+ ordenadores_particiones.numpar, ";
+
+ if($sws & $msk_tamano)
+ $cmd->texto.=" ordenadores_particiones.tamano,";
+
+
+ if($sws & $msk_sysFi)
+ $cmd->texto.=" ordenadores_particiones.idsistemafichero, ";
+
+ if($sws & $msk_nombreSO)
+ $cmd->texto.=" ordenadores_particiones.idnombreso, ";
+
+ if($sws & $msk_imagen)
+ $cmd->texto.=" ordenadores_particiones.idimagen, ";
+
+ if($sws & $msk_perfil)
+ $cmd->texto.=" ordenadores_particiones.idperfilsoft, ";
+
+ $cmd->texto.=" ordenadores_particiones.codpar) as configuracion,
+ ordenadores_particiones.numpar ,
+ ordenadores_particiones.codpar ,
+ tipospar.tipopar,
+ tipospar.clonable,
+ ordenadores_particiones.tamano,
+ sistemasficheros.descripcion as sistemafichero,
+ ordenadores_particiones.idnombreso,
+ nombresos.nombreso,
+ imagenes.idimagen,
+ imagenes.descripcion as imagen,
+ imagenes.nombreca as nombreca,
+ imagenes.idrepositorio as repositorio,
+ ordenadores_particiones.idperfilsoft,
+ perfilessoft.descripcion as perfilsoft
+
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ LEFT OUTER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft
+ LEFT OUTER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ if($swr) // Si se trata de restauración no se tiene en cuenta las partciones no clonables
+ $cmd->texto.=" AND tipospar.clonable=1 ";
+
+ $cmd->texto.=" GROUP by configuracion";
+ //echo "carga claves:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return($tablaHtml); // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ //echo $cmd->texto;
+ while (!$rs->EOF){
+ $tbKeys[$idx]["cfg"]=$rs->campos["configuracion"];
+ $tbKeys[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbKeys[$idx]["codpar"]=$rs->campos["codpar"];
+ $tbKeys[$idx]["tipopar"]=$rs->campos["tipopar"];
+ $tbKeys[$idx]["clonable"]=$rs->campos["clonable"];
+ $tbKeys[$idx]["tamano"]=$rs->campos["tamano"];
+ $tbKeys[$idx]["sistemafichero"]=$rs->campos["sistemafichero"];
+ $tbKeys[$idx]["idnombreso"]=$rs->campos["idnombreso"];
+ $tbKeys[$idx]["nombreso"]=$rs->campos["nombreso"];
+ $tbKeys[$idx]["idimagen"]=$rs->campos["idimagen"];
+ $tbKeys[$idx]["imagen"]=$rs->campos["imagen"];
+ $tbKeys[$idx]["nombreca"]=$rs->campos["nombreca"];
+ $tbKeys[$idx]["repositorio"]=$rs->campos["repositorio"];
+ $tbKeys[$idx]["idperfilsoft"]=$rs->campos["idperfilsoft"];
+ $tbKeys[$idx]["perfilsoft"]=$rs->campos["perfilsoft"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conKeys=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+ Dibuja la tabla de configuración de las particiones de un grupo de ordenadores
+
+ Parámetros de la función:
+ $cmd: Objeto comando (Operativo)
+ $idambito: Identificador del ámbito (identificador del Aula, grupo de ordenador u ordenador)
+ $ambito: Tipo de ambito (Aulas, grupos de ordenadores u ordenadores)
+ $sws: Switchs que indican el nivel de agrupamiento (ver comentarios de la función(cargaCaves)
+ $swr: Indica si se se tiene en cuenta las particiones no clonables (true:sólo conables , false:todas)
+
+ Especificaciones:
+ Esta función llama a pintaParticiones() que es realmente la encargada de mostrar o bien la
+ configuración de los ordenadores o la pantalla de los comandos "Configurar" o "RestaurarImagen"
+ para permitir introducir los datos necesarios.
+________________________________________________________________________________________________________*/
+function pintaConfiguraciones($cmd,$idambito,$ambito,$colums,$sws,$swr)
+{
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ global $msk_sysFi;
+ global $msk_nombreSO;
+ global $msk_tamano;
+ global $msk_imagen;
+ global $msk_perfil;
+
+ cargaCaves($cmd,$idambito,$ambito,$sws,$swr);
+ cargaSistemasFicheros($cmd,$idambito,$ambito);
+ cargaPerfiles($cmd,$idambito,$ambito);
+ cargaImagenes($cmd,$idambito,$ambito);
+ cargaNombresSO($cmd,$idambito,$ambito);
+ cargaTamano($cmd,$idambito,$ambito);
+
+ $cmd->texto="SELECT
+ count(*) as con,
+ group_concat(cast( temp2.idordenador AS char( 11 ) ) ORDER BY temp2.idordenador SEPARATOR ',' ) AS idordenadores,
+ temp2.configuraciones
+ FROM
+ (SELECT
+ temp1.idordenador as idordenador,
+ group_concat(cast( temp1.configuracion AS char( 250) ) ORDER BY temp1.configuracion SEPARATOR '@' ) AS configuraciones
+ FROM
+ (SELECT ordenadores_particiones.idordenador,
+ ordenadores_particiones.numpar,
+ concat_WS( ';',
+ ordenadores_particiones.numpar, ";
+
+ if($sws & $msk_tamano)
+ $cmd->texto.=" ordenadores_particiones.tamano,";
+
+ if($sws & $msk_sysFi)
+ $cmd->texto.=" ordenadores_particiones.idsistemafichero, ";
+
+ if($sws & $msk_nombreSO)
+ $cmd->texto.=" ordenadores_particiones.idnombreso, ";
+
+ if($sws & $msk_imagen)
+ $cmd->texto.=" ordenadores_particiones.idimagen, ";
+
+ if($sws & $msk_perfil)
+ $cmd->texto.=" ordenadores_particiones.idperfilsoft, ";
+
+ $cmd->texto.=" ordenadores_particiones.codpar) as configuracion
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ LEFT OUTER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso
+ INNER JOIN tipospar ON tipospar.codpar=ordenadores_particiones.codpar
+ LEFT OUTER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen
+ LEFT OUTER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft
+ LEFT OUTER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador=".$idambito;
+ break;
+ }
+ if($swr) // Si se trata de restauración no se tiene en cuenta las particiones no clonables
+ $cmd->texto.=" AND tipospar.clonable=1 ";
+
+ $cmd->texto.=" ORDER BY ordenadores_particiones.idordenador,ordenadores_particiones.numpar) as temp1
+ GROUP BY temp1.idordenador) as temp2
+ GROUP BY temp2.configuraciones
+ ORDER BY con desc,idordenadores";
+
+ //echo $cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $cc=0; // Contador de configuraciones
+ echo '<TABLE id="tabla_conf" width="95%" class="tabla_listados_sin" align=center border=0 cellPadding=0 cellSpacing=1>';
+ while (!$rs->EOF){
+ $cc++;
+ //Muestra ordenadores
+ echo '<TR><TD colspan='.$colums.' style="BACKGROUND-COLOR: #FFFFFF;">';
+ echo pintaOrdenadores($cmd,$rs->campos["idordenadores"],10,$cc);
+ echo '</TD></TR>';
+ //Muestra particiones y configuración
+
+ echo pintaParticiones($cmd,$rs->campos["configuraciones"],$rs->campos["idordenadores"],$cc);
+ $rs->Siguiente();
+ }
+ echo "</TABLE>";
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+// Descripción:
+// Muestra una taba html con el icono de ordenadores
+// Parametros:
+// $cmd: Objeto comando (operativo)
+// $idordenadores: Cadena con los identificadores de los ordenadores separados por ","
+// $maxcontor: Número máximo de ordenadores por fila
+// $cc: Identificador del bloque de configuración
+//________________________________________________________________________________________________________
+function pintaOrdenadores($cmd,$idordenadores,$maxcontor,$cc)
+{
+ $tablaHtml.="";
+ $contor=0;
+ $maxcontor=10; // Número máximo de prodenadores por fila
+ $cmd->texto=" SELECT idordenador,nombreordenador,ip FROM ordenadores WHERE idordenador in (".$idordenadores." ) ORDER BY nombreordenador";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ $tablaHtml.='<TABLE align=left border="0" id="tbOrd_'.$cc.'" value="'.$idordenadores.'"><TR>';
+ while (!$rs->EOF){
+ $contor++;
+ $tablaHtml.= '<TD align=center style="BACKGROUND-COLOR: #FFFFFF;">
+ <IMG src="../images/iconos/ordenador.gif" >
+ <br><span style="FONT-SIZE:9px; COLOR: #4f4f4f;" >'.$rs->campos["nombreordenador"].'</span>
+ </TD>';
+ if($contor>$maxcontor){
+ $contor=0;
+ $tablaHtml.='</TR><TR>';
+ }
+ $rs->Siguiente();
+ }
+ $tablaHtml.='</TR>';
+ $tablaHtml.= '</TABLE>';
+ return($tablaHtml);
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen el mismo sistema de ficheros del ámbito elegido
+________________________________________________________________________________________________________*/
+function cargaSistemasFicheros($cmd,$idambito,$ambito)
+{
+ global $tbSysFi; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conSysFi; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.idsistemafichero,ordenadores_particiones.numpar,
+ sistemasficheros.descripcion as sistemafichero,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ INNER JOIN sistemasficheros ON sistemasficheros.idsistemafichero=ordenadores_particiones.idsistemafichero";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.idsistemafichero";
+ //echo "carga sistemas de ficheros:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ //echo $cmd->texto;
+ while (!$rs->EOF){
+ $tbSysFi[$idx]["idsistemafichero"]=$rs->campos["idsistemafichero"];
+ $tbSysFi[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbSysFi[$idx]["sistemafichero"]=$rs->campos["sistemafichero"];
+ $tbSysFi[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conSysFi=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma sistema de ficheros común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaSistemasFicheros($numpar,$ordenadores,$sw=false)
+{
+ global $tbSysFi; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conSysFi; // Contador de elementos anteriores
+
+ for($k=0;$k<$conSysFi;$k++){
+ $pos = strpos($tbSysFi[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbSysFi[$k]["numpar"]==$numpar){
+ if($sw) // Retonar identificador
+ return($tbSysFi[$k]["idsistemafichero"]);
+ else
+ return($tbSysFi[$k]["sistemafichero"]);
+ }
+ }
+ }
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen el mismo perfil software en la misma partición
+________________________________________________________________________________________________________*/
+function cargaPerfiles($cmd,$idambito,$ambito)
+{
+ global $tbPerfil; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conPerfil; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.idperfilsoft,ordenadores_particiones.numpar,perfilessoft.descripcion as perfilsoft,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ INNER JOIN perfilessoft ON perfilessoft.idperfilsoft=ordenadores_particiones.idperfilsoft";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.idperfilsoft";
+ //echo "carga perfiles:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ while (!$rs->EOF){
+ $tbPerfil[$idx]["idperfilsoft"]=$rs->campos["idperfilsoft"];
+ $tbPerfil[$idx]["perfilsoft"]=$rs->campos["perfilsoft"];
+ $tbPerfil[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbPerfil[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conPerfil=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma perfilsoft común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaPerfiles($numpar,$ordenadores)
+{
+ global $tbPerfil; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conPerfil; // Contador de elementos anteriores
+
+ for($k=0;$k<$conPerfil;$k++){
+ $pos = strpos($tbPerfil[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbPerfil[$k]["numpar"]==$numpar)
+ return($tbPerfil[$k]["perfilsoft"]);
+ }
+ }
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen la misma imagen en la misma partición
+________________________________________________________________________________________________________*/
+function cargaImagenes($cmd,$idambito,$ambito)
+{
+ global $tbImg; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conImg; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.idimagen,ordenadores_particiones.numpar,imagenes.descripcion as imagen,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ INNER JOIN imagenes ON imagenes.idimagen=ordenadores_particiones.idimagen";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.idimagen";
+ //echo "carga imagenes:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ while (!$rs->EOF){
+ $tbImg[$idx]["idimagen"]=$rs->campos["idimagen"];
+ $tbImg[$idx]["imagen"]=$rs->campos["imagen"];
+ $tbImg[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbImg[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conImg=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma sistema operativo común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaImagenes($numpar,$ordenadores)
+{
+ global $tbImg; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conImg; // Contador de elementos anteriores
+
+ for($k=0;$k<$conImg;$k++){
+ $pos = strpos($tbImg[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbImg[$k]["numpar"]==$numpar)
+ return($tbImg[$k]["imagen"]);
+ }
+ }
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen el mismo sistema de ficheros en la misma partición
+________________________________________________________________________________________________________*/
+function cargaNombresSO($cmd,$idambito,$ambito)
+{
+ global $tbSO; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conSO; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.idnombreso,ordenadores_particiones.numpar,nombresos.nombreso,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador
+ INNER JOIN nombresos ON nombresos.idnombreso=ordenadores_particiones.idnombreso";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.idnombreso";
+ //echo "carga nombresos:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ while (!$rs->EOF){
+ $tbSO[$idx]["idnombreso"]=$rs->campos["idnombreso"];
+ $tbSO[$idx]["nombreso"]=$rs->campos["nombreso"];
+ $tbSO[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbSO[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conSO=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma sistema operativo común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaNombresSO($numpar,$ordenadores)
+{
+ global $tbSO; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conSO; // Contador de elementos anteriores
+
+ for($k=0;$k<$conSO;$k++){
+ $pos = strpos($tbSO[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbSO[$k]["numpar"]==$numpar)
+ return($tbSO[$k]["nombreso"]);
+ }
+ }
+}
+/*________________________________________________________________________________________________________
+
+ Selecciona los ordenadores que tienen el mismo tamaño para la misma partición
+________________________________________________________________________________________________________*/
+function cargaTamano($cmd,$idambito,$ambito)
+{
+ global $tbTam; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conTam; // Contador de elementos anteriores
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cmd->texto="SELECT count(*) as con,ordenadores_particiones.tamano,ordenadores_particiones.numpar,
+ group_concat(cast(ordenadores_particiones.idordenador AS char( 11) )
+ ORDER BY ordenadores_particiones.idordenador SEPARATOR ',' ) AS ordenadores
+ FROM ordenadores
+ INNER JOIN ordenadores_particiones ON ordenadores_particiones.idordenador=ordenadores.idordenador";
+
+ switch($ambito){
+ case $AMBITO_AULAS :
+ $cmd->texto.=" INNER JOIN aulas ON aulas.idaula = ordenadores.idaula
+ WHERE aulas.idaula =".$idambito;
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto.=" INNER JOIN gruposordenadores ON gruposordenadores.idgrupo = ordenadores.grupoid
+ WHERE gruposordenadores.idgrupo =".$idambito;
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto.=" WHERE ordenadores.idordenador =".$idambito;
+ break;
+ }
+ $cmd->texto.=" GROUP BY ordenadores_particiones.numpar,ordenadores_particiones.tamano";
+ //echo "carga tamaños:".$cmd->texto;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $idx=0;
+ while (!$rs->EOF){
+ $tbTam[$idx]["tamano"]=$rs->campos["tamano"];
+ $tbTam[$idx]["numpar"]=$rs->campos["numpar"];
+ $tbTam[$idx]["ordenadores"]=$rs->campos["ordenadores"];
+ $idx++;
+ $rs->Siguiente();
+ }
+ $conTam=$idx; // Guarda contador
+ $rs->Cerrar();
+}
+/*________________________________________________________________________________________________________
+
+ Toma tamaño de partición común a los ordenadores pasados como parámetros
+________________________________________________________________________________________________________*/
+function tomaTamano($numpar,$ordenadores)
+{
+ global $tbTam; // Tabla contenedora de ordenadores incluidos en la consulta
+ global $conTam; // Contador de elementos anteriores
+
+ for($k=0;$k<$conTam;$k++){
+ $pos = strpos($tbTam[$k]["ordenadores"], $ordenadores);
+ if ($pos !== false) { // Cadena encontrada
+ if($tbTam[$k]["numpar"]==$numpar)
+ return($tbTam[$k]["tamano"]);
+ }
+ }
+}
+
+?>
diff --git a/admin/WebConsole/includes/CreaComando.php b/admin/WebConsole/includes/CreaComando.php
new file mode 100644
index 00000000..06bce0bb
--- /dev/null
+++ b/admin/WebConsole/includes/CreaComando.php
@@ -0,0 +1,24 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: CreaComando.php
+// Descripción :
+// Devuelve una objeto comando totalmente operativo (con la conexión abierta)
+// Parametros:
+// - cadenaconexion: Una cadena con los datos necesarios para la conexión: nombre del servidor
+// usuario,password,base de datos,etc separados por coma
+// *************************************************************************************************************************************************
+function CreaComando($cadenaconexion){
+ $strcn=split(";",$cadenaconexion);
+ $cn=new Conexion;
+ $cmd=new Comando;
+ $cn->CadenaConexion($strcn[0],$strcn[1],$strcn[2],$strcn[3],$strcn[4]);
+ if (!$cn->Abrir()) return (false);
+ $cn->SetUtf8();
+ $cmd->Conexion=&$cn;
+ return($cmd);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/CreaTablaParametros.php b/admin/WebConsole/includes/CreaTablaParametros.php
new file mode 100644
index 00000000..53757345
--- /dev/null
+++ b/admin/WebConsole/includes/CreaTablaParametros.php
@@ -0,0 +1,50 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: CreaTablaParametros.php
+// Descripción :
+// Crea una tabla en memoria con especificaciones sobre los parámetros de cada comando
+// Parametros:
+// - cmd: Un comando ya operativo (con conexión abierta)
+// - tabla_parametros: Referencia a la tabla donde se guardarán las especificaciones
+// - cont_parametros: Referencia a la variable que contendrá el número de elementos totales de la tabla
+// *************************************************************************************************************************************************
+function CreaTablaParametros($cmd,$tabla_parametros,$cont_parametros){
+ $rs=new Recordset;
+ $cmd->texto="SELECT * FROM parametros";
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ $cont=0;
+ while (!$rs->EOF){
+ $auxtabla_parametros="";
+ $auxtabla_parametros["nemonico"]=$rs->campos["nemonico"];
+ $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
+ $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
+ $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"];
+ $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"];
+ $tabla_parametros[$cont][0]=$auxtabla_parametros["nemonico"];
+ $tabla_parametros[$cont][1]=$auxtabla_parametros;
+ $cont++;
+ $rs->Siguiente();
+ }
+ $auxnemonico="";
+ // Ordena según el nemonico
+ for ($i=0;$i<$cont-1;$i++){
+ for ($j=$i+1;$j<$cont;$j++){
+ if($tabla_parametros[$i][0]>$tabla_parametros[$j][0]){
+ $auxnemonico=$tabla_parametros[$i][0];
+ $tabla_parametros[$i][0]=$tabla_parametros[$j][0];
+ $tabla_parametros[$j][0]=$auxnemonico;
+ $auxtabla_parametros=$tabla_parametros[$i][1];
+ $tabla_parametros[$i][1]=$tabla_parametros[$j][1];
+ $tabla_parametros[$j][1]=$auxtabla_parametros;
+ }
+ }
+ }
+ $cont_parametros=$cont;
+}
+?>
diff --git a/admin/WebConsole/includes/FicherosPost.php b/admin/WebConsole/includes/FicherosPost.php
new file mode 100644
index 00000000..41858981
--- /dev/null
+++ b/admin/WebConsole/includes/FicherosPost.php
@@ -0,0 +1,51 @@
+<?
+//________________________________________________________________________________________
+//
+// Salva un fichero enviado por POST
+// Parámetros:
+// - $UrlPagina: Url de la página que carga el fichero
+// - $NombreFicheroPost: Nombre temporal que le da php al fichero post
+// - $NombreFichero: Nombre definitivo que tendrá el fichero
+//________________________________________________________________________________________
+function SalvaFichero_POST($UrlPagina,$NombreFicheroPost,$NombreFichero,$UrlFichero){
+
+ $UrlCarpetaPagina=dirname($UrlPagina);
+ $UrlFichero=$UrlCarpetaPagina."/iconos/".$NombreFichero;
+
+ $PathFisicoFichero=TomaPathFIsico($UrlPagina,$NombreFichero);
+
+ if (file_exists($PathFisicoFichero)) // Borra el fichero si existe
+ unlink($PathFisicoFichero);
+ $resul=move_uploaded_file($NombreFicheroPost,$PathFisicoFichero); // salva el fichero
+ return($resul);
+}
+//________________________________________________________________________________________
+//
+// Elimina un fichero en el servidor
+// Parámetros:
+// - $UrlPagina: Url de la página que carga el fichero
+// - $NombreFichero: Nombre definitivo que tendrá el fichero
+//________________________________________________________________________________________
+function EliminaFichero($UrlPagina,$NombreFichero){
+ $PathFisicoFichero=TomaPathFIsico($UrlPagina,$NombreFichero);
+ $resul=false;
+ if (file_exists($PathFisicoFichero)) // Borra el fichero si existe
+ $resul=unlink($PathFisicoFichero);
+ return($resul);
+}
+//________________________________________________________________________________________
+//
+// Toma el path físico de un fichero
+// Parámetros:
+// - $UrlPagina: Url de la página que carga el fichero
+// - $NombreFichero: Nombre definitivo que tendrá el fichero
+//________________________________________________________________________________________
+function TomaPathFisico($UrlPagina,$NombreFichero){
+ $Nombrepagina=basename($UrlPagina);
+ $PathFisicoPagina=realpath($Nombrepagina);
+ $PathFisicoCarpetaPagina=dirname($PathFisicoPagina);
+ $PathFisicoCarpetaFichero=$PathFisicoCarpetaPagina."/iconos";
+ $PathFisicoFichero=$PathFisicoCarpetaPagina."/iconos/".$NombreFichero;
+ return($PathFisicoFichero);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/HTMLCTEMULSELECT.php b/admin/WebConsole/includes/HTMLCTEMULSELECT.php
new file mode 100644
index 00000000..6c4f479f
--- /dev/null
+++ b/admin/WebConsole/includes/HTMLCTEMULSELECT.php
@@ -0,0 +1,37 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: HTMLCTEMULSELECT.php
+// Descripción :
+// Crea la etiqueta html <SELECT> multiselección, de valores constantes
+// Parametros:
+// - parametros: Una cadena con la forma valor=literal separada por un caracter INTRO
+// - nombreid: Nombre del desplegable (atributo HTML name)
+// - tbvalor: Array con los valores de las opciones que aparecerán seleccionadas
+// - clase: Clase que define su estilo
+// - eventochg: Nombre de la función que se ejecutará en respuesta al evento onchange( por defecto: ninguna)
+// - ancho: Anchura del desplegable
+// - alto: Altura del desplegable
+// *************************************************************************************************************************************************
+function HTMLCTEMULSELECT($parametros,$nombreid,$tbvalor,$clase,$eventochg,$ancho,$alto){
+ if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
+ if (empty($clase)) $clase='formulariodatos';
+ $x=0;
+ $opciones=split(chr(13),$parametros);
+ $SelectHtml= '<SELECT '.$eventochg.' class="'.$clase.'" name="'.$nombreid.'" multiple size='.$alto.' style="WIDTH: '.$ancho.'">';
+ for($i=0;$i<sizeof($opciones);$i++){
+ $item=split("=",$opciones[$i]);
+ $SelectHtml.= '<OPTION value="'.$item[0].'"';
+ if (isset($tbvalor[$x])){
+ if($tbvalor[$x]==$item[0]) {
+ $SelectHtml.=" selected ";
+ $x++;
+ }
+ }
+ $SelectHtml.= '>'.$item[1].'</OPTION>';
+ }
+ return($SelectHtml);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/HTMLCTESELECT.php b/admin/WebConsole/includes/HTMLCTESELECT.php
new file mode 100644
index 00000000..bd07d085
--- /dev/null
+++ b/admin/WebConsole/includes/HTMLCTESELECT.php
@@ -0,0 +1,31 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: HTMLCTESELECT.php
+// Descripción :
+// Crea la etiqueta html <SELECT> de valores constantes
+// Parametros:
+// - parametros:Una cadena con la forma valor=literal separada por un caracter INTRO
+// - nombreid: Nombre del desplegable (atributo HTML name)
+// - clase: Clase que define su estilo
+// - defaultlit: Literal de la primera opción cuyo valor es siempre 0
+// - valorselec: Valor del item que saldrá seleccionado por defecto
+// - ancho: Anchura del desplegable
+// - eventochg: Nombre de la función que se ejecutará en respuesta al evento onchange
+// *************************************************************************************************************************************************
+function HTMLCTESELECT($parametros,$nombreid,$clase,$defaultlit,$valorselec,$ancho,$eventochg=""){
+ if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
+ $opciones=split(chr(13),$parametros);
+ $SelectHtml= '<SELECT '.$eventochg.' class= "'.$clase.'" id='.$nombreid.' name="'.$nombreid.'" style="WIDTH: '.$ancho.'">';
+ if (!empty($defaultlit)) $SelectHtml.= '<OPTION value="0">'.$defaultlit.'</OPTION>';
+ for($i=0;$i<sizeof($opciones);$i++){
+ $item=split("=",$opciones[$i]);
+ $SelectHtml.= '<OPTION value="'.$item[0].'"';
+ if($valorselec==$item[0]) $SelectHtml.=" selected ";
+ $SelectHtml.= '>'.$item[1].'</OPTION>';
+ }
+ return($SelectHtml);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/HTMLMULSELECT.php b/admin/WebConsole/includes/HTMLMULSELECT.php
new file mode 100644
index 00000000..e6844b03
--- /dev/null
+++ b/admin/WebConsole/includes/HTMLMULSELECT.php
@@ -0,0 +1,52 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: HTMLSELECT.php
+// Descripción :
+// Crea la etiqueta html <SELECT> con valores procedentes de una tabla ( eleccciones multiples)
+// Parametros:
+// - cmd:Un comando ya operativo (con conexión abierta)
+// - idcentro:Centro al que pertene el registro donde se encuentra el dato a recuperar, será 0 para no contemplar este dato
+// - nombretabla: Nombre de la tabla origen de los datos
+// - identificador: Valor del campo identificador del registro
+// - nombreid: Nombre del campo identificador del registro
+// - nombreliteral: Nombre del campo de la tabla que mostrará el desplegable
+// - ancho: Anchura del desplegable
+// - eventochg: Nombre de la función que se ejecutará en respuesta al evento onchange( por defecto: ninguna)
+// - clase: Clase que define su estilo (por defecto: formulariodatos)
+// - clausulawhere: Clausula Where adicional
+// *************************************************************************************************************************************************
+function HTMLMULSELECT($cmd,$idcentro,$nombretabla,$identificador,$nombreid,$nombreliteral,$ancho,$eventochg = "",$clase="",$clausulawhere=""){
+ if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
+ if (empty($clase)) $clase='formulariodatos';
+ $SelectHtml="";
+ $rs=new Recordset;
+ if ($idcentro>0){
+ $cmd->texto='SELECT * FROM '.$nombretabla.' WHERE idcentro='.$idcentro;
+ if(!empty($clausulawhere))
+ $cmd->texto.=" AND (".$clausulawhere.")";
+ }
+ else{
+ $cmd->texto='SELECT * FROM '.$nombretabla;
+ if(!empty($clausulawhere))
+ $cmd->texto.=" WHERE (".$clausulawhere.")";
+ }
+ $cmd->texto.=' ORDER BY '.$nombreliteral;
+
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ $SelectHtml.= '<SELECT '.$eventochg.' class="'.$clase.'" multiple name="'.$nombreid.'" style="WIDTH: '.$ancho.'">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos[$nombreid].'"';
+ If ($rs->campos[$nombreid]==$identificador) $SelectHtml.= ' selected ' ;
+ $SelectHtml.= '>'.$rs->campos[$nombreliteral].'</OPTION>';
+ $rs->Siguiente();
+ }$SelectHtml.= '</SELECT>';
+ $rs->Cerrar();
+ return($SelectHtml);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/HTMLSELECT.php b/admin/WebConsole/includes/HTMLSELECT.php
new file mode 100644
index 00000000..077e7680
--- /dev/null
+++ b/admin/WebConsole/includes/HTMLSELECT.php
@@ -0,0 +1,52 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: HTMLSELECT.php
+// Descripción :
+// Crea la etiqueta html <SELECT> con valores procedentes de una tabla
+// Parametros:
+// - cmd:Un comando ya operativo (con conexión abierta)
+// - idcentro:Centro al que pertene el registro donde se encuentra el dato a recuperar, será 0 para no contemplar este dato
+// - nombretabla: Nombre de la tabla origen de los datos
+// - identificador: Valor del campo identificador del registro
+// - nombreid: Nombre del campo identificador del registro
+// - nombreliteral: Nombre del campo de la tabla que mostrará el desplegable
+// - ancho: Anchura del desplegable
+// - eventochg: Nombre de la función que se ejecutará en respuesta al evento onchange( por defecto: ninguna)
+// - clase: Clase que define su estilo (por defecto: formulariodatos)
+// - clausulawhere: Clausula Where adicional
+// *************************************************************************************************************************************************
+function HTMLSELECT($cmd,$idcentro,$nombretabla,$identificador,$nombreid,$nombreliteral,$ancho,$eventochg = "",$clase="",$clausulawhere=""){
+ if (!empty($eventochg)) $eventochg='onchange="'.$eventochg.'(this);"';
+ if (empty($clase)) $clase='formulariodatos';
+ $SelectHtml="";
+ $rs=new Recordset;
+ if ($idcentro>0){
+ $cmd->texto='SELECT * FROM '.$nombretabla.' WHERE idcentro='.$idcentro;
+ if(!empty($clausulawhere))
+ $cmd->texto.=" AND (".$clausulawhere.")";
+ }
+ else{
+ $cmd->texto='SELECT * FROM '.$nombretabla;
+ if(!empty($clausulawhere))
+ $cmd->texto.=" WHERE (".$clausulawhere.")";
+ }
+ $cmd->texto.=' ORDER BY '.$nombreliteral;
+ //echo "<br>".$cmd->texto;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ $SelectHtml.= '<SELECT '.$eventochg.' class="'.$clase.'" name="'.$nombreid.'" style="WIDTH: '.$ancho.'">';
+ $SelectHtml.= ' <OPTION value="0"></OPTION>';
+ $rs->Primero();
+ while (!$rs->EOF){
+ $SelectHtml.='<OPTION value="'.$rs->campos[$nombreid].'"';
+ If ($rs->campos[$nombreid]==$identificador) $SelectHtml.= ' selected ' ;
+ $SelectHtml.= '>'.$rs->campos[$nombreliteral].'</OPTION>';
+ $rs->Siguiente();
+ }$SelectHtml.= '</SELECT>';
+ $rs->Cerrar();
+ return($SelectHtml);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/InvFecha.php b/admin/WebConsole/includes/InvFecha.php
new file mode 100644
index 00000000..5bc46c4a
--- /dev/null
+++ b/admin/WebConsole/includes/InvFecha.php
@@ -0,0 +1,37 @@
+<?
+/*______________________________________________________________________
+ Cambia de posicion los extremos de una fecha. Devuelve una fecha con formato
+ dd-mm-aaaa si el formato de entrada es aaaa-mm-dd y viseversa
+ Parametros:
+ - fecha: Una cadena con los datos de una fecha
+_______________________________________________________________________*/
+function InvFecha($fecha){
+ if ($fecha=="0000-00-00")return("");
+
+ $auxsplit=split(" ",$fecha);
+ list($anno_p,$mes_p,$dia_p)=split("[/-]",$auxsplit[0]);
+ $fecha_p=$dia_p.'-'.$mes_p.'-'.$anno_p;
+ return($fecha_p);
+}
+////////////////////////////////////////////////////
+//Convierte fecha de mysql a normal
+////////////////////////////////////////////////////
+function sacafechaDB($fecha){
+ ereg( "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})", $fecha, $mifecha);
+ $lafecha=$mifecha[3]."/".$mifecha[2]."/".$mifecha[1];
+ return $lafecha;
+}
+
+////////////////////////////////////////////////////
+//Convierte fecha de normal a mysql
+////////////////////////////////////////////////////
+
+function metefechaDB($fecha){
+ ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fecha, $mifecha);
+ $lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
+ return $lafecha;
+}
+function HoraValida($hora){
+ if ($hora=="00:00:00")return("");
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/RecopilaIpesMacs.php b/admin/WebConsole/includes/RecopilaIpesMacs.php
new file mode 100644
index 00000000..67bc5145
--- /dev/null
+++ b/admin/WebConsole/includes/RecopilaIpesMacs.php
@@ -0,0 +1,149 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Año 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: RecopilaIpesMacs.php
+// Descripción :
+// Recopila las IPes, las Macs y los identificadores de ordenadores de un ámbito determinado
+//
+// Especificaciones:
+// Esta Función recibe tres parámatros:
+// cmd : Un objeto comando totalmente operativo
+// ambito: Ámbito
+// idambito: Identificador del ámbito
+//
+// Devuelve:
+// Todas los identificadores de ordenadores , las ipes y las macs de los ordenadores que componen el ámbito
+// Para ellos habrá que tener declarada tres variables globales :
+// $cadenaid, $cadenaip y $cadenamac
+// *************************************************************************************************************************************************
+function RecopilaIpesMacs($cmd,$ambito,$idambito){
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ $cadenaid="";
+ $cadenaip="";
+ $cadenamac="";
+
+ $rs=new Recordset;
+ switch($ambito){
+ case $AMBITO_CENTROS :
+ $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
+ RecorreCentro($cmd);
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idgrupo=".$idambito." AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ break;
+ case $AMBITO_AULAS :
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
+ RecorreAulas($cmd);
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
+ RecorreGruposOrdenadores($cmd);
+ break;
+ case $AMBITO_ORDENADORES :
+ $cmd->texto="SELECT ip,mac,nombreordenador,idordenador FROM ordenadores WHERE idordenador=".$idambito;
+ RecorreOrdenadores($cmd);
+ break;
+ default: // Se trata de un conjunto aleatorio de ordenadores
+ $cmd->texto="SELECT ip,mac,nombreordenador,idordenador FROM ordenadores WHERE idordenador IN (".$idambito.")";
+ RecorreOrdenadores($cmd);
+
+ }
+ $cadenaid=substr($cadenaid,0,strlen($cadenaid)-1); // Quita la coma
+ $cadenaip=substr($cadenaip,0,strlen($cadenaip)-1); // Quita la coma
+ $cadenamac=substr($cadenamac,0,strlen($cadenamac)-1); // Quita la coma
+}
+//________________________________________________________________________________________________________
+function RecorreCentro($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ if(!$rs->EOF){
+ $idcentro=$rs->campos["idcentro"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0 AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0";
+ RecorreAulas($cmd);
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposAulas($cmd){
+ global $AMBITO_GRUPOSAULAS;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo. " AND tipo=".$AMBITO_GRUPOSAULAS;
+ RecorreGruposAulas($cmd);
+ $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE grupoid=".$idgrupo;
+ RecorreAulas($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreAulas($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idaula=$rs->campos["idaula"];
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idaula=".$idaula." AND grupoid=0";
+ RecorreGruposOrdenadores($cmd);
+ $cmd->texto="SELECT ip,mac,nombreordenador,idordenador FROM ordenadores WHERE idaula=".$idaula." AND grupoid=0";
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreGruposOrdenadores($cmd){
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ $rs->Primero();
+ while (!$rs->EOF){
+ $idgrupo=$rs->campos["idgrupo"];
+ $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE grupoid=".$idgrupo;
+ RecorreGruposOrdenadores($cmd);
+ $cmd->texto="SELECT ip,mac,nombreordenador,idordenador FROM ordenadores WHERE grupoid=".$idgrupo;
+ RecorreOrdenadores($cmd);
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+//________________________________________________________________________________________________________
+function RecorreOrdenadores($cmd){
+ global $cadenaid;
+ global $cadenaip;
+ global $cadenamac;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return; // Error al abrir recordset
+ while (!$rs->EOF){
+ $cadenaid.=$rs->campos["idordenador"].",";
+ $cadenaip.=$rs->campos["ip"].";";
+ $cadenamac.=$rs->campos["mac"].";";
+ $rs->Siguiente();
+ }
+ $rs->Cerrar();
+}
+?>
diff --git a/admin/WebConsole/includes/RedireccionaError.php b/admin/WebConsole/includes/RedireccionaError.php
new file mode 100644
index 00000000..92a6cd4c
--- /dev/null
+++ b/admin/WebConsole/includes/RedireccionaError.php
@@ -0,0 +1,13 @@
+<?
+/*______________________________________________________________________
+ Redirecciona a la página de error
+ Parametros:
+ - Literal del error
+_______________________________________________________________________*/
+function RedireccionaError($herror){
+
+ $urlerror=urlencode($herror);
+ $wurl="../seguridad/logerror.php?herror=".$urlerror;
+ Header('Location: '.$wurl);
+}
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/TomaDato.php b/admin/WebConsole/includes/TomaDato.php
new file mode 100644
index 00000000..b20278d8
--- /dev/null
+++ b/admin/WebConsole/includes/TomaDato.php
@@ -0,0 +1,41 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: TomaDato.php
+// Descripción :
+// Recupera un dato de una tabla
+// Parametros:
+// - cmd:Un comando ya operativo (con conexión abierta)
+// - idcentro:Centro al que pertene el registro donde se encuentra el dato a recuperar, será 0 para no contemplar este dato
+// - nombretabla: Nombre de la tabla origen de los datos
+// - identificador: Valor del campo identificador del registro (cadena separada por comas si hay varios)
+// - nombreid: Nombre del campo identificador del registro (cadena separada por comas si hay varios)
+// - nombreliteral: Nombre del campo que se quiere recuperar
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico ( valor por defecto)
+// (*) En el caso de haber varios identificadores todos deben ser del mismo tipo ( numérico o alfanumérico)
+//*************************************************************************************************************************************************
+function TomaDato($cmd,$idcentro,$nombretabla,$identificador,$nombreid,$nombreliteral,$swid=0){
+ $Dato="";
+ if (empty($identificador)) return($Dato);
+
+ if($swid==0) $ch='"'; else $ch=""; // Caracter comillas para campos alfanuméricos
+ $auxidentificador=split(";",$identificador);
+ $auxnombreid=split(";",$nombreid);
+
+ $clausulaWhere=" WHERE ".$auxnombreid[0]."=".$ch.$auxidentificador[0].$ch;
+ for ($i=1;$i<sizeof($auxidentificador);$i++)
+ $clausulaWhere.=" AND ".$auxnombreid[$i]."=".$ch.$auxidentificador[$i].$ch;
+ $cmd->texto="SELECT * FROM ".$nombretabla.$clausulaWhere;
+ if (!empty($idcentro))
+ $cmd->texto.=" AND idcentro=".$idcentro;
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ if (!$rs->EOF)
+ $Dato.=$rs->campos[$nombreliteral];
+ $rs->Cerrar();
+ return($Dato);
+}
diff --git a/admin/WebConsole/includes/TomanDatos.php b/admin/WebConsole/includes/TomanDatos.php
new file mode 100644
index 00000000..07c96a3c
--- /dev/null
+++ b/admin/WebConsole/includes/TomanDatos.php
@@ -0,0 +1,36 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: 2009-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: TomanDatos.php
+// Descripción :
+// Recupera datos de una tabla
+// Parametros:
+// - cmd:Un comando ya operativo (con conexión abierta)
+// - idcentro:Centro al que pertene el registro donde se encuentra el dato a recuperar, será 0 para no contemplar este dato
+// - nombretabla: Nombre de la tabla origen de los datos
+// - identificador: Valor del campo identificador del registro
+// - nombreid: Nombre del campo identificador del registro
+// - nombreliteral: Array asosiativa con los nombres de los campo que se quieren recuperar
+// - swid: Indica 0= El identificador es tipo alfanumérico 1= EI identificador es tipo numérico (valor por defecto)
+// *************************************************************************************************************************************************
+function TomanDatos($cmd,$nombretabla,$identificador,$nombreid,$nombreliterales,$swid=1){
+ $Dato="";
+ if (empty($identificador)) $identificador=0;
+ $rs=new Recordset;
+ if($swid==0)
+ $cmd->texto="SELECT * FROM ".$nombretabla." WHERE ".$nombreid."='".$identificador."'";
+ else
+ $cmd->texto='SELECT * FROM '.$nombretabla.' WHERE '.$nombreid.'='.$identificador;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(""); // Error al abrir recordset
+ if (!$rs->EOF){
+ for($x=0;$x<sizeof($nombreliterales);$x++){
+ $Dato[$nombreliterales[$x]]=$rs->campos[$nombreliterales[$x]];
+ }
+ }
+ $rs->Cerrar();
+ return($Dato);
+} \ No newline at end of file
diff --git a/admin/WebConsole/includes/comunes.php b/admin/WebConsole/includes/comunes.php
new file mode 100644
index 00000000..b3e81e82
--- /dev/null
+++ b/admin/WebConsole/includes/comunes.php
@@ -0,0 +1,378 @@
+<?
+ //________________________________________________________________________________________
+ //
+ // Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
+ // Parámetros:
+ // - trama: La trama
+ // Devuelve:
+ // Una matriz con las parejas de paramertos "nombre=valor"
+ //________________________________________________________________________________________
+ function extrae_parametros($parametros,$chsep,$chval){
+ $ParametrosCadena="";
+ $auxP=split($chsep,$parametros);
+ for ($i=0;$i<sizeof($auxP);$i++){
+ $dualparam=split($chval,$auxP[$i]);
+
+ if (isset($dualparam[0]) && isset($dualparam[1])){
+ $streval='$ParametrosCadena["'.$dualparam[0].'"]="'.$dualparam[1].'";';
+ eval($streval);
+ }
+ }
+ return($ParametrosCadena);
+ }
+ //________________________________________________________________________________________
+ //
+ // Trocea en elementos de una matriz la cadena enviada como parametro separando por parametros
+ // y devolviendo el elegido
+ // Parámetros:
+ // Devuelve:
+ //________________________________________________________________________________________
+ function extrae_parametro($parametros,$chsep,$chval,$chr){
+ $ParametrosCadena="";
+ $auxP=split($chsep,$parametros);
+ for ($i=0;$i<sizeof($auxP);$i++){
+ $dualparam=split($chval,$auxP[$i]);
+ if (isset($dualparam[0]) && isset($dualparam[1])){
+ if($dualparam[0]==$chr)
+ return($dualparam[1]);
+ }
+ }
+ return("");
+ }
+ //________________________________________________________________________________________
+ //
+ // Busca una cadena dentro de otra.
+ // Especificaciones:
+ // Puede ser sensible a las mayúsculas
+ // Parametros:
+ // cadena; cadena donde se va a buscar
+ // subcadena; cadena a buscar
+ // swsensible; si es sensible o no a las mayúsculas y minúsculas
+ // Devuelve:
+ // La posición de comienzo de la subcadena dentro de la cadena, o (-1) en caso de no estar dentro
+ //________________________________________________________________________________________
+ function EnCadena($cadena,$subcadena,$swsensible = false) {
+ $i=0;
+ while (strlen($cadena)>=$i) {
+ unset($substring);
+ if ($swsensible) {
+ $subcadena=strtolower($subcadena);
+ $cadena=strtolower($cadena);
+ }
+ $substring=substr($cadena,$i,strlen($subcadena));
+ if ($substring==$subcadena) return$i;
+ $i++;
+ }
+ return -1;
+ }
+ //_____________________________________________________________________________________________
+ // Búsqueda binaria o dicotómica en una tabla y devuelve el índice del elemento buscado tabla de una dimension
+ //_____________________________________________________________________________________________
+ function busca_indicebinario($dato,$tabla,$cont){
+ if (empty($tabla)) return(-1);
+ $a=0;
+ $b=$cont-1;
+ do{
+ $p=round(($a+$b)/2,0);
+ if ($tabla[$p]==$dato)
+ return($p);
+
+ else{
+ if ($tabla[$p]<$dato){
+ $a=$p+1;
+ }
+ else
+ $b=$p-1;
+ }
+ }while($b>=$a);
+ return(-1);
+ }
+ //_____________________________________________________________________________________________
+ // Búsqueda binaria o dicotómica en una tabla y devuelve el índice del elemento buscado tabla de dos dimensiones
+ //_____________________________________________________________________________________________
+ function busca_indicebinariodual($dato,$tabla,$cont){
+ $a=0;
+ $b=$cont-1;
+ do{
+ $p=round(($a+$b)/2,0);
+ if ($tabla[$p][0]==$dato)
+ return($p);
+
+ else{
+ if ($tabla[$p][0]<$dato){
+ $a=$p+1;
+ }
+ else
+ $b=$p-1;
+ }
+ }while($b>=$a);
+ return(-1);
+ }
+ //___________________________________________________________________________________
+ //
+ // Crea un Array con las especificaciones de los parámetros de los comandos
+ //___________________________________________________________________________________
+ function CreaTablaParametros($cmd)
+ {
+ $cmd->texto="SELECT * FROM parametros ORDER BY nemonico";
+ $rs=new Recordset;
+ $rs->Comando=&$cmd;
+ if (!$rs->Abrir()) return(false); // Error al abrir recordset
+ $cont=0;
+ while (!$rs->EOF){
+ $nemo=$rs->campos["nemonico"];
+ $auxtabla_parametros="";
+ $auxtabla_parametros["nemonico"]=$nemo;
+ $auxtabla_parametros["descripcion"]=$rs->campos["descripcion"];
+ $auxtabla_parametros["nomidentificador"]=$rs->campos["nomidentificador"];
+ $auxtabla_parametros["nomtabla"]=$rs->campos["nomtabla"];
+ $auxtabla_parametros["nomliteral"]=$rs->campos["nomliteral"];
+ $auxtabla_parametros["tipopa"]=$rs->campos["tipopa"];
+ $auxtabla_parametros["visual"]=$rs->campos["visual"];
+ $tabla_parametros[$nemo]=$auxtabla_parametros;
+ $cont++;
+ $rs->Siguiente();
+ }
+ return($tabla_parametros);
+ }
+ //___________________________________________________________________________________
+ //
+ // Crea una tabla en memoria con los valores reales de los parámetros enviados
+ //
+ // Parámetros:
+ // $cmd: Objeto comando (Operativo)
+ // $parámetros: El formato de parámetros que viaje en las trama y que es el mismo
+ // que se almacenan en las tablas de procedimientos_acciones o acciones
+ //___________________________________________________________________________________
+
+ function ParametrosValor($cmd,$parametros,$tbParametrosValor,$ch="\r")
+ {
+ global $tbParametros;
+ $html="";
+ $auxprm=split($ch,$parametros);
+ for($i=0;$i<sizeof($auxprm);$i++){
+ list($nemonico,$valor)=split("=",$auxprm[$i]);
+ if(isset($tbParametros[$nemonico])){
+ if($tbParametros[$nemonico]["visual"]==1){
+ $tbParametrosValor[$nemonico]["descripcion"]=$tbParametros[$nemonico]["descripcion"];
+ switch($tbParametros[$nemonico]["tipopa"]){
+ case 0: // El valor lo toma directamente
+ $tbParametrosValor[$nemonico]["valor"]=$valor;
+ break;
+ case 1: // El valor lo toma de una tabla */
+ $tbParametrosValor[$nemonico]["valor"]=TomaDato($cmd,0,$tbParametros[$nemonico]["nomtabla"],$valor,$tbParametros[$nemonico]["nomidentificador"],$tbParametros[$nemonico]["nomliteral"]);
+ break;
+ case 2: // El parámetro es compuesto de otros parametros
+ $blkprm=split(chr(10),substr($auxprm[$i],4));
+ for($j=0;$j<sizeof($blkprm);$j++){
+ $tbSubParametrosValor=array();
+ ParametrosValor($cmd,$blkprm[$j],&$tbSubParametrosValor,chr(9));
+ for($k=0;$k<sizeof($tbSubParametrosValor);$k++){
+ $elem=current($tbSubParametrosValor);
+ $tbParametrosValor[$nemonico][$j]["valor"].=$elem["descripcion"];
+ $tbParametrosValor[$nemonico][$j]["valor"].=": ".$elem["valor"];
+ $tbParametrosValor[$nemonico][$j]["valor"].=", ";
+ next($tbSubParametrosValor);
+ }
+ }
+ break;
+ case 3: // El valor lo toma de una array
+ $tbcte=split($tbParametros[$nemonico]["nomidentificador"],$tbParametros[$nemonico]["nomliteral"]);
+ $tbParametrosValor[$nemonico]["valor"]=$tbcte[$valor];
+ break;
+ case 4: // El valor lo toma directamente pero está codificado con urlencode
+ $tbParametrosValor[$nemonico]["valor"]='<PRE>'.urldecode($valor).'</PRE>';
+
+ }
+ }
+ }
+ }
+ }
+ /*______________________________________________________________________
+ Redirecciona a la página de error
+ Parametros:
+ - Literal del error
+ _______________________________________________________________________*/
+ function RedireccionaError($herror){
+
+ $urlerror=urldecode($herror);
+ $wurl="../seguridad/logerror.php?herror=".$urlerror;
+ Header('Location: '.$wurl);
+ }
+
+ /*______________________________________________________________________
+ Elimina de la cadena de parametros, el parametro iph ( que debe ser el ultimo)
+ Parametros:
+ - cadena de parametros de un comando
+ Devuelve:
+ - la cadena sin el parametro iph y su valor
+ _______________________________________________________________________*/
+ function Sin_iph($cadena){
+
+ $pos=EnCadena($cadena,"iph=") ;
+ if($pos==-1) return($cadena);
+ return(substr($cadena,0,$pos));
+ }
+ /*______________________________________________________________________
+ Elimina de la cadena de parametros, el parametro mac ( que debe ser el ultimo)
+ Parametros:
+ - cadena de parametros de un comando
+ Devuelve:
+ - la cadena sin el parametro iph y su valor
+ _______________________________________________________________________*/
+ function Sin_mac($cadena){
+
+ $pos=EnCadena($cadena,"mac=") ;
+ if($pos==-1) return($cadena);
+ return(substr($cadena,0,$pos));
+ }
+ /*______________________________________________________________________
+ Formatea un campo númerico con los puntos de las unidades de millar
+ Parametros:
+ - cadena con el valor del campo
+ Devuelve:
+ - la cadena con los puntos de los miles
+ ________________________________________________________________________*/
+ function formatomiles($cadena){
+ $len=strlen($cadena);
+ $cadenafinal="";
+ $m=1;
+ for($i=$len-1;$i>=0;$i--){
+ $cadenafinal=substr($cadena,$i,1).$cadenafinal;
+ if($m%3==0 && $i>0){
+ $cadenafinal=".".$cadenafinal;
+ $m=0;
+ }
+ $m++;
+ }
+ return($cadenafinal);
+ }
+ /*______________________________________________________________________
+ Devuelve la url de la imagen y la descripción de un ámbito
+ Parametros:
+ - ambito: Identificador del ambito
+ - urlimg: Por referencia. Es donde se devuelve la url de la imagen
+ - textambito: Por referencia. Es donde se devuelve la descripción
+
+ Devuelve:
+ - Los dos parámetros pasados por referencia
+ ________________________________________________________________________*/
+ function tomaAmbito($ambito,$urlimg,$textambito)
+ {
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ switch($ambito){
+ case $AMBITO_CENTROS :
+ $urlimg='../images/iconos/centros.gif';
+ $textambito="Centros";
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito="Grupos de aulas";
+ break;
+ case $AMBITO_AULAS :
+ $urlimg='../images/iconos/aula.gif';
+ $textambito="Aulas";
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $urlimg='../images/iconos/carpeta.gif';
+ $textambito="Grupos de ordenadores";
+ break;
+ case $AMBITO_ORDENADORES :
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito="Ordenadores";
+ break;
+ default:
+ $urlimg='../images/iconos/ordenador.gif';
+ $textambito="Ordenadores";
+ break;
+ }
+ }
+ /*______________________________________________________________________
+
+ Devuelve la descripción de un ambito
+ Parametros:
+ - cmd: Objeto comando (Operativo)
+ - ambito: tipo de ambito
+ - idambito: Identificador del ambito
+ - textambito: Por referencia. Es donde se devuelve la descripción
+
+ Devuelve:
+ - Los dos parámetros pasados por referencia
+ ________________________________________________________________________*/
+
+ function tomaDescriAmbito($cmd,$ambito,$idambito,$textambito)
+ {
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ switch($ambito){
+ case $AMBITO_CENTROS :
+ $textambito=TomaDato($cmd,0,'centros',$idambito,'idcentro','nombrecentro');
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $textambito=TomaDato($cmd,0,'grupos',$idambito,'idgrupo','nombregrupo');
+ break;
+ case $AMBITO_AULAS :
+ $textambito=TomaDato($cmd,0,'aulas',$idambito,'idaula','nombreaula');
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $textambito=TomaDato($cmd,0,'gruposordenadores',$idambito,'idgrupo','nombregrupoordenador');
+ break;
+ case $AMBITO_ORDENADORES :
+ $textambito=TomaDato($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador');
+ break;
+ default:
+ $textambito;
+ }
+ }
+ /*______________________________________________________________________
+
+ Devuelve el código html de una etiqueta SELECT para un ámbito concreto
+ Parametros:
+ - cmd: Objeto comando (Operativo)
+ - ambito: tipo de ambito
+ - idambito: Identificador del ambito
+ - $idcentro: Centro donde pertenecen o 0 para todos
+ - $wdth: Ancho del desplegable
+ Devuelve:
+ - Los dos parámetros pasados por referencia
+ ________________________________________________________________________*/
+
+ function tomaSelectAmbito($cmd,$ambito,$idambito,$idcentro,$wdth)
+ {
+ global $AMBITO_CENTROS;
+ global $AMBITO_GRUPOSAULAS;
+ global $AMBITO_AULAS;
+ global $AMBITO_GRUPOSORDENADORES;
+ global $AMBITO_ORDENADORES;
+
+ switch($ambito){
+ case $AMBITO_CENTROS :
+ $selecHtml=HTMLSELECT($cmd,1,'centros',$idcentro,'idcentro','nombrecentro',$wdth);
+ break;
+ case $AMBITO_GRUPOSAULAS :
+ $selecHtml=HTMLSELECT($cmd,$idcentro,'grupos',$idambito,'idgrupo','nombregrupo',$wdth,"","","tipo=".$AMBITO_GRUPOSAULAS);
+ break;
+ case $AMBITO_AULAS :
+ $selecHtml=HTMLSELECT($cmd,$idcentro,'aulas',$idambito,'idaula','nombreaula',$wdth);
+ break;
+ case $AMBITO_GRUPOSORDENADORES :
+ $selecHtml=HTMLSELECT($cmd,0,'gruposordenadores',$idambito,'idgrupo ','nombregrupoordenador',$wdth);
+ break;
+ case $AMBITO_ORDENADORES :
+ $clsWhere=" idaula IN (SELECT idaula FROM aulas WHERE idcentro=".$idcentro.")";
+ $selecHtml=HTMLSELECT($cmd,0,'ordenadores',$idambito,'idordenador','nombreordenador',$wdth,"","",$clsWhere);
+ break;
+ default:
+ $selecHtml="";
+ }
+ return($selecHtml);
+ } \ No newline at end of file
diff --git a/admin/WebConsole/includes/constantes.php b/admin/WebConsole/includes/constantes.php
new file mode 100644
index 00000000..b069cd1b
--- /dev/null
+++ b/admin/WebConsole/includes/constantes.php
@@ -0,0 +1,172 @@
+<?php
+
+// Código de los ambitos para comandos
+$AMBITO_CENTROS=0x01;
+$AMBITO_GRUPOSAULAS=0x02;
+$AMBITO_AULAS=0x04;
+$AMBITO_GRUPOSORDENADORES=0x08;
+$AMBITO_ORDENADORES=0x10;
+
+
+// Código del resto de �bitos
+$AMBITO_IMAGENES=0x20;
+$AMBITO_PROCEDIMIENTOS=0x21;
+$AMBITO_TAREAS=0x22;
+$AMBITO_COMANDOS=0x23;
+
+$AMBITO_COMPONENTESHARD=0x24;
+$AMBITO_COMPONENTESSOFT=0x25;
+$AMBITO_PERFILESHARD=0x26;
+$AMBITO_PERFILESSOFT=0x27;
+$AMBITO_MENUS=0x28;
+$AMBITO_REPOSITORIOS=0x29;
+$AMBITO_RESERVAS=0x32;
+
+// Código del resto de ambitos( grupos )
+$AMBITO_GRUPOSIMAGENES=0x32;
+$AMBITO_GRUPOSPROCEDIMIENTOS=0x33;
+$AMBITO_GRUPOSTAREAS=0x34;
+
+$AMBITO_GRUPOSCOMPONENTESHARD=0x36;
+$AMBITO_GRUPOSCOMPONENTESSOFT=0x37;
+$AMBITO_GRUPOSPERFILESHARD=0x38;
+$AMBITO_GRUPOSPERFILESSOFT=0x39;
+$AMBITO_GRUPOSMENUS=0x40;
+$AMBITO_GRUPOSREPOSITORIOS=0x41;
+$AMBITO_GRUPOSRESERVAS=0x44;
+$AMBITO_GRUPOSENTIDADES=0x45;
+
+// Literales de los ambitos
+$LITAMBITO_CENTROS="centros";
+$LITAMBITO_AULAS="aulas";
+$LITAMBITO_ORDENADORES="ordenadores";
+$LITAMBITO_IMAGENES="imagenes";
+$LITAMBITO_PROCEDIMIENTOS="procedimientos";
+$LITAMBITO_TAREAS="tareas";
+
+$LITAMBITO_TIPOHARDWARES="tipohardwares";
+$LITAMBITO_COMPONENTESHARD="componeneteshard";
+$LITAMBITO_COMPONENTESSOFT="componenetessoft";
+$LITAMBITO_PERFILESHARD="perfileshard";
+$LITAMBITO_PERFILESSOFT="perfilessoft";
+$LITAMBITO_MENUS="menus";
+$LITAMBITO_REPOSITORIOS="repositorios";
+
+
+$LITAMBITO_RESERVAS="reservas";
+$LITAMBITO_ADMINISTRACION="administracion";
+$LITAMBITO_UNIVERSIDADES="universidades";
+$LITAMBITO_ENTIDADES="entidades";
+$LITAMBITO_USUARIOS="usuarios";
+// Literales de los ambitos ( Grupos )
+$LITAMBITO_GRUPOSAULAS="gruposaulas";
+$LITAMBITO_GRUPOSORDENADORES="gruposordenadores";
+$LITAMBITO_GRUPOSIMAGENES="gruposimagenes";
+$LITAMBITO_GRUPOSPROCEDIMIENTOS="gruposprocedimientos";
+$LITAMBITO_GRUPOSTAREAS="grupostareas";
+
+$LITAMBITO_GRUPOSCOMPONENTESHARD="gruposcomponenteshard";
+$LITAMBITO_GRUPOSCOMPONENTESSOFT="gruposcomponentessoft";
+$LITAMBITO_GRUPOSPERFILESHARD="gruposperfileshard";
+$LITAMBITO_GRUPOSPERFILESSOFT="gruposperfilessoft";
+$LITAMBITO_GRUPOSMENUS="gruposmenus";
+$LITAMBITO_GRUPOSREPOSITORIOS="gruporepositorio";
+$LITAMBITO_GRUPOSRESERVAS="gruposreservas";
+$LITAMBITO_GRUPOSENTIDADES="gruposentidades";
+
+// Código de los tipo de acciones
+
+$EJECUCION_COMANDO=0x0001;
+$EJECUCION_PROCEDIMIENTO=0x0002;
+$EJECUCION_TAREA=0x0003;
+$EJECUCION_RESERVA=0x0004;
+$EJECUCION_AUTOEXEC=0x0005;
+
+// Código de los tipo de notificadores
+$NOTIFICADOR_ORDENADOR=0x0001;
+$NOTIFICADOR_COMANDO=0x0002;
+$NOTIFICADOR_TAREA=0x0003;
+
+// Categorias de sucesos
+$PROCESOS=0x01;
+$INFORMACIONES=0x02;
+$NOTIFICACIONES=0x03;
+
+// Código de los tipos de mensajes
+$MSG_COMANDO=0x01; // Mensaje del tipo comando
+$MSG_NOTIFICACION=0x02; // Respuesta a la ejecución un comando
+$MSG_PETICION=0x03; // Petición de cualquier actuación
+$MSG_RESPUESTA=0x04; // Respuesta a una petición
+$MSG_INFORMACION=0x05; // Envío de cualquier información sin espera de confirmación o respuesta
+
+
+$RESPUESTA_EJECUCION_COMANDO=0x0001;
+$RESPUESTA_EJECUCION_TAREA=0x0002;
+$RESPUESTA_EJECUCION_TRABAJO=0x0003;
+$RESPUESTA_EJECUCION_PETICION=0x0004;
+
+// Código de los tipos de items de los mens de clientes
+$ITEM_PUBLICO=0x0001;
+$ITEM_PRIVADO=0x0002;
+
+//Codificaci� de los resultados de las acciones
+
+$ACCION_SINRESULTADO=0; // Sin resultado
+$ACCION_EXITOSA=1; // Finalizada con éxito
+$ACCION_FALLIDA=2; // Finalizada con errores
+$LITACCION_FALLIDA="Acción CANCELADA manualmente";
+$LITACCION_EXITOSA="Acción TERMINADA manualmente";
+
+//Codificaci� de los estados de las acciones
+
+$ACCION_INICIADA=1; // Acci� activa
+$ACCION_DETENIDA=2; // Acci� momentanemente parada
+$ACCION_FINALIZADA=3; // Acci� finalizada
+$ACCION_PROGRAMADA=4; // Acción programada
+
+// Nombrey path del fichero de intercambio de parametros entre páginas
+// Ha sido necesario porque cuando los parametros enviados execed�n de cierta longitud
+// ocurria una excepci� al llamar a la p�ina por GET.
+
+$fileparam="../includes/PRM_".$usuario;
+$pathfileco="/opt/opengnsys/log/clients"; // Path del fichero de eco de consola
+
+// M�ima longitud de los parametros enviados entre páginas
+$MAXLONPRM=16000;
+$MAXLONVISUSCRIPT =1024; // longitud Maxima de visualizaci� del script en las colas de acciones
+$MAXSIZEFILERBC=100000; // longitud Maxima de los fichero de script enviados como comandos ejecuci� de script
+
+$LONHEXPRM=5; // Longitud de la cadena hexdecimal que contiene la longitud total de la trama
+$LONCABECERA=16; // Longitud de la cabecera de las tramas
+$LONBLK=512; // Longitud de los paquetes de tramas leidos cada vez
+
+$tbTiposParticiones="";
+$tbTiposParticiones[0]="EMPTY";
+$tbTiposParticiones[1]="BIGDOS";
+$tbTiposParticiones[2]="FAT32";
+$tbTiposParticiones[3]="NTFS";
+$tbTiposParticiones[4]="EXT2";
+$tbTiposParticiones[5]="EXT3";
+$tbTiposParticiones[6]="EXT4";
+$tbTiposParticiones[7]="LINUX-SWAP";
+$tbTiposParticiones[8]="CACHE";
+$tbTiposParticiones[9]="VFAT";
+$tbTiposParticiones[10]="UNKNOW";
+
+
+//Codificaci� de los estados de las reservas
+$RESERVA_CONFIRMADA=1; // Reserva confirmada
+$RESERVA_PENDIENTE=2; // Reserva pendiente
+$RESERVA_DENEGADA=3; // Reserva denegada
+
+$SUPERADMINISTRADOR=1; // administrador de la Aplicación
+$ADMINISTRADOR=2; // administrador de Centro
+$OPERADOR=3; // operador de aula
+
+$msk_sysFi=0x01;
+$msk_nombreSO=0x02;
+$msk_tamano=0x04;
+$msk_imagen=0x08;
+$msk_perfil=0x10;
+
+?>
diff --git a/admin/WebConsole/includes/ctrlacc.php b/admin/WebConsole/includes/ctrlacc.php
new file mode 100644
index 00000000..cf3c830c
--- /dev/null
+++ b/admin/WebConsole/includes/ctrlacc.php
@@ -0,0 +1,48 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación: Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: controlacceso.php
+// Descripción :Este fichero implementa el control de acceso a la Aplicación en todas las páginas
+// *************************************************************************************************************************************************
+session_start(); // Activa variables de sesi�
+$idcentro="";
+$nombrecentro="";
+$usuario="";
+$idtipousuario=0;
+$idioma="";
+$cadenaconexion="";
+$servidorhidra="";
+$hidraport="";
+$pagerror="";
+$urlacceso="";
+
+if (isset($_SESSION["widcentro"])) $idcentro = $_SESSION["widcentro"];
+if (isset($_SESSION["wnombrecentro"])) $nombrecentro = $_SESSION["wnombrecentro"];
+if (isset($_SESSION["wusuario"])) $usuario = $_SESSION["wusuario"];
+if (isset($_SESSION["widtipousuario"])) $idtipousuario = $_SESSION["widtipousuario"];
+if (isset($_SESSION["widioma"])) $idioma = $_SESSION["widioma"];
+if (isset($_SESSION["wcadenaconexion"])) $cadenaconexion = $_SESSION["wcadenaconexion"];
+if (isset($_SESSION["wservidorhidra"])) $servidorhidra = $_SESSION["wservidorhidra"];
+if (isset($_SESSION["whidraport"])) $hidraport = $_SESSION["whidraport"];
+if (isset($_SESSION["wpagerror"])) $pagerror = $_SESSION["wpagerror"];
+if (isset($_SESSION["wurlacceso"])) $urlacceso = $_SESSION["wurlacceso"];
+/*
+echo "<BR>Cadena=".$_SESSION["wcadenaconexion"];
+echo "<BR>servidorhidra=".$_SESSION["wservidorhidra"];
+echo "<BR>hidraport=".$_SESSION["whidraport"];
+echo "<BR>usuario=".$_SESSION["wusuario"];
+echo "<BR>idtipousuario=".$_SESSION["widtipousuario"];
+echo "<BR>urlacceso=".$_SESSION["wurlacceso"];
+*/
+// Comprueba el valor de las variables de sesión
+$swacc=empty($cadenaconexion) || empty($servidorhidra) || empty($hidraport) || empty($usuario) || empty($idtipousuario);
+
+//===============================================================================================
+if ($swacc){ // Error en alguna variable de sesión
+ die("***Error de acceso");
+}
+//===============================================================================================
+?>
diff --git a/admin/WebConsole/includes/cuestionacciones.php b/admin/WebConsole/includes/cuestionacciones.php
new file mode 100644
index 00000000..5cb87b8c
--- /dev/null
+++ b/admin/WebConsole/includes/cuestionacciones.php
@@ -0,0 +1,79 @@
+<?
+/* -------------------------------------------------------------------------------------------
+ Inserta, modifica o elimina un grupo de servidores dhcp de la base de datos
+---------------------------------------------------------------------------------------------*/
+function CuestionAcciones($cmd,$shidra,$parametros){
+
+ global $sw_ejya;
+ global $sw_seguimiento;
+
+ global $sw_mktarea;
+ global $nwidtarea;
+ global $nwdescritarea;
+
+ global $sw_mkprocedimiento;
+ global $nwidprocedimiento;
+ global $nwdescriprocedimiento;
+
+ global $identificador;
+
+ if($sw_ejya=='true' ){ // switch de ejecución inmediata ----------------------------------------------------------------------
+ if($sw_seguimiento=='true' ){ // switch de ejecución con seguimiento
+ $cmd->texto="INSERT INTO acciones (tipoaccion,idtipoaccion,cateaccion,ambito,idambito,fechahorareg,estado,resultado,idcentro,parametros,accionid,idnotificador) VALUES (@tipoaccion,@idtipoaccion,@cateaccion,@ambito,@idambito,@fechahorareg,@estado,@resultado,@idcentro,@parametros,0,0)";
+ $resul=$cmd->Ejecutar();
+ if($resul){
+ $parametros.="ids=".$cmd->Autonumerico().chr(13);
+ }
+ }
+ // Envio al servidor hidra
+ if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra
+ $shidra->envia_comando($parametros);
+ $shidra->desconectar();
+ }
+ else
+ return(false);
+ }
+ // Fin ejecución inmediata -------------------------------------------------------------------------------------------------------------
+
+ if($sw_mkprocedimiento=='true'){ // switch de creación o inclusión en procedimiento ---------------------------------------------------------
+ if($nwidprocedimiento==0){
+ $cmd->ParamSetValor("@descripcion",$nwdescriprocedimiento,0);
+ $cmd->texto="INSERT INTO procedimientos(descripcion,idcentro) VALUES (@descripcion,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ if($resul)
+ $nwidprocedimiento=$cmd->Autonumerico();
+ else
+ return(false);
+ }
+ if($nwidprocedimiento>0){ // inclusión en procedimiento existente
+ $cmd->ParamSetValor("@idprocedimiento",$nwidprocedimiento,1);
+ $cmd->ParamSetValor("@idcomando",$identificador,1);
+ $cmd->ParamSetValor("@parametros",Sin_iph($parametros),0);
+ $cmd->texto="INSERT INTO procedimientos_comandos(idprocedimiento,orden,idcomando,parametros) VALUES (@idprocedimiento,0,@idcomando,@parametros)";
+ $resul=$cmd->Ejecutar();
+ $cmd->ParamSetValor("@parametros",$parametros);
+ if(!$resul) return(false);
+ }
+ }
+
+ if($sw_mktarea=='true'){ // switch de creación o inclusión en tarea -----------------------------------------------------------
+ if($nwidtarea==0){ // Nueva tarea
+ $cmd->ParamSetValor("@descripcion",$nwdescritarea);
+ $cmd->texto="INSERT INTO tareas(descripcion,idcentro) VALUES (@descripcion,@idcentro)";
+ $resul=$cmd->Ejecutar();
+ if($resul)
+ $nwidtarea=$cmd->Autonumerico();
+ else
+ return(false);
+ }
+ if($nwidtarea>0){ // inclusión en tarea existente
+ $cmd->ParamSetValor("@idtarea",$nwidtarea);
+ $cmd->ParamSetValor("@idcomando",$identificador);
+ $cmd->texto="INSERT INTO tareas_comandos(idtarea,orden,idcomando,ambito,idambito,parametros) VALUES (@idtarea,0,@idcomando,@ambito,@idambito,@parametros)";
+ $resul=$cmd->Ejecutar();
+ if(!$resul) return(false);
+ }
+ }
+ return(true);
+}
+ ?>
diff --git a/admin/WebConsole/includes/cuestionaccionescab.php b/admin/WebConsole/includes/cuestionaccionescab.php
new file mode 100644
index 00000000..e9523eba
--- /dev/null
+++ b/admin/WebConsole/includes/cuestionaccionescab.php
@@ -0,0 +1,23 @@
+<?
+$sw_ejya="";
+$sw_seguimiento="";
+
+$sw_mktarea="";
+$nwidtarea="";
+$nwdescritarea="";
+
+$sw_mkprocedimiento="";
+$nwidprocedimiento="";
+$nwdescriprocedimiento="";
+
+if (isset($_POST["sw_ejya"])) $sw_ejya=$_POST["sw_ejya"];
+if (isset($_POST["sw_seguimiento"])) $sw_seguimiento=$_POST["sw_seguimiento"];
+
+if (isset($_POST["sw_mktarea"])) $sw_mktarea=$_POST["sw_mktarea"];
+if (isset($_POST["nwidtarea"])) $nwidtarea=$_POST["nwidtarea"];
+if (isset($_POST["nwdescritarea"])) $nwdescritarea=$_POST["nwdescritarea"];
+
+if (isset($_POST["sw_mkprocedimiento"])) $sw_mkprocedimiento=$_POST["sw_mkprocedimiento"];
+if (isset($_POST["nwidprocedimiento"])) $nwidprocedimiento=$_POST["nwidprocedimiento"];
+if (isset($_POST["nwdescriprocedimiento"])) $nwdescriprocedimiento=$_POST["nwdescriprocedimiento"];
+?>
diff --git a/admin/WebConsole/includes/opciones.php b/admin/WebConsole/includes/opciones.php
new file mode 100644
index 00000000..fe1740f3
--- /dev/null
+++ b/admin/WebConsole/includes/opciones.php
@@ -0,0 +1,16 @@
+<?
+// *************************************************************************************************************************************************
+// Aplicación WEB: ogAdmWebCon.
+// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
+// Fecha Creación:Agosto-2010
+// Fecha Última modificación: Agosto-2010
+// Nombre del fichero: opciones.php
+// Descripción :
+// Variables de ámbito común
+// *************************************************************************************************************************************************
+$op_alta=1;
+$op_modificacion=2;
+$op_eliminacion=3;
+$op_movida=4;
+$op_ejecucion=5;
+?> \ No newline at end of file
diff --git a/admin/WebConsole/includes/opcionesbotones.php b/admin/WebConsole/includes/opcionesbotones.php
new file mode 100644
index 00000000..0fabefa4
--- /dev/null
+++ b/admin/WebConsole/includes/opcionesbotones.php
@@ -0,0 +1,7 @@
+<TABLE align=center>
+ <TR>
+ <TD><A href=#><IMG border=0 src="../images/boton_cancelar.gif" onclick="javascript:cancelar()"></A></TD>
+ <TD width=20></TD>
+ <TD><A href=#><IMG border=0 src="../images/boton_confirmar.gif" onclick="javascript:confirmar()" ></A></TD>
+ </TR>
+</TABLE>
diff --git a/admin/WebConsole/includes/opcionesbotonesop.php b/admin/WebConsole/includes/opcionesbotonesop.php
new file mode 100644
index 00000000..d86755d7
--- /dev/null
+++ b/admin/WebConsole/includes/opcionesbotonesop.php
@@ -0,0 +1,9 @@
+<?
+echo '<TABLE align=center>';
+echo '<TR>';
+echo '<TD><A href=#><IMG border=0 src="../images/boton_cancelar.gif" onclick="cancelar()"></A></TD>';
+echo '<TD width=20></TD>';
+echo '<TD><A href=#><IMG border=0 src="../images/boton_confirmar.gif" onclick="confirmar('.$opcion.')" ></A></TD>';
+echo '</TR>';
+echo '</TABLE>';
+?>