summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/clases
diff options
context:
space:
mode:
authoralonso <alonso@us.es>2009-11-04 11:04:54 +0000
committeralonso <alonso@us.es>2009-11-04 11:04:54 +0000
commit7b3bc4abe41dff4402ee433a7eab47c2b36c47bc (patch)
tree8830f3b0fbec41b03f207273eb6f5ff90eaa09ce /admin/WebConsole/clases
parent3acdc93388ab0907242a9a074df54e1cc93b7908 (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.php648
-rw-r--r--admin/WebConsole/clases/ArbolVistaXML.php272
-rw-r--r--admin/WebConsole/clases/EncripDescrip.php56
-rw-r--r--admin/WebConsole/clases/MenuContextual.php164
-rw-r--r--admin/WebConsole/clases/SockHidra.php120
-rw-r--r--admin/WebConsole/clases/XmlPhp.php285
-rw-r--r--admin/WebConsole/clases/jscripts/ArbolVistaXML.js565
-rw-r--r--admin/WebConsole/clases/jscripts/MenuContextual.js395
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