From 89f9ee9162349d9d5027d60f6db398a8c2767f17 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Mon, 28 Jul 2003 17:12:53 +0000 Subject: [PATCH] Se crea una subclase de HTML_ArbolDB para liberar un poco el index y mantener bases de datos en bibliotecas --- TODO | 1 - doc/local_lib/uml.xmi | 40 ++++++++++---- doc/uml.xmi | 8 +-- lib/AI/Sistema.php | 2 +- sistema/local_lib/AI/Arbol.php | 99 ++++++++++++++++++++++++++++++++++ sistema/www/index.php | 30 +---------- 6 files changed, 136 insertions(+), 44 deletions(-) create mode 100644 sistema/local_lib/AI/Arbol.php diff --git a/TODO b/TODO index daf478f..dfa9096 100644 --- a/TODO +++ b/TODO @@ -4,5 +4,4 @@ $Id$ ícono de la sección que es poco intuitivo. - Ver que se hace con sistemas borrados de SAMURAI con baja lógica. - Resolver tema de JOIN con SAMURAI. -- Hacer subclase de ArbolDB al estilo de QuickForm. diff --git a/doc/local_lib/uml.xmi b/doc/local_lib/uml.xmi index 142832e..a0804be 100644 --- a/doc/local_lib/uml.xmi +++ b/doc/local_lib/uml.xmi @@ -9,7 +9,7 @@ - + @@ -37,28 +37,44 @@ x2c:noclass" name="general" static="0" scope="200" > + + + + + + + - - - - - + + + + + + + - - + + - - + + + + + + + + @@ -68,6 +84,9 @@ x2c:noclass" name="general" static="0" scope="200" > + + + @@ -81,6 +100,7 @@ x2c:noclass" name="general" static="0" scope="200" > + diff --git a/doc/uml.xmi b/doc/uml.xmi index 85c596e..cfcc90d 100644 --- a/doc/uml.xmi +++ b/doc/uml.xmi @@ -186,7 +186,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + @@ -196,7 +196,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + @@ -210,7 +210,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + @@ -223,7 +223,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + diff --git a/lib/AI/Sistema.php b/lib/AI/Sistema.php index dc04622..a2a2045 100644 --- a/lib/AI/Sistema.php +++ b/lib/AI/Sistema.php @@ -267,4 +267,4 @@ class AI_Sistema extends AI_DBObject { } // -X2C Class :AI_Sistema -?> +?> \ No newline at end of file diff --git a/sistema/local_lib/AI/Arbol.php b/sistema/local_lib/AI/Arbol.php new file mode 100644 index 0000000..4b80df9 --- /dev/null +++ b/sistema/local_lib/AI/Arbol.php @@ -0,0 +1,99 @@ + | +// +--------------------------------------------------------------------+ +// +// $Id$ +// + +// +X2C includes +require_once 'MECON/HTML/Arbol/ArbolDB.php'; +// ~X2C + +// +X2C Class 535 :AI_Arbol +/** + * Arbol para generar los menes. + * + * @package AI_Local + * @access public + */ +class AI_Arbol extends HTML_ArbolDB { + // ~X2C + + // +X2C Operation 536 + /** + * Constructor. + * + * @param mixed $objeto Objeto del cual generar el ?bol. Puede ser AI_GrupoSecciones, AI_Servicio o AI_Sistema. + * @param DB &$db Base de datos de donde sacar los datos para el ?bol. + * + * @return void + * @access public + */ + function AI_Arbol($objeto, &$db) // ~X2C + { + switch (get_class($objeto)) { + case 'ai_gruposecciones': + $tipo = 'grupo'; + $titulo = 'NOTICIAS'; + $tabla = 'grupo_secciones'; + break; + case 'ai_servicio': + $tipo = 'servicio'; + $titulo = 'SERVICIOS'; + $tabla = $tipo; + break; + case 'ai_sistema': + $tipo = 'sistema'; + $titulo = 'SISTEMAS'; + $tabla = $tipo; + break; + } + $dbdata = array( + 'db' => &$db, + 'tabla' => $tabla, + 'id' => $tipo, + 'nombre' => 'nombre', + 'order' => 'asc', + 'id_activo' => $objeto->$tipo, + ); + if ($tipo == 'grupo' or $tipo == 'servicio') { + $dbdata['id_padre'] = $tipo . '_padre'; + } elseif ($tipo == 'sistema') { // FIXME - horrible!!! + $dbdata = + array( + 'tabla' => "intranet.$tabla as A, samurai.sistema as S", + 'id' => "A.$tipo", + 'nombre' => 'S.nombre_sistema', + 'where' => 'S.id_sistema = A.sistema AND S.estado = 1', + ) + + $dbdata; + } + parent::HTML_ArbolDB($dbdata, $titulo, $tipo.'?accion='.AI_MODIF.'&id='); + } + // -X2C + +} // -X2C Class :AI_Arbol + +?> \ No newline at end of file diff --git a/sistema/www/index.php b/sistema/www/index.php index 090c6fb..0f0184f 100644 --- a/sistema/www/index.php +++ b/sistema/www/index.php @@ -52,21 +52,18 @@ if (@$_SERVER['PATH_INFO']) { $require = 'AI/GrupoSecciones.php'; $tabla = 'grupo_secciones'; $nombre = "grupo de secciones"; - $arbol = 'NOTICIAS'; } elseif ($tmp == 'servicio') { $tipo = $tmp; $clase = 'AI_Servicio'; $require = 'AI/Servicio.php'; $tabla = $tipo; $nombre = $tipo; - $arbol = 'SERVICIOS'; } elseif ($tmp == 'sistema') { $tipo = $tmp; $clase = 'AI_Sistema'; $require = 'AI/Sistema.php'; $tabla = $tipo; $nombre = $tipo; - $arbol = 'SISTEMAS'; } else { // No hay un objeto válido para administrar. header('Location: '.$_SERVER['SCRIPT_NAME']); } @@ -133,31 +130,8 @@ if ($tipo) { // }}} // Creo el árbol con el tipo de objeto que manejo y lo agrego a la página. {{{ - require_once 'MECON/HTML/Arbol/ArbolDB.php'; - $dbdata = array( - 'db' => &$db, - 'tabla' => $tabla, - 'id' => $tipo, - 'nombre' => 'nombre', - 'order' => 'asc', - ); - // Activo el id del objeto que estamos modificando. - if ($accion & (AI_BAJA | AI_MODIF)) { - $dbdata['id_activo'] = $obj->$tipo; - } - if ($tipo == 'grupo' or $tipo == 'servicio') { - $dbdata['id_padre'] = $tipo . '_padre'; - } elseif ($tipo == 'sistema') { // FIXME - horrible!!! - $dbdata = - array( - 'tabla' => "intranet.$tabla as A, samurai.sistema as S", - 'id' => "A.$tipo", - 'nombre' => 'S.nombre_sistema', - 'where' => 'S.id_sistema = A.sistema AND S.estado = 1', - ) - + $dbdata; - } - $arbol = new HTML_ArbolDB($dbdata, $arbol, $tipo.'?accion='.AI_MODIF.'&id='); + require_once 'AI/Arbol.php'; + $arbol = new AI_Arbol($obj, $db); // }}} // Inicio el formulario, cargando datos de ser necesario. {{{ -- 2.43.0