diff options
author | alonso <alonso@us.es> | 2009-11-04 11:04:54 +0000 |
---|---|---|
committer | alonso <alonso@us.es> | 2009-11-04 11:04:54 +0000 |
commit | 7b3bc4abe41dff4402ee433a7eab47c2b36c47bc (patch) | |
tree | 8830f3b0fbec41b03f207273eb6f5ff90eaa09ce /admin/WebConsole/clases | |
parent | 3acdc93388ab0907242a9a074df54e1cc93b7908 (diff) |
git-svn-id: https://opengnsys.es/svn/trunk@481 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'admin/WebConsole/clases')
-rw-r--r-- | admin/WebConsole/clases/AdoPhp.php | 648 | ||||
-rw-r--r-- | admin/WebConsole/clases/ArbolVistaXML.php | 272 | ||||
-rw-r--r-- | admin/WebConsole/clases/EncripDescrip.php | 56 | ||||
-rw-r--r-- | admin/WebConsole/clases/MenuContextual.php | 164 | ||||
-rw-r--r-- | admin/WebConsole/clases/SockHidra.php | 120 | ||||
-rw-r--r-- | admin/WebConsole/clases/XmlPhp.php | 285 | ||||
-rw-r--r-- | admin/WebConsole/clases/jscripts/ArbolVistaXML.js | 565 | ||||
-rw-r--r-- | admin/WebConsole/clases/jscripts/MenuContextual.js | 395 |
8 files changed, 0 insertions, 2505 deletions
diff --git a/admin/WebConsole/clases/AdoPhp.php b/admin/WebConsole/clases/AdoPhp.php deleted file mode 100644 index 6f75c120..00000000 --- a/admin/WebConsole/clases/AdoPhp.php +++ /dev/null @@ -1,648 +0,0 @@ -<?php -/*================================================================================ -Clase para conectar con una base de datos. - -Especificaciones: - - Estado de la conexión($estado) - 0: No conectado - 1: Conectado - 2: Se est�intentando conectar - -================================================================================*/ - -class Conexion{ - var $basedatos; // Base de datos - var $servidor; // Servidor de Base de datos - var $usuario; // Nombre de usuario - var $password; // Clave de usuario - var $controlador; // Controlador - var $estado; // Estado de la conexion - var $proveedor; // Proveedor de BD - var $error; // Colecci� de errores ocurridos durante el proceso (C�igo de error) - var $ultimoerror; // Ultimo error detectado - var $inderror; // Nmero de errores ocurridos durante el proceso - var $msgerrores=array( - "No se ha producido ningn error", - "001 : conexiónError - La conexion no se pudo establecer", - "002 : conexiónError - Se estableci� la conexióncon el servidor pero la base de datos no responde", - "003 : conexiónError - No se ha podido cerrar la actual conexi�", - "004 : conexiónError - El objeto est�ocupado intentando establecer una conexiónanterior", - "005 : conexiónError - La conexiónya est�cerrada", - "006 : conexiónError - No se ha especificado ningn servidor de base de datos", - "007 : conexiónError - No se ha especificado ningn usuario de la base de datos", - "008 : conexiónError - No se ha especificado password de usuario", - "009 : conexiónError - No se ha especificado ninguna base de datos", - "010 : conexiónError - No se ha especificado ningn proveedor de bases de datos", - ); - /*--------------------------------------------------------------------------------------------*/ - function Conexion(){ // Constructor de la clase - $this->inderror=0; - $this->ultimoerror=0; - $this->estado=0; - } - /* ------------------------------------------------------------------------------------------- - Adquiere o actualiza los datos necesarias para establecer conexiones - - Par�etros de entrada: - servidor: Servidor donde se ubica la base de datos - usuario : Un usuario con acceso al servidor - passwor : Clave de usuario - basedato: Base de datos a la se quiere acceder - proveedor: Proveedor de Base de datos - - Devuelve : - true : Si los datos aportadospara establecer conexiones son correctos - false: En caso contrario - - En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido - ----------------------------------------------------------------------------------------------*/ - function CadenaConexion($servidor,$usuario,$password,$basedatos,$proveedor){ - $this->servidor=$servidor; - $this->usuario=$usuario; - $this->password=$password; - $this->basedatos=$basedatos; - $this->proveedor=$proveedor; - if (!$this->_cadena_conexion()) return(false); else return(true); - } - /* ------------------------------------------------------------------------------------------- - Abre una conexión - - Devuelve : - true : Si la apertura de la conexiónha sido satisfactoria - false: En caso contrario - - En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido - ----------------------------------------------------------------------------------------------*/ - function Abrir(){ - $this->inderror=-1; // Inicializar contador de errores - $this->ultimoerror=-1; - $MAXIMOS_INTENTOS_DE_CONECCION=10; - if (!$this->_cadena_conexion()) return(false); // Comprueba si los datos necesarios para conexiones se han aportado - switch ($this->estado) { - case 1: // Existe actualmente una conexiónabierta que se sustituir�por la nueva - if (mysql_close($this->controlador)){ // Se cierra la conexion actual - $this->estado=0; - $intentos_de_conexion=0; - while(true){ - $intentos_de_conexion++; - $resul=($this->_nueva_conexion()); - if ($resul || $intentos_de_conexion>$MAXIMOS_INTENTOS_DE_CONECCION) return($resul); - sleep(1); // Espera 1 segundo para intentar la conexiónde nuevo - } - } - else{ // Error al cerrar la conexi� - $this->error[$this->inderror++]=3; - $this->ultimoerror=3; - return(false); - } - break; - case 2: // Actualmente est�objeto est�ocupado intentando establecer otra conexi� - $this->error[$this->inderror++]=4; - $this->ultimoerror=4; - return(false); - break; - default : // No existe actualmente ninguna conexiónabierta, se abrir�una nueva - $intentos_de_conexion=0; - while(true){ - $intentos_de_conexion++; - $resul=($this->_nueva_conexion()); - if ($resul || $intentos_de_conexion>$MAXIMOS_INTENTOS_DE_CONECCION) return($resul); - sleep(1); // Espera 1 segundo para intentar la conexiónde nuevo - } - } - } - /* ------------------------------------------------------------------------------------------- - Cierra una conexión - - Devuelve : - true : Si la conexiónse ha cerrado satisfactoriamente - false: En caso contrario - - En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido - ----------------------------------------------------------------------------------------------*/ - function Cerrar(){ - $this->inderror=-1; // Inicializar contador de errores - $this->ultimoerror=-1; - switch ($this->estado) { - case 1: // Actualmente la conexion est�abierta - if (mysql_close($this->controlador)){ // Se cierra la conexion actual - $this->estado=0; - $this->error[$this->inderror++]=0; - $this->ultimoerror=0; - return(true); - } - else{ // Error al cerrar la conexi� - $this->error[$this->inderror++]=3; - $this->ultimoerror=3; - return(false); - } - break; - case 2: // Actualmente est�objeto est�ocupado intentando establecer otra conexi� - $this->error[$this->inderror++]=4; - $this->ultimoerror=4; - return(false); - break; - - default : // Actualmente la conexiónest�ya cerrada - $this->error[$this->inderror++]=5; - $this->ultimoerror=5; - return(false); - } - } - /* ------------------------------------------------------------------------------------------- - Establece una nueva conexi�. Este m�odo es privado y s�o lo puede ejecutar la propia - clase desde el m�odo pblico Abrir. - ----------------------------------------------------------------------------------------------*/ - function _nueva_conexion(){ - $this->estado=2;// Intenta la conexion - if ($this->controlador=mysql_connect($this->servidor,$this->usuario,$this->password)){// Conexion O.K. - $this->estado=1; // La conexion con el servidor se estableci� - if (mysql_select_db($this->basedatos, $this->controlador)){// Base datos O.K. - $this->error[$this->inderror++]=0; - $this->ultimoerror=0; - return(true); - } - else{ // Problemas con la base de datos - $this->error[$this->inderror++]=2; - $this->ultimoerror=2; - if (mysql_close ($this->controlador)) $this->estado=0; // Se cierra la conexion - return(false); - } - } - else{ // Problemas con la conexion - $this->estado=0; - $this->error[$this->inderror++]=1; - $this->ultimoerror=1; - return(false); - } - } - /* ------------------------------------------------------------------------------------------- - Revisa y detecta las condiciones que deben cumplir los datos necesarios para establecer - conexiones - - Devuelve : - true : Si los datos aportados son correctos - false: Si algn dato NO ha sido aportado o es incorrecto - - Este m�odo es privado y s�o lo ejecutan m�odos pblicos de la propia clase - ----------------------------------------------------------------------------------------------*/ - function _cadena_conexion(){ - - if ($this->servidor==null){ - $this->error[$this->inderror++]=6; // Servidor no establecido - $this->ultimoerror=6; - return(false); - } - if ($this->usuario==null){ - $this->error[$this->inderror++]=7;// usuario no establecido - $this->ultimoerror=7; - return(false); - } - if ($this->password==null){ - $this->error[$this->inderror++]=8; // password no establecido - $this->ultimoerror=8; - return(false); - } - if ($this->basedatos==null){ - $this->error[$this->inderror++]=9; // base de datos no establecido - $this->ultimoerror=9; - return(false); - } - if ($this->proveedor==null){ - $this->error[$this->inderror++]=10; // proveedor no establecido - $this->ultimoerror=10; - return(false); - } - $this->error[$this->inderror++]=0; // Datos de conexióncorrectos - $this->ultimoerror=0; - return(true); - } - /* ------------------------------------------------------------------------------------------- - Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior. - ----------------------------------------------------------------------------------------------*/ - function UltimoError(){ - return($this->ultimoerror); - } - /* ------------------------------------------------------------------------------------------- - Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior. - ----------------------------------------------------------------------------------------------*/ - function DescripUltimoError(){ - return($this->msgerrores[$this->ultimoerror]); - } -} -/*========================================================================================= - Clase para usarla con la clase comando. - - Especificaciones: - - Esta clase tiene dos propiedades que definen su contenido - nombre=nombre del parametro - valor = valor de dicho par�etro - tipo = tipo de parametro: - 0: El valor del par�etro debe ir encerrado entre comillas simples - 1: El valor del par�etro no necesita ir entre comillas simples -========================================================================================*/ -class parametro{ - var $nombre; - var $valor; - var $tipo; - /*--------------------------------------------------------------------------------------------*/ - function parametro($nombre="SinNombre",$valor="",$tipo="0"){ // Constructor de la clase - $this->SetParametro($nombre,$valor,$tipo); - } - /* ------------------------------------------------------------------------------------------- - Modifica los valores de las propiedades de la clase - ----------------------------------------------------------------------------------------------*/ - function SetParametro($nombre,$valor,$tipo){ - $this->nombre=$nombre; - $this->valor=$valor; - $this->tipo=$tipo; - if($tipo==1 && empty($valor)) $this->valor=0; - } -} -/*========================================================================================== - Clase para manipular bases de datos a traves de una conexiónprevia. - - Especificaciones: - - Las sentencias SQL pueden contener par�etros que pueden ser sustituidos por el valor - de los objetos par�etro. Estos par�etros tendr� la forma:@nombre_del_parametro -==================================================================================================*/ -class Comando{ - var $texto; - var $Conexion; - var $parametros=array(); - var $Recordset; - var $resul; - var $error; // Error - var $ultimoerror; // Ultimo error detectado - var $inderror; // Contador de errores - var $msgerrores=array( - "No se ha producido ningn error", - "001 : Comando Error - No se ha establecido el texto del comando", - "002 : Comando Error - No se ha establecido la conexióndel comando", - "003 : Comando Error - No se ha abierto la conexi�", - "004 : Comando Error - La sentencia SQl del comando no es correcta", - "005 : Comando Error - No se ha podido recuperar el valor @@identity de la ltima clave insertada", - ); - /*--------------------------------------------------------------------------------------------*/ - function Comando(){ // Constructor de la clase - $this->inderror=0; - $this->ultimoerror=0; - $this->Recordset=new Recordset; - } - /* ------------------------------------------------------------------------------------------- - Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior. - ----------------------------------------------------------------------------------------------*/ - function UltimoError(){ - return($this->ultimoerror); - } - /* ------------------------------------------------------------------------------------------- - Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior. - ----------------------------------------------------------------------------------------------*/ - function DescripUltimoError(){ - return($this->msgerrores[$this->ultimoerror]); - } - /* ------------------------------------------------------------------------------------------- - A�de un par�etro a la colecci� de parametros. La matriz que implementa la colecci� - es una matriz asociativa cuyo indice asociativo es el nombre del par�etro - - Par�etros de entrada: - objparam: Un objeto parametro - ---------------------------------------------------------------------------------------------*/ - function AddParametro($objparam){ - $tbparametro["nombre"]=$objparam->nombre; - $tbparametro["valor"]=$objparam->valor; - $tbparametro["tipo"]=$objparam->tipo; - $this->parametros[]=$tbparametro; - } - /* ------------------------------------------------------------------------------------------- - A�de un par�etro a la colecci� de parametros. La matriz que implementa la colecci� - es una matriz asociativa cuyo indice asociativo es el del par�etro - - Par�etros de entrada: - nombre: El nombre del par�etro - valor : El valor del par�etro - tipo = tipo de parametro: - 0: El valor del par�etro debe ir encerrado entre comillas simples - 1: El valor del par�etro no necesita ir entre comillas simples - - - ---------------------------------------------------------------------------------------------*/ - function CreaParametro($nombre,$valor,$tipo){ - for($i=0;$i<sizeof($this->parametros);$i++){ - if($this->parametros[$i]["nombre"]==$nombre){ - $this->parametros[$i]["valor"]=$valor; - return; - } - } - $p = new parametro($nombre,$valor,$tipo); - $this->AddParametro($p); - } - - /* ------------------------------------------------------------------------------------------- - Sustituye el valor de un par�etro existente por otro - Par�etros de entrada: - nombre: El nombre del par�etro - valor : El nuevo valor del par�etro - ---------------------------------------------------------------------------------------------*/ - function ParamSetValor($nombre,$valor){ - for($i=0;$i<sizeof($this->parametros);$i++){ - if($this->parametros[$i]["nombre"]==$nombre) - $this->parametros[$i]["valor"]=$valor; - } - } - /* ------------------------------------------------------------------------------------------- - Establece la conexiónque se usar�para ejecutar las acciones pertinentes - - Par�etros de entrada: - objconexion: Un objeto conexion - ---------------------------------------------------------------------------------------------*/ - function EstableceConexion($objconexion){ - $this->Conexion= $objconexion; - } - /* ------------------------------------------------------------------------------------------- - Establece la conexiónque se usar�para ejecutar las acciones pertinentes - - Par�etros de entrada: - textocomando: Un texto con la sentencia SQL (Puede contener par�etros) - ---------------------------------------------------------------------------------------------*/ - function EstableceTexto($textocomando){ - $this->texto=$textocomando; - } - /* ------------------------------------------------------------------------------------------- - Sustituye el valor de los parametros en la expresi� que forma el texto del Comando - ---------------------------------------------------------------------------------------------*/ - function Traduce(){ - $execomando=$this->texto; - if (sizeof($this->parametros)>0){ // Hay par�etros que sustituir - foreach($this->parametros as $parametro){ - if ($parametro["tipo"]==0) // Tipo alfanum�ico - $execomando=str_replace($parametro["nombre"],"'".$parametro["valor"]."'",$execomando); - else - $execomando=str_replace($parametro["nombre"],$parametro["valor"],$execomando); - } - } - $this->texto=$execomando; - } - /* ------------------------------------------------------------------------------------------- - Ejecuta la sentencia SQL contenida en la propiedad texto - ---------------------------------------------------------------------------------------------*/ - function Ejecutar(){ - $this->inderror=-1; // Inicializar contador de errores - $this->ultimoerror=-1; - if ($this->texto==null){ - $this->error[$this->inderror++]=1; // Texto no especificado - $this->ultimoerror=1; - return(false); - } - else{ - if ($this->Conexion==null){ - $this->error[$this->inderror++]=2; // conexiónNO establecida - $this->ultimoerror=2; - return(false); - } - else{ - if ($this->Conexion->estado==0){ - $this->error[$this->inderror++]=3; // conexiónNO abierta - $this->ultimoerror=3; - return(false); - } - } - } - $this->Traduce(); - if (!$this->resul=mysql_query($this->texto,$this->Conexion->controlador)){ - $this->error[$this->inderror++]=4; // Error en la sentencia SQL del comando - $this->ultimoerror=4; - return(false); - } - if (stristr($this->texto,"select")){ - $this->Recordset->Inicializar(); - $this->Recordset->filas=$this->resul; - $this->Recordset->numerodecampos=mysql_num_fields($this->Recordset->filas); - $this->Recordset->numeroderegistros=mysql_num_rows($this->Recordset->filas); - if ($this->Recordset->numeroderegistros>0){ - $this->Recordset->BOF=false; - $this->Recordset->EOF=false; - $this->Recordset->campos=mysql_fetch_array($this->Recordset->filas); - } - } - - $this->error[$this->inderror++]=0; // Comando ejecutado correctamante - $this->ultimoerror=0; - return(true); - } - /* ------------------------------------------------------------------------------------------- - Esta funci� recupera el ltimo nmero asignado a una clave autonum�ica de una tabla - ---------------------------------------------------------------------------------------------*/ - function Autonumerico(){ - $ulreg=mysql_insert_id(); - return($ulreg); - } -} -/*========================================================================================= - Clase para consultar tablas y vistas de una base de datos. - - Especificaciones: - - Estado del recordset ($estado) - 0: Cerrado - 1: Abierto -=========================================================================================*/ -class Recordset{ - var $Comando; - var $filas= array(); - var $BOF,$EOF,$estado; - var $campos; - var $numeroderegistros,$numerodecampos,$posicion; - - var $error; // Error - var $ultimoerror; // Ultimo error detectado - var $inderror; // Contador de errores - var $msgerrores=array( - "No se ha producido ningn error", - "001 : Recordset Error - Comando no establecido", - "002 : Recordset Error - No se ha establecido la conexióndel comando", - "003 : Recordset Error - No se ha abierto la conexi�", - "004 : Recordset Error - No se pudo abrir la consulta", - "005 : Recordset Error - La sentencia SQl del comando no contiene la clausula SELECT", - "006 : Recordset Error - No se puede liberar la consulta", - ); - /*--------------------------------------------------------------------------------------------*/ - function Recordset(){ // Constructor de la clase - $this->Inicializar(); - } - /* ------------------------------------------------------------------------------------------- - Inicializa propiedades de las clase - ----------------------------------------------------------------------------------------------*/ - function Inicializar(){ - $this->BOF=true; - $this->EOF=true; - $this->posicion=0; - $this->numeroderegistros=0; - $this->numerodecampos=0; - $this->estado=0; - } - /* ------------------------------------------------------------------------------------------- - Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior. - ----------------------------------------------------------------------------------------------*/ - function UltimoError(){ - return($this->ultimoerror); - } - /* ------------------------------------------------------------------------------------------- - Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior. - ----------------------------------------------------------------------------------------------*/ - function DescripUltimoError(){ - return($this->msgerrores[$this->ultimoerror]); - } - /* ------------------------------------------------------------------------------------------- - Establece el comando que se usar�para ejecutar las consultas pertinentes - - Par�etros de entrada: - objcomando: Un objeto comando con la sentencia SQL (Puede contener par�etros) - - Devuelve : - true : Si el texto del comando contiene la clausula SELECT - false: En caso contrario - - En el caso de devolver false, la funci� TomaUltimoError() devuelve el error ocurrido - ---------------------------------------------------------------------------------------------*/ - function EstableceComando($objcomando){ - $this->inderror=-1; // Inicializar contador de errores - $this->ultimoerror=-1; - if (stristr($objcomando->texto,"select")){ - $this->Comando=$objcomando; - $this->error[$this->inderror++]=0; // Comando v�ido, contiene "SELECT" - $this->ultimoerror=0; - return(true); - } - else{ - $this->error[$this->inderror++]=5; // Comando no valido, NO contiene "SELECT" - $this->ultimoerror=5; - return(false); - } - } - /* ------------------------------------------------------------------------------------------- - Sustituye el valor de los parametros en la expresi� que forma el texto del Comando - ---------------------------------------------------------------------------------------------*/ - function Traduce(){ - $execomando=$this->Comando->texto; - if (sizeof($this->Comando->parametros)>0){ // Hay par�etros que sustituir - foreach($this->Comando->parametros as $parametro){ - if ($parametro["tipo"]==0) // Tipo alfanum�ico - $execomando=str_replace($parametro["nombre"],"'".$parametro["valor"]."'",$execomando); - else - $execomando=str_replace($parametro["nombre"],$parametro["valor"],$execomando); - } - } - $this->Comando->texto=$execomando; - } - /* ------------------------------------------------------------------------------------------- - Recupera registros de la base de datos - ---------------------------------------------------------------------------------------------*/ - function Abrir(){ - $this->inderror=-1; // Inicializar contador de errores - $this->ultimoerror=-1; - if ($this->Comando==null){ - $this->error[$this->inderror++]=1; // Comando no especificado - $this->ultimoerror=1; - return(false); - } - else{ - if ($this->Comando->Conexion==null){ - $this->error[$this->inderror++]=2; // conexiónNO establecida - $this->ultimoerror=2; - return(false); - } - else{ - if ($this->Comando->Conexion->estado==0){ - $this->error[$this->inderror++]=3; // conexiónNO abierta - $this->ultimoerror=3; - return(false); - } - } - } - $this->Traduce(); - $this->Inicializar(); - if (!$this->filas=mysql_query($this->Comando->texto,$this->Comando->Conexion->controlador)){ - $this->error[$this->inderror++]=4; // Error en la sentencia SQL del comando o al abrir la consula - $this->ultimoerror=4; - return(false); - } - $this->numeroderegistros=mysql_num_rows($this->filas); // La consulta se ha realizado con �ito - $this->numerodecampos=mysql_num_fields($this->filas); - if ($this->numeroderegistros>0){ - $this->BOF=false; - $this->EOF=false; - $this->campos=mysql_fetch_array($this->filas); - } - $this->estado=1; // Recordset abierto - $this->error[$this->inderror++]=0; // Recuperaci� de registros correcta - $this->ultimoerror=0; - return(true); - } - /* ------------------------------------------------------------------------------------------- - Libera los registros de una consulta de la base de datos - ---------------------------------------------------------------------------------------------*/ - function Cerrar(){ - $this->inderror=-1; // Inicializar contador de errores - $this->ultimoerror=-1; - if (!mysql_free_result($this->filas)){ - $this->error[$this->inderror++]=6; // Error al cerrar la consulta (Al liberar memoria) - $this->ultimoerror=6; - return(false); - } - $this->Inicializar(); - $this->error[$this->inderror++]=0; // Recuperaci� de registros correcta - $this->ultimoerror=0; - return(true); - } - /* ------------------------------------------------------------------------------------------- - Mueve el puntero de lectura al siguiente registro del recordset - ---------------------------------------------------------------------------------------------*/ - function Siguiente(){ - if (!$this->EOF){ - $this->posicion++; - if ($this->posicion==$this->numeroderegistros) - $this->EOF=true; - else{ - if (mysql_data_seek($this->filas,$this->posicion)) - $this->campos=mysql_fetch_array($this->filas); - } - } - } - /* ------------------------------------------------------------------------------------------- - Mueve el puntero de lectura al anterior registro del recordset - ---------------------------------------------------------------------------------------------*/ - function Anterior(){ - if (!$this->BOF){ - $this->posicion--; - if ($this->posicion<0) - $this->BOF=true; - else{ - if (mysql_data_seek($this->filas,$this->posicion)); - $this->campos=mysql_fetch_array($this->filas); - } - } - } - /* ------------------------------------------------------------------------------------------- - Mueve el puntero de lectura al primer registro del recordset - ---------------------------------------------------------------------------------------------*/ - function Primero(){ - if ($this->numeroderegistros>0){ - $this->posicion=0; - if (mysql_data_seek($this->filas,$this->posicion)) - $this->campos=mysql_fetch_array($this->filas); - } - } - /* ------------------------------------------------------------------------------------------- - Mueve el puntero de lectura al ltimo registro del recordset - ---------------------------------------------------------------------------------------------*/ - function Ultimo(){ - if ($this->numeroderegistros>0){ - $this->posicion=$this->numeroderegistros-1; - if (mysql_data_seek($this->filas,$this->posicion)) - $this->campos=mysql_fetch_array($this->filas); - } - } -} -?>
\ No newline at end of file diff --git a/admin/WebConsole/clases/ArbolVistaXML.php b/admin/WebConsole/clases/ArbolVistaXML.php deleted file mode 100644 index 05ef00a0..00000000 --- a/admin/WebConsole/clases/ArbolVistaXML.php +++ /dev/null @@ -1,272 +0,0 @@ -<? -include_once("XmlPhp.php"); -/*=============================================================== -Esta clase implementa la apariencia y comportamiento de un treeview en código HTML y javascript. -La clase utiliza la clase XmlPhp.php para acceder al documento XML. - - Parámetros del constructor: - -fXML=Fichero XML - -fileocade=Indica si el dato anterior es un fichero o una variable con el contenido del árbol - 0: Es una cadena - 1: Es un fichero - -baseurlimg= Url base de las imágenes de los nodos de contracción-expansión - -clasedefault=Clase por defecto de los literales de los nodos - -nivelexp= Máximo nivel que aparecera expandido - -x= Posición x donde aparecerá la tabla - -y= Posición y donde aparecerá la tabla -=================================================================*/ -class ArbolVistaXML{ - var $baseurlimg; // Base de la URL de las imágenes de los nodos de contracción-expansión - var $clasedefault; // Clase por defecto de los literales de los nodos - var $gXML; // Objeto gestor del documento XML - var $nivelexp; // Nivel máximo que aprecerá visible - var $x; // Posición x donde aparecerá la tabla - var $y; // Posición y donde aparecerá la tabla - var $c_imgnivel=array(); // Imagenes de expansión y contracción para los distintos niveles - var $v_imgnivel=array(); // Valores de expansión y contracción para los distintos niveles - var $nodos_count; // Contador de nodo - - Function ArbolVistaXML($fXML,$fileocade,$baseurlimg="/.images/",$clasedefault,$nivelexp=0,$x=0,$y=0,$tipotabla=0,$titulotabla=""){ - // Constructor - $this->gXML=new XmlPhp($fXML,$fileocade); - $this->baseurlimg=$baseurlimg; - $this->clasedefault=$clasedefault; - $this->nivelexp=$nivelexp; - $this->x=$x; - $this->y=$y; - $this->tipotabla=$tipotabla; - $this->titulotabla=$titulotabla; - - // Anchura de los distibtos tipos de tablas - if($this->tipotabla>0){ - $this->anchoM=" width=100% "; - $this->ancho=" width=100% "; - } - else{ - $this->anchoM=" width=1024 "; - $this->ancho=""; - } - for($i=0;$i<=5;$i++){ // Inicializar - $this->c_imgnivel[$i]=$this->baseurlimg.'/nada.gif'; - $this->v_imgnivel[$i]="nada"; - } - $this->nodos_count=0; - } - /*------------------------------------------------------------------------------------------------ - Esta función devuelve una cadena con el contenido de un treeview en código HTML - ------------------------------------------------------------------------------------------------*/ - Function CreaArbolVistaXML(){ - if (!$this->gXML->NodoRaiz()) return; // No existe documento XML que analizar - $arbol_total='<TABLE border=0 '.$this->anchoM.' class="'.$this->clasedefault. '" style="POSITION:absolute;TOP:'.$this->y.'px;LEFT:'.$this->x.'px" class=texto_arbol cellspacing=0 cellpadding=0 border=0>'; - if($this->tipotabla>0) $arbol_total.='<TR><TH>'. $this->titulotabla .'</TH></TR>'; - $arbol_total.='<TR style="display:block">'; - $arbol_total.='<TD>'; - $arbol_total.='<TABLE id=tablanivel-0 border=0 cellspacing=0 cellpadding="0">'; - $arbol_total.=$this->_arbolXmlrecur(0); - $arbol_total.='</TABLE>'; - $arbol_total.='</TD>'; - $arbol_total.='</TR>'; - $arbol_total.='</TABLE>'; - return($arbol_total); - } - // ------------------------------------------------------------------------------------- - // Recorrido recursivo del arbol XML - // Parámetros: - // nivel: nivel del nodo - // ------------------------------------------------------------------------------------- - function _arbolXmlrecur($nivel){ - $arbol_total=""; - if ($nivel+1>$this->nivelexp) $displai="none"; else $displai="block"; - do{ - $gnptr=$this->gXML->nptr; - $arbol_total.='<TR style="display:block" id=TRNodo-'.$this->nodos_count.'>'; - $arbol_total.='<TD>'; - $arbol_total.=$this->_dibujo_nodo($this->gXML->Nodo(),$nivel,$this->gXML->NumerodeHijos(),$this->gXML->EsUltimoHermano()); - $arbol_total.='</TD>'; - $arbol_total.='</TR>'; - $this->nodos_count++; - if ($this->gXML->PrimerNodoHijo()){ - $arbol_total.='<TR id="TRNodoHijo-'.$this->nodos_count.'" style="display:'.$displai.'">'; - $arbol_total.='<TD>'; - $arbol_total.='<TABLE id="tablanivel-'.($nivel+1).'" border=0 cellspacing=0 cellpadding=0>'; - $arbol_total.=$this->_arbolXmlrecur($nivel+1); - $arbol_total.='</TABLE>'; - $arbol_total.='</TD>'; - $arbol_total.='</TR>'; - } - $this->gXML->nptr=$gnptr; - }while($this->gXML->SiguienteNodoHermano()); - return($arbol_total); - } - // ------------------------------------------------------------------------------------- - // Crea un nodo - // Parámetros: - // nivel: nivel del nodo - // ------------------------------------------------------------------------------------- - function CreaNodo($nivel){ - $nodo=$this->_dibujo_nodo($this->gXML->Nodo(),$nivel,0,true); - return($nodo); - } - /*------------------------------------------------------------------------------------------------ - Dibuja los nodos del árbol - parámetros: - nodo: La información del nodo - nivel: Nivel del nodo - nhijos: numero de hijos - uhermano: Es true si el nodo es el último de sus hermanos - - Especificaciones: - Los atributos de los nodos pueden ser HTML o especificos de - esta aplicación. Lso atributos del nodo propios de ésta son: - - - clicksupimg: Función suplementaria de la imagen de signo - - imagenid: Identificador de la imagen de signo - - clickimg: La función que se ejecutará al hacer click sobre la imagen de nodo - - downimg: La función que se ejecutará al pulsar el ratón sobre la imagen de nodo - - clickcontextualimg: Función que se ejecutara al hacer click con el boton derecho sobre la imagen del nodo - - imagenodo: Es la url de la imagen de nodo - - infonodo: Es texto que se visualiza del nodo - - mouseovernodo: La función a ejecutar cuando se posa el ratón sobre el literal del nodo - - clicksupnodo: Función suplementaria del literal del nodo - - clickcontextualnodo: Función que se ejecutara al hacer click con el boton derecho sobre el nodo - - classnodo: Clase (style) a la que pertenece el nodo - - nodoid: identificador del nodo - - nodovalue: parametro value del nodo - ------------------------------------------------------------------------------------------------*/ - function _dibujo_nodo($nodo,$nivel,$nhijos,$uhermano){ - // Comprobar descendencia y posición dentro de los hermanos - $swu=false; // switch para saber si el nodo es el último hermano - $swh=false; // switch para saber si el nodo tiene hijos - if ($nhijos>0) $swh=true; - $swu=$uhermano; - if ($swh){ // Si tiene hijos .. - if ($swu){ // Si es el último de sus hermanos .. - if ($nivel<$this->nivelexp){ - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/menos_c.gif'; - $this->v_imgnivel[$nivel]="menos_c"; - } - else{ - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/mas_c.gif'; - $this->v_imgnivel[$nivel]="mas_c"; - } - } - else{ // Si NO lo es .. - if ($nivel<$this->nivelexp){ - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/menos_t.gif'; - $this->v_imgnivel[$nivel]="menos_t"; - } - else{ - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/mas_t.gif'; - $this->v_imgnivel[$nivel]="mas_t"; - } - } - if ($nivel==0){ - if ($this->nivelexp>0) - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/menos_root.gif'; - else - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/mas_root.gif'; - } - } - else{ // Si NO tiene hijos .. - if ($swu){ // Si es el último de sus hermanos .. - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/nada_c.gif'; - $this->v_imgnivel[$nivel]="nada_c"; - } - else{ // Si no lo es .. - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/nada_t.gif'; - $this->v_imgnivel[$nivel]="nada_t"; - } - } - // Fin Comprobar descendencia y posición dentro de los hermanos - if($this->tipotabla==0) - $arbol='<TABLE border=0 cellspacing=0 cellpadding=0>'; - else - $arbol='<TABLE style="BORDER-BOTTOM:#000000 1px solid;" border=0 cellspacing=0 cellpadding=0>'; - $arbol.='<TR height="16px">'; - $atributosHTML=" "; - $atributosHTML=$this->gXML->Atributos($nodo); - $colornodo=""; - $fondonodo=""; - $estilo=""; - $atributosHTML=$this->gXML->TomaAtributoEspecial("colornodo",$colornodo,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("fondonodo",$fondonodo,$atributosHTML); - if ($colornodo!="" ) $colornodo=' COLOR:'.$colornodo.";"; - if ($fondonodo!="" ) $fondonodo=' BACKGROUND-COLOR:'.$fondonodo.";"; - $estilo=$colornodo || $fondonodo; - if ($estilo!="" ) $estilo='style="'.$colornodo.$fondonodo.'"'; - - for ($i=0;$i<$nivel;$i++){ // Niveles previos - $arbol.='<TD '.$estilo.'width="3px"></TD>'; - $arbol.='<TD '.$estilo.' width="16px"><IMG src="'.$this->c_imgnivel[$i].'" width="16px" height="16px" ></TD>'; - } - $arbol.='<TD '.$estilo.' width="3px"></TD>'; // Desplazamiento de la imagen - $arbol.='<TD '.$estilo.' width="16px">'; - - $imagenid=""; - $clicksupimg=""; - $atributosHTML=$this->gXML->TomaAtributoEspecial("imagenid",$imagenid,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("clicksupimg",$clicksupimg,$atributosHTML); - if ($clicksupimg!="") $clicksupimg.=';'; - if ($swh){ // El nodo tiene hijos - $arbol.='<A href="#"><IMG border=0 '.$estilo.' id="'.$imagenid.'" onclick="clickImagenSigno(this,' ."'".$this->baseurlimg."'".','.$nivel.');'.$clicksupimg.'" src="'.$this->c_imgnivel[$nivel].'" width="16px" height="16px" value="'.$this->v_imgnivel[$nivel].'"></A></TD>'; - } - else - $arbol.='<SPAN><IMG '.$estilo.' id="'.$imagenid.'" src="'.$this->c_imgnivel[$nivel].'" width="16px" height="16px" value="'.$this->v_imgnivel[$nivel].'"></SPAN></TD>'; - - $imagenodo=""; - $clickimg=""; - $downimg=""; - $clickcontextualimg=""; - $styleimg=""; - - $atributosHTML=$this->gXML->TomaAtributoEspecial("imagenodo",$imagenodo,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("clickimg",$clickimg,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("downimg",$downimg,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("clickcontextualimg",$clickcontextualimg,$atributosHTML); - if ($clickimg!="" ) $clickimg=' onclick="'.$clickimg.'" '; - if ($downimg!="" ) $downimg=' onmousedown="'.$downimg.'" '; - if ($clickcontextualimg!="" ) $clickcontextualimg=' oncontextmenu=" '.$clickcontextualimg.'" '; - - if ($clickimg!="" || $downimg!="" || $clickcontextualimg!="" ) $styleimg=' style="cursor:hand"'; - - $arbol.='<TD '.$estilo.' width=16px><IMG '.$styleimg.' src="'.$imagenodo.'"'.$clickimg.$downimg.$clickcontextualimg.' width="16px" height="16px"></TD>'; - $arbol.='<TD '.$estilo.' width="4px"></TD>'; - - $clicksupnodo=""; - $clickcontextualnodo=""; - $classnodo=""; - $nodoid=""; - $nodovalue=""; - $mouseovernodo=""; - $infonodo=""; - - $atributosHTML=$this->gXML->TomaAtributoEspecial("clickcontextualnodo",$clickcontextualnodo,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("clicksupnodo",$clicksupnodo,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("classnodo",$classnodo,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("nodoid",$nodoid,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("nodovalue",$nodovalue,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("colornodo",$colornodo,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("fondonodo",$fondonodo,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("mouseovernodo",$mouseovernodo,$atributosHTML); - $atributosHTML=$this->gXML->TomaAtributoEspecial("infonodo",$infonodo,$atributosHTML); - if ($clickcontextualnodo!="" ) $clickcontextualnodo=' oncontextmenu="'.$clickcontextualnodo.'" '; - if ($mouseovernodo!="" ) $mouseovernodo=' onmouseover="'.$mouseovernodo.'" '; - if ($nodovalue!="" ) $nodovalue=' value="'.$nodovalue.'" '; - if (!$classnodo) $classnodo=$this->clasedefault; - - $arbol.='<TD width="1024px" '.$estilo.' class="'.$classnodo.'">'; - $arbol.='<A href="#" class="'.$this->clasedefault. '" style="text-decoration: none"><SPAN id="'.$nodoid.'" '; - if($this->tipotabla<2){ - $arbol.=' onclick="clickLiteralNodo(this ,' ."'".$this->baseurlimg."'".');'; - $arbol.=" ".$clicksupnodo.'"'.$nodovalue.$mouseovernodo.$clickcontextualnodo; - } - $arbol.=' >'.$infonodo.'</SPAN></A></TD>'; - $arbol.='</TR>'; - $arbol.='</TABLE>'; - if ($swu) - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/nada.gif'; - else - $this->c_imgnivel[$nivel]=$this->baseurlimg.'/nada_l.gif'; - return($arbol); - } -} // Fin de la clase
\ No newline at end of file diff --git a/admin/WebConsole/clases/EncripDescrip.php b/admin/WebConsole/clases/EncripDescrip.php deleted file mode 100644 index 893bf48f..00000000 --- a/admin/WebConsole/clases/EncripDescrip.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -/*================================================================================ - Clase para encriptar y desencriptar cadenas cadenas -================================================================================*/ -class EncripDescrip{ - var $cadena; // La cadena encriptada o desencriptada que ser�devuelta - var $clave; // La clave de la cadena encriptada o desencriptada que ser�devuelta - //________________________________________________________________________________________ - // - // Constructor - //________________________________________________________________________________________ - function EncripDescrip($clave=12){ - $this->cadena=""; - $this->clave=$clave; - } - // ____________________________________________________________________________ - // - // Encripta una cadena - //_____________________________________________________________________________ - function Encriptar($cadena){ - - return( $cadena); - - $clave=(int)$this->clave; - $clave = (int)$clave & 0xFF; - $lon=strlen($cadena); - $this->cadena=""; - for($i=0;$i<$lon;$i++){ - $ch=(int)ord($cadena[$i]); - $pot=(int)$ch^(int)$clave; - $this->cadena.=chr($pot); - } - return( $this->cadena); - } - // ____________________________________________________________________________ - // - // Desencripta una cadena - //_____________________________________________________________________________ - function Desencriptar($cadena){ - - return( $cadena); - - $clave=(int)$this->clave; - $clave = (int)$clave & 0xFF; - $lon=strlen($cadena); - $this->cadena=""; - for($i=0;$i<$lon;$i++){ - $ch=(int)ord($cadena[$i]); - $pot=(int)$ch^(int)$clave; - $this->cadena.=chr($pot); - } - return( $this->cadena); - } -} -?>
\ No newline at end of file diff --git a/admin/WebConsole/clases/MenuContextual.php b/admin/WebConsole/clases/MenuContextual.php deleted file mode 100644 index baa9aa33..00000000 --- a/admin/WebConsole/clases/MenuContextual.php +++ /dev/null @@ -1,164 +0,0 @@ -<?php -/*================================================================================================== -Clase para trabajar con menús contextuales. - - Especificaciones de las etiquetas XML: - - MENUCONTEXTUAL: Elemento raiz en el se especifican los atributos del <DIV> - - ITEM: Especificaciones de cada item. - - SEPARADOR: Indica una linea divisoria entre items - - Especificaciones de atributos: - - idctx: Identificador del menu contextual (DIV) - - imgitem: La url de la imagen que acompañará al literal - - alignitem: La alineación del texto del item (por defecto left) - - textoitem: El literal del item - - subflotante: Si el item despliega otro menu contextual. El valor es el id de ése - - maxanchu: Máxima anchura del menu contextual - - swimg: Vale 1 si el menu tiene algún item con imagen y 0 en caso contrario - - alpulsar: Nombre de la función javascript que se ejecutará en respuesta al evento onclick - - clase: Estilo CSS que tendrán los item menu contextual - - origen_x: Posición de origen, coordenada x - - origen_y: Posición de origen, coordenada y - - - Especificaciones de eventos: - - Los eventos onmouseover y onmouseout están implicitos en la clase por defecto - Especificaciones de submenus: - - Si una opción lleva un submenu asociado el id de éste va en el atributo name del <TR> - - -==================================================================================================*/ -class MenuContextual{ - Function MenuContextual($urlImages="../images/flotantes"){ - $this->urlImg=$urlImages; - } - /*--------------------------------------------------------------------------------------------- - Devuelve una cadena en formato HTML de un layer para usarlo como menu contextual - Parametros: - - cadenaXML: Una cadena en formato XML con los atributos de cada item - ---------------------------------------------------------------------------------------------*/ - function CreaMenuContextual($cadenaXML){ - $idx=0; - $layer=""; - $idctx=""; - $maxanchu=100; - $swimg=0; - $imgitem=""; - $alignitem=""; - $textoitem=""; - $clase=""; - $subflotante=""; - $origen_x="0"; - $origen_y="0"; - - $gXML=new XmlPhp($cadenaXML,0); - $gXML->NodoRaiz(); - $atributosHTML=$gXML->Atributos(); - $atributosHTML=$gXML->TomaAtributoEspecial("maxanchu",$maxanchu,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("swimg",$swimg,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("clase",$clase,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("idctx",$idctx,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("origen_x",$origen_x,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("origen_y",$origen_y,$atributosHTML); - if(empty($origen_x)) $origen_x=0; - if(empty($origen_y)) $origen_y=0; - if (!$clase) $clase="menu_contextual"; - $layer.='<DIV class="'.$clase.'" id="'.$idctx.'" width='.$maxanchu.' style="visibility:hidden;position:absolute;top:'.$origen_y.';left:'.$origen_x.'" >'; - $nuitems=2; - if ($gXML->PrimerNodoHijo()){ - $layer.='<TABLE border=0 width='.$maxanchu.' border=0 cellspacing=0 cellpadding=0>'; - $layer.='<TR width='.$maxanchu.' height=3>'; // Primera linea - $layer.='<TD width=3 background="'.$this->urlImg.'/esi.gif"></TD>'; - $layer.='<TD colspan=6 background="'.$this->urlImg.'/lsu.gif"></TD>'; - $layer.='<TD width=3 background="'.$this->urlImg.'/esd.gif"></TD>'; - $layer.='</TR>'; - - $layer.='<TR width='.$maxanchu.' height=3>'; // Linea de relleno - $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD colspan=4></TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>'; - $layer.='</TR>'; - do{ - $nuitems++; - $atributosHTML=$gXML->Atributos(); - $tiponodo=$gXML->NombreNodo(); - if ($tiponodo=="ITEM"){ - $atributosHTML=$gXML->TomaAtributoEspecial("imgitem",$imgitem,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("textoitem",$textoitem,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("subflotante",$subflotante,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("alpulsar",$alpulsar,$atributosHTML); - $atributosHTML=$gXML->TomaAtributoEspecial("alignitem",$alignitem,$atributosHTML); - - if ($alignitem==null) $alignitem="left"; - - $clickcontextual=' onclick="'.$alpulsar.'" '; - $oncontextual=' onmouseover="sobre_contextual(this)" '; - $offcontextual=""; - - $idx++; - $layer.='<TR id='.$idx.' name="'.$subflotante.'" width='.$maxanchu.' '.$clickcontextual.' '.$oncontextual.' '.$offcontextual.' height=20>'; // Linea de item - $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>'; - $layer.='<TD width=3></TD>'; - - if ($imgitem!=null){ // Item con imagen - $imgonclick=""; - $layer.='<TD width=20 align=center id="TDimg-'.$idx .'"><IMG width=16 src="'.$imgitem.'"></TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD align='.$alignitem.' id="TDLit-'.$idx .'" width='.($maxanchu-38).' '.$atributosHTML.'><A href="#" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>'; - } - else{ - if ($swimg==1){ // Hay algún item con imagen - $layer.='<TD width=20></TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD align='.$alignitem.' width='.($maxanchu-38).' '.$atributosHTML.'><A href="#" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>'; - } - else{ - $layer.='<TD width=10></TD>'; - $layer.='<TD colspan=2 align='.$alignitem.' width='.($maxanchu-25).' ' .$atributosHTML.' ><A href="#" style="text-decoration: none"><SPAN>'.$textoitem.'</SPAN></A></TD>'; - } - } - if ($subflotante!=null) - $layer.='<TD valign=middle><IMG width=3 name="swsbfn" align=left src="'.$this->urlImg.'/swsbfn.gif">'; - else - $layer.='<TD width=3 >'; - $layer.='</TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>'; - $layer.='</TR>'; - } - if ($tiponodo=="SEPARADOR"){ // Separadores - $layer.='<TR width='.$maxanchu.' height=16>'; // Linea de separación - $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD colspan=4 background="'.$this->urlImg.'/sep.gif"></TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>'; - $layer.='</TR>'; - } - - }while($gXML->SiguienteNodoHermano()); - - $layer.='<TR width='.$maxanchu.' height=3>'; // Linea de relleno - $layer.='<TD width=3 background="'.$this->urlImg.'/liz.gif"></TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD colspan=4></TD>'; - $layer.='<TD width=3></TD>'; - $layer.='<TD width=3 background="'.$this->urlImg.'/ldr.gif"></TD>'; - $layer.='</TR>'; - - - $layer.='<TR width='.$maxanchu.' height=3>'; // Última linea - $layer.='<TD width=3 background="'.$this->urlImg.'/eii.gif"></TD>'; - $layer.='<TD colspan=6 background="'.$this->urlImg.'/lin.gif"></TD>'; - $layer.='<TD width=3 background="'.$this->urlImg.'/eid.gif"></TD>'; - $layer.='</TR>'; - $layer.='</TABLE>'; - $layer.='<INPUT type=hidden value="-1">'; // Representará el Ãndice seleccionado - $layer.='</DIV>'; - } - return($layer); - } -} -?>
\ No newline at end of file diff --git a/admin/WebConsole/clases/SockHidra.php b/admin/WebConsole/clases/SockHidra.php deleted file mode 100644 index 66223e47..00000000 --- a/admin/WebConsole/clases/SockHidra.php +++ /dev/null @@ -1,120 +0,0 @@ -<?php - -include_once("EncripDescrip.php"); - -/*================================================================================ - Clase para conectarse con el servidor hidra y enviar comandos - Cualquier error producido en los procesos se puede recuperar con los m�odos -================================================================================*/ -class SockHidra{ - var $ultimoerror; // Ultimo error detectado - var $descripultimoerror; // Descripción del ltimo error detectado - var $socket; // Stream socket - var $servidor; // El servidor hidra - var $puerto; // El puerto odnde se conectar� - var $timeout; // El tiempo de espera para la conexi� - var $encripdescrip; // El encriptador - var $LONGITUD_TRAMA; // M�ima longitud de la trama - - //________________________________________________________________________________________ - // - // Constructor - // Par�etros: - // - servidor: El nombre o la IP del servidor - // - puerto: El puerto usado para las comunicaciones - // - timeout: El tiempo de espera para la conexi� - //________________________________________________________________________________________ - function SockHidra($servidor,$puerto,$timeout=30){ - $this->servidor=$servidor; - if (!$this->_esIP($this->servidor)) - $this->servidor = gethostbyname ($servidor); - $this->puerto=$puerto; - $this->timeout=$timeout; - $this->LONGITUD_TRAMA=4048; - - $this->encripdescrip=new EncripDescrip(); - } - //________________________________________________________________________________________ - // - // Averigua si el parametro pasado es una IP. devuelve true en caso afirmativo - //________________________________________________________________________________________ - function _esIP(){ - return(false); - } - //________________________________________________________________________________________ - // - // Conecta con el servidor - // Devuelve: - // - false: Si falla la conexi� - // - true: En caso contrario - //________________________________________________________________________________________ - function conectar(){ - $this->socket = socket_create (AF_INET, SOCK_STREAM, 0); - if ($this->socket < 0) { - $this->ultimoerror=socket_strerror($socket); - $this->descripultimoerror="socket_create() fallo"; - return(false); - } - $result = socket_connect ($this->socket,$this->servidor,$this->puerto); - if ($result < 0) { - $this->ultimoerror=socket_strerror($result); - $this->descripultimoerror="socket_connect() fallo"; - return(false); - } - return(true); - } - //________________________________________________________________________________________ - // - // Cerrar la conexióncon el servidor - // Devuelve: - // - false: Si falla la conexi� - // - true: En caso contrario - //________________________________________________________________________________________ - function desconectar(){ - socket_close ($this->socket); - } - //________________________________________________________________________________________ - // - // Devuelve el c�igo del ltimo error ocurrido durante el proceso anterior. - //________________________________________________________________________________________ - function UltimoError(){ - return($this->ultimoerror); - } - //________________________________________________________________________________________ - // - // Devuelve una cadena con el mensage del ltimo error ocurrido durante el proceso anterior. - //________________________________________________________________________________________ - function DescripUltimoError(){ - return($this->descripultimoerror); - } - //________________________________________________________________________________________ - // - // Envia una trama de comando al servidor - // Par�etros: - // - trama: Trama a enviar - //________________________________________________________________________________________ - function envia_comando($parametros){ - $trama="@JMMLCAMDJ".$parametros; - $resul=socket_write($this->socket, $this->encripdescrip->Encriptar($trama), strlen($trama)); - if (!$resul) { - $this->ultimoerror=socket_strerror($resul); - $this->descripultimoerror="socket_write() fallo"; - return(false); - } - return(true); - } - //________________________________________________________________________________________ - // - // Recibe una trama del servidor - // Par�etros: - // - lon: Longitud de la trama - // Devuelve: - // La trama recibida - //________________________________________________________________________________________ - function recibe_respuesta(){ - $trama = socket_read ($this->socket,$this->LONGITUD_TRAMA); - $cadenaret=$this->encripdescrip->Desencriptar($trama); - return($cadenaret); - } - } -?>
\ No newline at end of file diff --git a/admin/WebConsole/clases/XmlPhp.php b/admin/WebConsole/clases/XmlPhp.php deleted file mode 100644 index 190fe84a..00000000 --- a/admin/WebConsole/clases/XmlPhp.php +++ /dev/null @@ -1,285 +0,0 @@ -<? -/*================================================================================ -Esta clase implementa funciones de utilidad para tratar ficheros XML - - Parametros del constructor: - fxml=Fichero XML que contiene los atributos de los nodos - fileocade=Indica si el dato anterior es un fichero o una variable con el contenido del árbol: - 0: Es una cadena - 1: Es un fichero - - Especificaciones: - Se le llama información del nodo al nombre del nodo + sus atributos eliminando los marcadores - de comienzo:"<" y fin:">" -================================================================================*/ -class XmlPhp{ - var $buffer; - var $nptr; - - Function XmlPhp($fxml,$fileocade){ // Constructor - if ($fileocade==0){ - $this->nptr=1; - $this->buffer=trim($fxml); - } - else{ - $tbuffer=filesize($fxml); // Calcula tamaño del fichero - if ($tbuffer>0){ // EL fichero tiene contenido - $fd=fopen($fxml, "r"); - $this->buffer=fread ($fd,$tbuffer); - fclose ($fd); - $this->nptr=1; - $this->buffer=trim($this->buffer); - } - } - $this->buffer=ereg_replace( "[\n\r\t]"," ", $this->buffer ); - } - /* ------------------------------------------------------------------------------------------- - Recupera la información del primer nodo (nodo raiz) del arbol.Devuelve false en caso de que - no tenga hijos o bien no exista documento XML que analizar. - ---------------------------------------------------------------------------------------------*/ - function InfoNodoRaiz(){ - if (!$this->NodoRaiz()) // No existe documento XML - return(false); - return($this->Infonodo()); - } - /* ------------------------------------------------------------------------------------------- - Establece el puntero de nodos al primer nodo del árbol (nodo raiz). Devuelve false en caso - de que no exista documento XML que analizar. - ---------------------------------------------------------------------------------------------*/ - function NodoRaiz(){ - if ($this->buffer==null) return(false); // No existe documento XML - $this->nptr=0; - while ($this->nptr<strlen($this->buffer)) - if ('<'==substr($this->buffer,$this->nptr++,1)) return(true); - return(false); - } - /* ------------------------------------------------------------------------------------------- - Recupera la información del primer nodo hijo del nodo actual. Devuelve false en caso de que - no tenga hijos o bien no exista documento XML que analizar. - ---------------------------------------------------------------------------------------------*/ - function InfoPrimerNodoHijo(){ - if (!$this->PrimerNodoHijo()) // No tiene hijos o no existe documento XML - return(false); - return($this->Infonodo()); - } - /* ------------------------------------------------------------------------------------------- - Establece el puntero de nodos al primer nodo hijo del nodo actual. Devuelve false en caso - de que no tenga hijos o bien no exista documento XML que analizar. - ---------------------------------------------------------------------------------------------*/ - function PrimerNodoHijo(){ - if ($this->buffer==null) return(false); // No existe documento XML - $gnptr=$this->nptr; - while ($this->nptr<strlen($this->buffer)) - if ('<'==substr($this->buffer,$this->nptr++,1)) break; - $lon=$this->nptr; - if ('/'==substr($this->buffer,$lon,1)){ // No tiene hijos - $this->nptr=$gnptr; - return(false); - } - return(true); - } - /* ------------------------------------------------------------------------------------------- - Recupera la información del siguiente nodo hermano del actual. Devuelve false en caso de que - el nodo actual sea el último de sus hermanos o bien no exista documento XML que analizar. - ---------------------------------------------------------------------------------------------*/ - function InfoSiguienteNodoHermano(){ - if (!$this->SiguienteNodoHermano()) // No tiene hermanos o no existe documento XML - return(false); - return($this->Infonodo()); - } - /* ------------------------------------------------------------------------------------------- - Establece el puntero de nodos al siguiente nodo hermano del nodo actual. Devuelve false en - caso de que el nodo actual sea el último de los hermanos o bien no exista documento XML que analizar. - ---------------------------------------------------------------------------------------------*/ - function SiguienteNodoHermano(){ - if ($this->buffer==null) return(false); // No existe documento XML - $gnptr=$this->nptr; - $resul=$this->_siguiente_hermano(); - if (!$resul){ - $this->nptr=$gnptr; // Es el último hermano - return(false); - } - return(true); - } - /* ------------------------------------------------------------------------------------------- - Establece el puntero de nodos al siguiente nodo hermano del actual - ---------------------------------------------------------------------------------------------*/ - function _siguiente_hermano(){ - $lon=$this->nptr; - $sw=1; - $nombrenodo=$this->NombreNodo(); - while (1){ - $lon = strpos($this->buffer,'<',++$lon); - if (substr($this->buffer,++$lon,1)=='/') - $sw--; - else - $sw++; - if ($sw==0){ - while ($lon<strlen($this->buffer)){ - if (substr($this->buffer,$lon++,1)=='<'){ - if (substr($this->buffer,$lon,1)=='/') - return(false); // Es el último hermano - else{ - $this->nptr=$lon; - return(true); - } - } - } - return(false); // Se trata del nodo raiz - } - } - } - /* ------------------------------------------------------------------------------------------- - Recupera el número de hijos del nodo actual - ---------------------------------------------------------------------------------------------*/ - function NumerodeHijos(){ - $gnptr=$this->nptr; - $nh=0; - if ($this->PrimerNodoHijo()){ - $nh++; - while ($this->SiguienteNodoHermano()) $nh++; - } - $this->nptr=$gnptr; - return($nh); - } - /* ------------------------------------------------------------------------------------------- - Devuelve true si el nodo es el último de sus hermanos - ---------------------------------------------------------------------------------------------*/ - function EsUltimoHermano(){ - $gnptr=$this->nptr; - if (!$this->SiguienteNodoHermano()){ - $this->nptr=$gnptr; - return(true); - } - $this->nptr=$gnptr; - return(false); - } - /* ------------------------------------------------------------------------------------------- - Devuelve los atributos del nodo. - Prámetros: - Si se aporta el puntero del nodo se devolverán los atributos del nodo apuntado - pero si no se especifican argumentos se devuelven los atributos del nodo actual. - ---------------------------------------------------------------------------------------------*/ - function Atributos($ptrnodo=-1){ - if ($ptrnodo!=-1) - $this->_setnodo($ptrnodo); - $atributosHTML=""; - $info=$this->Infonodo(); - $pos=strpos($info," "); - if ($pos) // El nodo tiene atributos - $atributosHTML=" ".substr($info,$pos); - return($atributosHTML); - } - /* ------------------------------------------------------------------------------------------- - Posiciona el puntero de nodos - ---------------------------------------------------------------------------------------------*/ - function _setnodo($ptrnodo){ - $this->nptr=$ptrnodo; - } - /* ------------------------------------------------------------------------------------------- - Devuelve el puntero del nodo actual - ---------------------------------------------------------------------------------------------*/ - function Nodo(){ - return($this->nptr); - } - /* ------------------------------------------------------------------------------------------- - Recupera el nombre del nodo - ---------------------------------------------------------------------------------------------*/ - function NombreNodo(){ - $infonodo=$this->Infonodo(); - $trozos=split(" ",$infonodo); - return ($trozos[0]); - } - /* ------------------------------------------------------------------------------------------- - Recupera la información del nodo actual - ---------------------------------------------------------------------------------------------*/ - function Infonodo(){ - if ($this->buffer==null) return(false); // No existe documento XML - $lon=$this->nptr; - while ($lon<strlen($this->buffer)) - if ('>'==substr($this->buffer,++$lon,1)) break; - $info=trim(substr($this->buffer,$this->nptr,$lon-$this->nptr)); - $info=str_replace("[","<",$info); - $info=str_replace("]",">",$info); - return $info; - } - /* ------------------------------------------------------------------------------------------- - Recorre el arbol de nodos del documento XML y para cada nodo genera un evento que se - puede capturar a través de una funcion que tiene esta forma: - fNodoXML(nivel,infonodo) donde: - - nivel es el nivel de profundidad del nodo (en base 0) - - infonodo es toda la información contenida en el nodo. - ---------------------------------------------------------------------------------------------*/ - function RecorreArboXML(){ - if (!$this->NodoRaiz()) return; // No existe documento XML que analizar - $this->_arbolXmlrecur(0); - } - // ------------------------------------------------------------------------------------- - // Recorrido recursivo del arbol XML - // ------------------------------------------------------------------------------------- - function _arbolXmlrecur($nivel){ - do{ - $infonodo=$this->Infonodo(); - fNodoXML($nivel,$infonodo); - $gnptr=$this->nptr; - if ($this->PrimerNodoHijo()) - $this->_arbolXmlrecur($nivel+1); - $this->nptr=$gnptr; - }while($this->SiguienteNodoHermano()); - } - /*------------------------------------------------------------------------------------------------ - Elimina un atributo de la información del nodo - Parametros: - - nombreatributo:El nombre del atributo - - info: La información del Nodo - ------------------------------------------------------------------------------------------------*/ - function EliminaAtributo($nombreatributo,$info){ - $nada=""; - return($this->TomaAtributo($nombreatributo,&$nada,$info,true)); - } - /*------------------------------------------------------------------------------------------------ - Recupera el valor del atributo y lo elimina de la información del nodo - Parametros: - - nombreatributo:El nombre del atributo - - puntero: Referencia a la variable que contendrá el valor del atributo - - info: La información del Nodo - ------------------------------------------------------------------------------------------------*/ - function TomaAtributoEspecial($nombreatributo,&$puntero,$info){ - return($this->TomaAtributo($nombreatributo,&$puntero,$info,true)); - } - /*------------------------------------------------------------------------------------------------ - Recupera el valor del atributo - Parametros: - - nombreatributo:El nombre del atributo - - puntero: Referencia a la variable que contendrá el valor del atributo - - info: La información del Nodo - - sw: Si vale true el atributo se eliminará de la información del nodo - ------------------------------------------------------------------------------------------------*/ - function TomaAtributo($nombreatributo,&$puntero,$info,$swkill=false){ - $doblescomillas='"'; - $strAtributo=" ".$nombreatributo."="; - $pos=strpos($info,$strAtributo); - if (!$pos){ - $puntero=null; - return($info); - } - $pos+=strlen($strAtributo); // Avanza hasta el signo igual - $posa=$pos; // Primera posición del valor del atributo - $swcomillas=false; - while ($pos<strlen($info)){ - if ($doblescomillas==substr($info,$pos,1)) $swcomillas=!$swcomillas; - if (' '==substr($info,$pos,1) || '> '==substr($info,$pos,1)) - if (!$swcomillas) break; - $pos++; - } - $posb=$pos; - $valoratributo=substr($info,$posa,$posb-$posa); - if ($swkill) // Eliminar el atributo de la la cadena - $info=str_replace($strAtributo.$valoratributo,"",$info); // Elimina el atributo de la información - if ($doblescomillas==substr($valoratributo,0,1)) // Elimina las comillas - $valoratributo=str_replace($doblescomillas,"",$valoratributo); - $puntero=$valoratributo; - return($info); - } -} // Fin de la clase -?>
\ No newline at end of file diff --git a/admin/WebConsole/clases/jscripts/ArbolVistaXML.js b/admin/WebConsole/clases/jscripts/ArbolVistaXML.js deleted file mode 100644 index 249abb29..00000000 --- a/admin/WebConsole/clases/jscripts/ArbolVistaXML.js +++ /dev/null @@ -1,565 +0,0 @@ -// ************************************************************************************************ -// Libreria de scripts de Javascript -// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla - -// Fichero: ArbolVistaXML.js -// Este fichero implementa las funciones javascript de la clase ArbolVistaXML.php -// ************************************************************************************************* -var botonraton=null; // Botón presionado -var currentNodo=""; // Nodo actual -var currentpathimg=""; // Path por defecto de las imágenes de signo -var gLiteralcolor; // Color nodo vista para restablecer -var gLiteralbackground; // Fondo color nodo vista para restablecer -//________________________________________________________________________________________________________ -// definicion dela clase triada -//________________________________________________________________________________________________________ - function NodoVista(){ - this.nivel=0; // Profundidad del nodo - this.imgsigno=null; // Objeto IMG (Imagen de signo de la celda vista) O SPAN si el nodo vista no tiene hijos - this.literal=null; // Objeto SPAN (Literal de la celda vista) - - this.CeldaVista=null; // El objeto TABLE que contiene la imagen de signo y el literal) - this.Nodo=null; // El nodo en si (Objeto TR que contiene el objeto TABLE celda vista final) - this.ArbolHijos=null; // El arbol conteniendo todos los nodos hijos ( Si nulo no tiene hijos)(Objeto TR) - this.NodoPadre=null; // El nodo padre (Objeto TR que contiene el objeto TABLE celda vista final, del padre) - this.ArbolHijosNodoPadre=null; // El arbol del padre conteniendo los nodos hijos(Objeto TR) - this.siguienteHermano=null; // El nodo hermano siguiente ( Si nulo es el último hermano)(Objeto TR) - //____________________________________________________________________________ - // - // Devuelve el estado del nodo 0: Contraido 1:Desplegado - //____________________________________________________________________________ - this.estadoNodo= function(){ - var signoimg=this.imgsigno.getAttribute("value"); - var estado; - switch(signoimg){ - case "menos_t" : - case "menos_c" : - estado=1; - break; - case "mas_t" : - case "mas_c" : - estado=0; - break; - default: - estado=-1; - } - return(estado); - } - //____________________________________________________________________________ - // - // Devuelve el segundo dato de una cadena con formato xxxxx-xxx que es id del nodo vista - //____________________________________________________________________________ - this.toma_identificador= function(){ - if(this.literal==null) return(null); - var cadena=this.literal.getAttribute("id"); - var iditem=cadena.split("-") // Toma el identificador - return(iditem[1]); - } - //____________________________________________________________________________ - // - // Devuelve el primer dato de una cadena con formato xxxxx-xxx que es sufijo del nodo vista - //____________________________________________________________________________ - this.toma_sufijo= function(){ - if(this.literal==null) return(null); - var cadena=this.literal.getAttribute("id"); - var iditem=cadena.split("-") // Toma el identificador - return(iditem[0]); - } - //____________________________________________________________________________ - // - // Devuelve el literal de un nodo vista - //____________________________________________________________________________ - this.toma_infonodo= function(){ - if(this.literal==null) return(null); - return(this.literal.innerHTML); - } - //____________________________________________________________________________ - // - // Devuelve el literal de un nodo vista - //____________________________________________________________________________ - this.pone_infonodo= function(lit){ - this.literal.innerHTML=lit; - } - //____________________________________________________________________________ - // - // Devuelve true si el nodo tiene hijos,false en caso contrario - //____________________________________________________________________________ - this.TieneHijos= function(){ - return(this.ArbolHijos!=null); - } - //____________________________________________________________________________ - // - // Devuelve true si el nodo es el último, false en caso contrario - //____________________________________________________________________________ - this.UltimoHermano= function(){ - return(this.siguienteHermano==null); - } - //____________________________________________________________________________ - // - // Devuelve el nodo vista padre - //____________________________________________________________________________ - this.PapaNodo= function(){ - if(this.NodoPadre==null) return(null); - var oTABLE=this.NodoPadre.getElementsByTagName('TABLE')[0]; - return(TomaDatosNodo(oTABLE)); - } - // Fin de la clase -} -//________________________________________________________________________________________________________ -// -// Devuelve un nodo vista -// Parametro: -// o: Objeto que puede ser la imagen de signo o el literal de una de las lineas del arbolVista -//________________________________________________________________________________________________________ - function TomaDatosNodo(o){ - var nodo=new NodoVista(); - - while(o.tagName!="TABLE" ) - o=o.parentNode; - nodo.CeldaVista=o; - var TAnchor=nodo.CeldaVista.getElementsByTagName('A'); - if(TAnchor.length==2){ // Imagen de signo pulsable - nodo.imgsigno=TAnchor[0].childNodes[0]; - nodo.literal=TAnchor[1].childNodes[0]; - } - else{ - var TSpan=nodo.CeldaVista.getElementsByTagName('SPAN'); - nodo.imgsigno=TSpan[0].childNodes[0]; - nodo.literal=TAnchor[0].childNodes[0]; - } - while(o.tagName!="TR" ) - o=o.parentNode; - nodo.Nodo=o; - - while(o.tagName!="TABLE" ) - o=o.parentNode; - var Mnivel=o.getAttribute("id").split("-") - nodo.nivel=Mnivel[1] - - while(o.tagName!="TR" ) - o=o.parentNode; - nodo.ArbolHijosNodoPadre=o; - - if(parseInt(nodo.nivel)>0){ - o=o.previousSibling; - while(o.nodeType!=1 ) - o=o.previousSibling - nodo.NodoPadre=o; - } - else - nodo.NodoPadre=null; // Es el primer nodo - var o=nodo.Nodo; - var auxsplit=o.getAttribute("id"); - var idTR=auxsplit.split("-") [0]; - o=o.nextSibling - while(o!=null && o.nodeType!=1 ) - o=o.nextSibling - if(o==null){ // Es el último hermano y no tiene hijos - nodo.ArbolHijos=null; - nodo.siguienteHermano=null; - return(nodo); - } - var auxsplit=o.getAttribute("id"); - var idTRhijo=auxsplit.split("-") [0]; - if(idTR==idTRhijo) { // El nodo no tiene hiijos y no es último hermano - nodo.ArbolHijos=null; - nodo.siguienteHermano=o; - return(nodo); - } - nodo.ArbolHijos=o; - o=o.nextSibling - while(o!=null && o.nodeType!=1) - o=o.nextSibling - if(o==null){ // El nodo tiene hijos y es ultimo hermano - nodo.siguienteHermano=null; - return(nodo); - } - nodo.siguienteHermano=o; // El nodo tiene hijos y no es último hermano - return(nodo); - } -//----------------------------------------------------------------------------------------------------------------------- -// Gestiona el despliegue y contracción de nodovs -//----------------------------------------------------------------------------------------------------------------------- -function clickNodo(nodov,pathimg){ - var signoimg=nodov.imgsigno.getAttribute("value"); - switch(signoimg){ - case "menos_t" : - nodov.imgsigno.setAttribute("value","mas_t",null); - nodov.imgsigno.setAttribute("src",pathimg+"/mas_t.gif",null); - nodov.ArbolHijos.style.display="none" - break; - case "menos_c" : - nodov.imgsigno.setAttribute("value","mas_c",null); - nodov.imgsigno.setAttribute("src",pathimg+"/mas_c.gif",null); - if (nodov.nivel==0) - nodov.imgsigno.setAttribute("src",pathimg+"/mas_root.gif",null); - nodov.ArbolHijos.style.display="none" - break; - case "mas_t" : - nodov.imgsigno.setAttribute("value","menos_t",null); - nodov.imgsigno.setAttribute("src",pathimg+"/menos_t.gif",null); - nodov.ArbolHijos.style.display="block" - break; - case "mas_c" : - nodov.imgsigno.setAttribute("value","menos_c",null); - nodov.imgsigno.setAttribute("src",pathimg+"/menos_c.gif",null); - if (nodov.nivel==0) - nodov.imgsigno.setAttribute("src",pathimg+"/menos_root.gif",null); - nodov.ArbolHijos.style.display="block" - break; - } -} -//----------------------------------------------------------------------------------------------------------------------- -// Gestiona el despliegue y contracción de nodos a través de la imagen del nodo -//----------------------------------------------------------------------------------------------------------------------- -function clickImagenSigno(oIMG,pathimg){ - currentpathimg=pathimg; - var nodov=TomaDatosNodo(oIMG); - clickNodo(nodov,pathimg); - if (EsAncestro(nodov,currentNodo)) - resalta(nodov); -} -//----------------------------------------------------------------------------------------------------------------------- -// Gestiona el despliegue y contracción de nodos a través del literal del nodo -//----------------------------------------------------------------------------------------------------------------------- -function clickLiteralNodo(oLIT,pathimg){ - var nodov=TomaDatosNodo(oLIT); - resalta(nodov); - if(nodov.imgsigno==null) return; - - if(pathimg==null){ - var signoimg=nodov.imgsigno.getAttribute("src"); - var p=signoimg.lastIndexOf("/"); - var pathimg=signoimg.substring(0,p); - currentpathimg=pathimg; - } - var signoimg=nodov.imgsigno.getAttribute("value"); - var signo=signoimg.split("_") - if(botonraton==1){ - if (signo[0]=="mas" || signo[0]=="menos" ) clickNodo(nodov,pathimg); - } - else{ - if (signo[0]=="mas" ) clickNodo(nodov,pathimg); - } -} -//----------------------------------------------------------------------------------------------------------------------- -// Resalta el nodo vista seleccionado y lo pone como nodo vista actual -//----------------------------------------------------------------------------------------------------------------------- -function resalta(nodov){ - if(currentNodo==nodov) return; - if (currentNodo){ - currentNodo.literal.style.color=gLiteralcolor; - currentNodo.literal.style.backgroundColor=gLiteralbackground; - } - gLiteralcolor=nodov.literal.style.color; // Guarda el color del nodo - gLiteralbackground=nodov.literal.style.backgroundColor; // Guarda el background del nodo - - nodov.literal.style.color="#FFFFFF"; // Blanco - nodov.literal.style.backgroundColor="#0a266a"; // Azul marino - currentNodo=nodov; -} -//----------------------------------------------------------------------------------------------------------------------- -// Deja de resaltar un nodo vista -//____________________________________________________________________________ -function desresalta(nodov){ - nodov.literal.style.color=nodov.Literalcolor; - nodov.literal.style.backgroundColor=nodov.Literalbackground; -} -//----------------------------------------------------------------------------------------------------------------------- -// Averigua si el primer nodo vista es ancestro del segundo -//____________________________________________________________________________ -function EsAncestro(nodoA,nodoH){ - if(nodoH==null) return(false); - var NodoAncestro=nodoA.ArbolHijos; - var NodoHijo=nodoH.Nodo; - while(NodoHijo!=null){ - if(NodoHijo==NodoAncestro) return(true); - NodoHijo=NodoHijo.parentNode; - } - return(false); -} -//----------------------------------------------------------------------------------------------------------------------- -// Despliega un nivel el nodo indicado -//----------------------------------------------------------------------------------------------------------------------- -function despliega(o,pathimg){ - var nodov=TomaDatosNodo(o); - clickNodo(nodov,pathimg); -} -//----------------------------------------------------------------------------------------------------------------------- -// Despliega el nodo indicado ( desde la pagina -//----------------------------------------------------------------------------------------------------------------------- -function DespliegaNodo(lit,id){ - var o=document.getElementById(lit+"-"+id); - if(o!=null){ - var ancestro= TomaDatosNodo(o); - resalta(ancestro); - while(ancestro!=null){ - if(ancestro.estadoNodo()==0) // Nodo contraido - clickNodo(ancestro,currentpathimg); - ancestro=ancestro.PapaNodo(); - } - } -} -//____________________________________________________________________________ -// -// Inserta un nodo en el árbol -// Especificaciones: -// Los parámetros recibidos son: -// - nodov: Nodo vista -// - tablanodo: Tabla nodo generada para la nueva celda vista -//____________________________________________________________________________ -function InsertaNodo(nodov,tablanodo){ - var nwceldavista=CreaCeldaVista(nodov,tablanodo); - var nwTR = document.createElement('TR'); - nwTR.id="TRNodo-0"; - var nwTD = document.createElement('TD'); - nwTD.innerHTML=nwceldavista; - nwTR.appendChild(nwTD); - - if(!nodov.TieneHijos()){ - CreaNodoHijo(nodov); - if(parseInt(nodov.nivel)==0){ // Nodo raiz - nodov.imgsigno.setAttribute("value","menos_c",null); - nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_root.gif",null); - } - else{ - if(nodov.UltimoHermano()){ - nodov.imgsigno.setAttribute("value","menos_c",null); - nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_c.gif",null); - } - else{ - nodov.imgsigno.setAttribute("value","menos_t",null); - nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_t.gif",null); - } - } - var ATTonclick='clickImagenSigno(this,' + "'"+currentpathimg+"'"+','+nodov.nivel+');'; - nodov.imgsigno.setAttribute("onclick",ATTonclick,null); - nodov.imgsigno.setAttribute("border","0",null); - var oSPAN=nodov.imgsigno.parentNode; - var htmlIMG=oSPAN.innerHTML; - TDpadre=oSPAN.parentNode; - TDpadre.innerHTML='<A href="#">'+htmlIMG+'</A>'; - } - var pivoteNodo=nodov.ArbolHijos; - var nodoTD = pivoteNodo.childNodes[0];; - var nodoTABLE=nodoTD.childNodes[0]; - var nodoTBODY=nodoTABLE.childNodes[0]; - var nodoTR=nodoTBODY.childNodes[0]; - if(nodoTR!=null) - nodoTBODY.insertBefore(nwTR,nodoTR); - else - nodoTBODY.appendChild(nwTR); -} -//____________________________________________________________________________ -// -// Monta y devuelve el código HTML de la estructura de una celda vista -// Los parámetros recibidos son: -// - pivoteNodo: Nodo vista -// - tablanodo: Tabla nodo generada para la nueva celda vista -//____________________________________________________________________________ -function CreaCeldaVista(nodov,tablanodo){ - var nodoTD = document.createElement('TD'); - nodoTD.innerHTML=tablanodo; - var nodoTABLE=nodoTD.childNodes[0]; - var nodoTBODY=nodoTABLE.childNodes[0]; - var nodoTBODYTR=nodoTBODY.childNodes[0]; - var oIMG=nodoTBODYTR.getElementsByTagName('IMG')[0]; - var HTMLinner=nodoTBODYTR.innerHTML; - - if(nodov.TieneHijos()){ - var patron = new RegExp("nada_c","gi") - HTMLinner=HTMLinner.replace(patron,"nada_t"); - } - else{ - var patron = new RegExp("nada_t","gi") - HTMLinner=HTMLinner.replace(patron,"nada_c"); - } - var auxnodo=nodov; - var nwHTMLinner=""; - var img=""; - while(auxnodo!=null){ - (auxnodo.UltimoHermano())? img="nada.gif" : img="nada_l.gif"; - nwHTMLinner='<TD width="3px"></TD><TD width="16px"><IMG src="../images/signos/'+img+'" width="16px" height="16px" ></TD>'+nwHTMLinner; - auxnodo=auxnodo.PapaNodo(); - } - nwHTMLinner='<TABLE border=0 cellspacing=0 cellpadding=0><TR height="16px">'+nwHTMLinner+HTMLinner+"</TR></TABLE>"; // Contenido de la tabla del nodo literal - return(nwHTMLinner); -} -//____________________________________________________________________________ -// -// Crea un nuevo nodo Hijo (objeto TABLE) -// Parámetros: -// - nodov: Un nodo vista -//____________________________________________________________________________ -function CreaNodoHijo(nodov){ - var nivel=parseInt(nodov.nivel)+1; - var nTR=document.createElement('TR'); - nTR.id="TRNodoHijo-0"; - var nTD=document.createElement('TD'); - nTD.innerHTML='<TABLE with="100%"id="tablanivel-'+nivel+'" border="0" cellspacing="0" cellpadding="0"><TBODY></TBODY></TABLE>'; - nTR.appendChild(nTD); - - var pivoteNodo=nodov.Nodo.parentNode; - if(nodov.UltimoHermano()){ - pivoteNodo.appendChild(nTR); // Para insertar al final - } - else{ - pivoteNodo.insertBefore(nTR,nodov.siguienteHermano) - } - nodov.ArbolHijos=nTR; -} -//____________________________________________________________________________ -// -// Inserta un nodo en el árbol -// Especificaciones: -// Los parámetros recibidos son: -// - nodov: Nodo vista -//____________________________________________________________________________ -function EliminaNodo(nodov){ - var swuh=nodov.UltimoHermano(); - var pn=nodov.Nodo.parentNode; // Nodo padre - var papa=nodov.PapaNodo(); // Nodo vista padre - - if(nodov.TieneHijos()) - pn.removeChild(nodov.ArbolHijos); // Elimina arbol hijo - pn.removeChild(nodov.Nodo); // Elimina Nodo - - var antHermano=pn.lastChild - if(antHermano==null){ // El nodo padre no tiene más hijos - var pn=papa.ArbolHijos.parentNode; // Nodo padre - pn.removeChild(papa.ArbolHijos); // Elimina arbol hijo - ChgSignoPadreEliminaNodo(papa.imgsigno); - } - else{ - if(swuh){ // Si era el último hermano ... - var auxsplit=antHermano.getAttribute("id"); - var idTR=auxsplit.split("-") [0]; - if(idTR=="TRNodoHijo"){ - antHermano=antHermano.previousSibling; - while(antHermano.nodeType!=1 ) - antHermano=antHermano.previousSibling - var TAnchor=antHermano.getElementsByTagName('A'); - if(TAnchor.length==2) // Imagen de signo pulsable - var oIMG=TAnchor[0].childNodes[0]; - } - else{ - var TSpan=antHermano.getElementsByTagName('SPAN'); - var oIMG=TSpan[0].childNodes[0]; - } - var nh=TomaDatosNodo(oIMG); - ChgSignoEliminaNodo(oIMG); - if(nh.TieneHijos()) - ChgSignoNivel(nh.ArbolHijos,nh.nivel); - } - } -} -//----------------------------------------------------------------------------------------------------------------------- -// Cambia la imagen de signo del hermano anterior de un nodo eliminado -//----------------------------------------------------------------------------------------------------------------------- -function ChgSignoEliminaNodo(imgsigno){ - var signoimg=imgsigno.getAttribute("value"); - switch(signoimg){ - case "menos_t" : - imgsigno.setAttribute("value","menos_c",null); - imgsigno.setAttribute("src",currentpathimg+"/menos_c.gif",null); - break; - case "mas_t" : - imgsigno.setAttribute("value","mas_c",null); - imgsigno.setAttribute("src",currentpathimg+"/mas_c.gif",null); - break; - case "nada_t" : - imgsigno.setAttribute("value","nada_c",null); - imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null); - break; - } -} -//----------------------------------------------------------------------------------------------------------------------- -// Cambia la imagen de signo del nodo padre de un nodo eliminado ( unico hijo) -//----------------------------------------------------------------------------------------------------------------------- -function ChgSignoPadreEliminaNodo(imgsigno){ - var signoimg=imgsigno.getAttribute("value"); - switch(signoimg){ - case "menos_t" : - imgsigno.setAttribute("value","nada_t",null); - imgsigno.setAttribute("src",currentpathimg+"/nada_t.gif",null); - QuitaANCHOR(imgsigno); - break; - case "menos_c" : - imgsigno.setAttribute("value","nada_c",null); - imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null); - QuitaANCHOR(imgsigno); - break; - case "mas_t" : - imgsigno.setAttribute("value","nada_t",null); - imgsigno.setAttribute("src",currentpathimg+"/nada_t.gif",null); - QuitaANCHOR(imgsigno); - break; - case "mas_c" : - imgsigno.setAttribute("value","nada_c",null); - imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null); - QuitaANCHOR(imgsigno); - break; - } -} -//----------------------------------------------------------------------------------------------------------------------- -// Cambia la imagen de un determinado nivel -//----------------------------------------------------------------------------------------------------------------------- -function QuitaANCHOR(oIMG){ - var TAnchor=oIMG.parentNode; - var oHTML=TAnchor.innerHTML; - var oTD=TAnchor.parentNode; - oTD.innerHTML="<SPAN>"+oHTML+"</SPAN>"; -} -//----------------------------------------------------------------------------------------------------------------------- -// Cambia la imagen de un determinado nivel -//----------------------------------------------------------------------------------------------------------------------- -function ChgSignoNivel(arbolv,n){ - if(arbolv==null) return - var nodoTD =arbolv.childNodes[0]; - var nodoTABLE=nodoTD.childNodes[0]; - var nodoTBODY=nodoTABLE.childNodes[0]; - var oTRs=nodoTBODY.childNodes; - for(var i=0;i<oTRs.length;i++){ - var auxsplit=oTRs[i].getAttribute("id"); - var idTR=auxsplit.split("-") [0]; - if(idTR=="TRNodoHijo"){ - ChgSignoNivel(oTRs[i],n) - } - else{ - var oTABLE=oTRs[i].getElementsByTagName('TABLE'); - var oIMGs=oTABLE[0].getElementsByTagName('IMG'); - oIMGs[n].setAttribute("src",currentpathimg+"/nada.gif",null); - } - } -} -//____________________________________________________________________________ -// -// Se ejecuta cada vez que se mueve el puntero del ratón. Se usa para desmarca -// cualquier item de menu contextual que estuviese activo -//____________________________________________________________________________ -function click_de_raton_prov(e){ - if(IE){ - botonraton=event.button - event.returnValue=true; - return; - } - if(NS){ - botonraton=e.which; - e.returnValue=true; - return; - } -} -//____________________________________________________________________________ -// -// Recupera el navegador utilizado -//____________________________________________________________________________ -var IE=(navigator.appName=="Microsoft Internet Explorer"); -var NS=(navigator.appName=="Netscape"); -//____________________________________________________________________________ -// -// Redirecciona el evento onmousedown a la función de usuario especificada. -//____________________________________________________________________________ -document.onmousedown = click_de_raton_prov; // Redefine el evento onmousedown - if(NS) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP) - - diff --git a/admin/WebConsole/clases/jscripts/MenuContextual.js b/admin/WebConsole/clases/jscripts/MenuContextual.js deleted file mode 100644 index e63ffa51..00000000 --- a/admin/WebConsole/clases/jscripts/MenuContextual.js +++ /dev/null @@ -1,395 +0,0 @@ -// *************************************************************************** -// Libreria de scripts de Javascript -// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla - -// Fichero: menucontextual.js -// Este fichero implementa las funciones javascript de la clase MenuContextual -// *************************************************************************** -var ctx_grissistema="#d4d0c8" -var ctx_azulmarino="#0a266a"; -var ctx_blanco="#ffffff"; -var ctx_negro="#000000"; -var ctx_grissombra="#808080"; - -gmenuctx=new Array(); // Guarda el último menu flotante -var idxmnu=0 // Indice de los menus flotantes -var currentItem=null; -var currentPadresubmenu; -var currentPadreY; - -var ClickX=null // Coordenada x del evento click del boton derecho -var ClickY=null // Coordenada y del evento click del boton derecho -var botonraton=null; -//____________________________________________________________________________ -// -// Esta función muestra un menu contextual -// Parámetros: -// - x: Coordenada x de referencia -// - y: Coordenada y de referencia -// - menuctx: Objeto DIV contenedor del menu contextual -//____________________________________________________________________________ -function muestra_contextual(x,y,menuctx){ - var margen=0 - dpzx=16 - dpzy=16 - wtop=calculatop_ctx(y,dpzy,margen,menuctx) // Calcula posición del menu contextual - wleft=calculaleft_ctx(x,dpzx,margen,menuctx) - ftop=wtop+parseInt(document.body.scrollTop) // Tiene en cuenta el scrolling - fleft=wleft+parseInt(document.body.scrollLeft) - menuctx.style.top=ftop - menuctx.style.left=fleft - menuctx.style.visibility="visible" - menuctxSetSelectedIndex(menuctx,-1) // Coloca el nuevo indice - gmenuctx[idxmnu++]=menuctx; -} -//____________________________________________________________________________ -// -// Calcula coordenada top para el menu contextual que se mostrará. -// Parametros: -// - oriy : Coordenada Y del objeto que provoca el evento -// - dpzy : Desplazamiento sobre el eje y -// - margen : Margen para que el menu aparezca un poco separado del ese objeto -// - menuctx: El menu (objeto DIV) que se mostrará -//____________________________________________________________________________ -function calculatop_ctx(oriy,dpzy,margen,menuctx){ // Calcula Y del menu contextual - largodiv=parseInt(menuctx.offsetHeight); - var wtop=oriy+dpzy+margen - if (wtop+largodiv>parseInt(document.body.clientHeight)){ - var nwtop=oriy-dpzy-margen-largodiv - if (nwtop>0) wtop=nwtop - } - return(wtop) -} -//____________________________________________________________________________ -// -// Calcula coordenada left para el menu contextual que se mostrará. -// Parametros: -// - orix : Coordenada X del objeto que provoca el evento -// - dpzx : Desplazamiento sobre el eje x -// - margen : Margen para que el menu aparezca un poco separado del ese objeto -// - menuctx: El menu (objeto DIV) que se mostrará -//____________________________________________________________________________ -function calculaleft_ctx(orix,dpzx,margen,menuctx){ // Calcula Y del menu contextual - anchodiv=parseInt(menuctx.offsetWidth) - var wleft=orix+dpzx+margen - var maximodpl=parseInt(document.body.clientWidth) - if (wleft+anchodiv>maximodpl){ // Si no cabe a la derecha - var nwleft=orix-dpzx-margen-anchodiv // lo intenta a la izda. - if (nwleft>0) wleft=nwleft - else{ - wleft=maximodpl-dpzx-margen-anchodiv; - if(wleft<document.body.scrollLeft) wleft=document.body.scrollLeft+16 - } - } - return(wleft) -} -//____________________________________________________________________________ -// -// Esta función devuelve el objeto DIV al que pertenece el item <TR> -// Parametros: -// - o: El objeto <TR> -//____________________________________________________________________________ -function contextual(o){ - while(o.tagName!="DIV") - o=o.parentNode - return(o) -} -//____________________________________________________________________________ -// -// Esta función devuelve el objeto <TR> apuntado por el indice -// Parametros: -// - o: El objeto TR -// - idx: el indice del item, si es nulo se devuelve el item(objeto TR), seleccionado -//____________________________________________________________________________ -function menuctxSelectedItem(o,idx){ - var oDIV=contextual(o); // Se asegura que el objeto de inicio es DIV - var oTABLE=oDIV.childNodes[0]; // objeto TABLE - var oINPUT=oDIV.childNodes[1]; // objeto INPUT - var oTBODY=oTABLE.getElementsByTagName('TBODY')[0]; - if(idx==null) // No se especificó indice, devuelve el item seleccionado - idx=oINPUT.getAttribute("value"); - var oTRS=oTBODY.getElementsByTagName('TR'); - for (var i=0;i<oTRS.length;i++){ - var oTR=oTRS[i]; - if(oTR.getAttribute("id")==idx) return(oTR); - } - return(null); -} -//____________________________________________________________________________ -// -// Esta función actualiza el nuevo el indice del item seleccionado -// Parametros: -// - o: El objeto DIV que contiene el menu contextual o un item(objeto TR) de él -// - i: El valor del indice -//____________________________________________________________________________ -function menuctxSetSelectedIndex(o,idx){ - var oDIV=contextual(o); // Se asegura que el objeto de inicio es DIV - var oINPUT=oDIV.childNodes[1]; - oINPUT.value=idx; -} -//____________________________________________________________________________ -// -// Esta función devuelve el indice del item seleccionado -// Parametros: -// -o : El objeto DIV que contiene el menu contextual o un item(objeto TR) de él -//____________________________________________________________________________ -function menuctxSelectedIndex(o){ - var oDIV=contextual(o); // Se asegura que el objeto de inicio es DIV - var oINPUT=oDIV.childNodes[1]; - return(oINPUT.value); -} -//____________________________________________________________________________ -// Se ejecuta cuando se posiciona el cursor dentro de un item de algún menú contextual. -// Parámetros: -// - o: El item (objeto TR) donde se ha colocado el ratón -//____________________________________________________________________________ -function sobre_contextual(o){ - var oDIV=contextual(o) // Se asegura que el objeto de inicio es DIV - var idx=menuctxSelectedIndex(oDIV) // Indice del Item anterior seleccionado - var nwid=o.getAttribute("id"); - if (parseInt(idx)!=parseInt(nwid)){ // Si cambio de item - if(idx>0){ // Si existÃa item anterior seleccionado - desmarcar_item(oDIV,idx) // Desmarca item anterior - } - marcar_item(o); // Marca el actual item - currentItem=o; - } -} -//____________________________________________________________________________ -// -// Hace resaltar el item del menu contextual donde se coloca el cursor. -// Si este item tuviese un submenu contextual,éste también aparecerÃa. -// Además, inicializa el campo oculto de cada DIV donde se guarda el Ãndice -// del item selecionado. -// -// Parametros: -// - item: El objeto <TR> -//____________________________________________________________________________ -function marcar_item(item){ - marca_desmarca(item,true) // Marca el item - if (item.getAttribute("name")!=""){ // Existe submenu contextual - currentPadresubmenu=item - currentPadreY=ClickY - setTimeout ("muestra_submenu();", 300); - } - menuctxSetSelectedIndex(contextual(item),item.getAttribute("id")); // Coloca el nuevo indice -} -//____________________________________________________________________________ -// -// Quita el resalte de un item y oculta los posibles submenus que tuviera -// Parametros: -// -o : El objeto DIV que contiene el menu contextual -// - idx: el indice del item, si es nulo desmarca el item(objeto TR), seleccionado -//____________________________________________________________________________ -function desmarcar_item(o,idx){ - var oDIV=contextual(o) // Se asegura que el objeto de inicio es DIV - if(idx==null) // No se especificó indice - idx=menuctxSelectedIndex(oDIV) // Indice del Item seleccionado - var item=menuctxSelectedItem(oDIV,idx) - if(item==null) return // No hay item seleccionado - marca_desmarca(item,false); - var nomsub=item.getAttribute("name"); - if (nomsub!=null &&nomsub!=""){ // Tiene submenu - var submenuctx=document.getElementById(nomsub); - desmarcar_item(submenuctx); // Desmarca submenu - submenuctx.style.visibility="hidden"; - } -} -//____________________________________________________________________________ -// -// Marca o desmarca items dependiendo del parametro sw. -// Parámetros: -// - o: El item (objeto TR) -// Si sw=true marca, si sw=false demarca -//____________________________________________________________________________ -function marca_desmarca(o,sw){ - if(sw){ // Marca - var wfondo=ctx_azulmarino; - var wcolor=ctx_blanco; - } - else{ // Desmarca - var wfondo=ctx_grissistema; - var wcolor=ctx_negro; - } - (MenuconImagen(contextual(o)) ? i0=2:i0=1); - var nh=o.childNodes.length; - for (var i=i0;i<nh-1;i++){ - var oTD=o.childNodes[i]; - var oIMGS=oTD.getElementsByTagName('IMG'); - if (oIMGS.length>0){ - var oIMG=oIMGS[0]; - if (oIMG.getAttribute("name")=="swsbfn"){ // imagen switch submenu - oTD.style.backgroundColor=wfondo - oTD.style.color=wcolor - if (sw) - oIMG.setAttribute("src","../images/flotantes/swsbfb.gif",null); - else - oIMG.setAttribute("src","../images/flotantes/swsbfn.gif",null); - } - else{ // imagen del item - if (sw){ // Marcar - oIMG.style.border="1px"; - oIMG.style.borderStyle="outset"; - - } - else{ // Desmarcar - oIMG.style.borderStyle="none"; - } - } - } - else{ - oTD.style.backgroundColor=wfondo - var oSPAN=oTD.getElementsByTagName('SPAN'); - if (oSPAN.length>0) - oSPAN[0].style.color=wcolor - } - } -} -//____________________________________________________________________________ -// -// Detecta si el menu contextual tiene items con imágenes asociadas -// Devuelve true en caso afirmativo y false en caso contrario. -//____________________________________________________________________________ -function MenuconImagen(o){ - var oDIV=contextual(o); - var oIMGS=oDIV.getElementsByTagName('IMG'); - return(oIMGS.length>0); -} -//____________________________________________________________________________ -function reset_contextual(x,y){ - var swm=false; - for (var i=0;i<idxmnu;i++ ){ - if (gmenuctx[i].style.visibility=="visible") - swm=swm || EnContextual(x,y,gmenuctx[i]) - } - if (!swm){ // No se ha hecho click en ningún menu contextual - for (var i=0;i<idxmnu;i++ ){ - desmarcar_item(gmenuctx[i]); - gmenuctx[i].style.visibility="hidden"; - gmenuctx[i]=null - } - idxmnu=0; - } -} -//____________________________________________________________________________ -// -// Detecta si ha hecho fuera del menu contextual pasado como parametro -// Parametros: -// - x : Coordenada X de la pantalla donde se hizo click -// - y : Coordenada Y de la pantalla donde se hizo click -// - menuctx: El submenu (objeto DIV) -//____________________________________________________________________________ -function EnContextual(x,y,menuctx){ - origen_x=parseInt(menuctx.offsetLeft)-parseInt(document.body.scrollLeft) - origen_y=parseInt(menuctx.offsetTop)-parseInt(document.body.scrollTop) - anchodiv=parseInt(menuctx.offsetWidth) - largodiv=parseInt(menuctx.offsetHeight) - - if ( x>=origen_x && x<=origen_x+anchodiv && y>=origen_y && y<=origen_y+largodiv ) return true - return(false) -} -//____________________________________________________________________________ -// -// Muestra un submenu -// Parametros: -// - item: El objeto <TR> padre del submenu -//____________________________________________________________________________ -function muestra_submenu(){ - if(currentPadresubmenu==currentItem){ - var objdiv=contextual(currentPadresubmenu) - var menuctx=document.getElementById(currentPadresubmenu.getAttribute("name")); // Obtiene el submenu - //desmarcar_item(menuctx) // Desmarca el submenu por si se ha usado anteriormente - wleft=subcalculaleft_ctx(objdiv,menuctx) // La x en función del padre - wtop=subcalculatop_ctx(currentPadreY,menuctx) // La y depende de la longitud del submenu - menuctx.style.top=wtop - menuctx.style.left=wleft - menuctx.style.visibility="visible"; - menuctxSetSelectedIndex(menuctx,-1) // Coloca el nuevo indice - gmenuctx[idxmnu++]=menuctx; - } -} -//____________________________________________________________________________ -// -// Calcula coordenada top para el submenu contextual que se mostrará. -// Parametros: -// - y : Coordenada Y de la pantalla donde se hizo click -// - menuctx: El submenu (objeto DIV) que se mostrará -//____________________________________________________________________________ -function subcalculatop_ctx(y,menuctx){ // Calcula el posicionamiento (y) del DIV ( SUBmenu contextual) - var dpl=0 - largodiv=parseInt(menuctx.offsetHeight) - var wtop=y+dpl+parseInt(document.body.scrollTop) - if (parseInt(wtop+largodiv)>parseInt(document.body.clientHeight+parseInt(document.body.scrollTop))){ - var nwtop=y+parseInt(document.body.scrollTop)-16-largodiv - if (nwtop>0) wtop=nwtop - } - return(wtop) -} -//____________________________________________________________________________ -// -// Calcula coordenada left para el submenu contextual que se mostrará. -// Parametros: -// - padrediv : Objeto DIV padre del submenu a mostrar -// - menuctx: El submenu (objeto DIV) que se mostrará -//____________________________________________________________________________ -function subcalculaleft_ctx(padrediv,menuctx){ // Calcula el posicionamiento (x) del DIV ( SUBmenu contextual) - anchopadrediv=parseInt(padrediv.offsetWidth) // Ancho del div padre - anchomenuctx=parseInt(menuctx.offsetWidth) // Ancho del div - if(IE) - leftpadrediv=padrediv.style.pixelLeft // Coordenada x del div padre - else - if(NS) - leftpadrediv=parseInt(padrediv.style.left) // Coordenada x del div padre - desplazamiento=leftpadrediv+anchopadrediv-4 // Desplazamiento - var wleft=parseInt(desplazamiento) - var maximodpl=parseInt(document.body.clientWidth)+parseInt(document.body.scrollLeft) - if (wleft+anchomenuctx>maximodpl){ - var nwleft=leftpadrediv-anchomenuctx - if (nwleft>0) wleft=nwleft - else{ - wleft=maximodpl-anchomenuctx; - if(wleft<document.body.scrollLeft) wleft=document.body.scrollLeft+18 - } - } - return(wleft) -} -//____________________________________________________________________________ -// -// Se ejecuta cada vez que se hace click con el puntero del ratón. Se usa para desmarca -// cualquier item de menu contextual que estuviese activo -//____________________________________________________________________________ -function click_de_raton(e){ - if(IE){ - botonraton=event.button - event.returnValue=true; - } - if(NS){ - botonraton=e.which; - e.returnValue=true; - } - if (gmenuctx.length>0){ - reset_contextual(ClickX,ClickY); - } -} -//____________________________________________________________________________ -// -// Se ejecuta cada vez que se mueve el puntero del ratón. Se usa para capturar coordenadas -//____________________________________________________________________________ -function move_de_raton(e){ - if(IE){ - ClickX=event.clientX - ClickY=event.clientY - event.returnValue=true; - } - if(NS){ - ClickX=e.clientX - ClickY=e.clientY - e.returnValue=true; - } -} -//____________________________________________________________________________ -// -// Redirecciona el evento onmousedown a la función de usuario especificada. -//____________________________________________________________________________ -document.onmousedown = click_de_raton; // Redefine el evento onmousedown -document.onmousemove = move_de_raton; // Redefine el evento onmousedown |