From 55d3886138cf28e25248767f211b3d5058a788b6 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Mon, 21 Jul 2003 18:39:03 +0000 Subject: [PATCH] =?utf8?q?-=20Se=20filtran=20los=20sistemas=20ya=20agregad?= =?utf8?q?os=20a=20la=20hora=20de=20agregar=20uno=20nuevo.=20-=20Se=20crea?= =?utf8?q?=20un=20m=C3=A9todo=20est=C3=A1tico=20para=20obtener=20un=20arra?= =?utf8?q?y=20con=20los=20ID=20de=20los=20=20=20sistemas=20ya=20cargados?= =?utf8?q?=20(para=20filtrar).=20-=20Se=20agrega=20un=20comentario=20a=20l?= =?utf8?q?os=20.ini=20de=20AI=5FDBTreeObject.=20-=20Se=20actualiza=20la=20?= =?utf8?q?TODO.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- TODO | 6 ++---- doc/uml.xmi | 19 ++++++++++++------- lib/AI/Form.php | 23 +++++++++++++++-------- lib/AI/GrupoSecciones.ini | 2 ++ lib/AI/Servicio.ini | 2 ++ lib/AI/Sistema.php | 30 +++++++++++++++++++++++++++++- 6 files changed, 62 insertions(+), 20 deletions(-) diff --git a/TODO b/TODO index 6468e1f..9fc3e85 100644 --- a/TODO +++ b/TODO @@ -3,12 +3,10 @@ $Id$ - Mover listarImagenes() y arbol2array() de Form.php a un lugar más apropiado y con un nombre más apropiado. - Ordenar todo mejor (index.php no da más). -- Mejorar obtención de lista de sistemas (que no cree una DB on-the-fly en - Form.php). -- Filtrar sistemas ya agregados en el select para agregar un sistema nuevo - (SAMURAI_Sistema no sirve para esto). +- No crear una DB on-the-fly en Form.php. - Ver que se hace con los hijos cuando se borra un elemento. Opciones: * Borrar todos los hijos. * Mover los hijos al padre del elemento a borrar (recomendado). - Agregar links para agregar un elemento nuevo sin tener que tocar en el ícono de la sección que es poco intuitivo. +- Ver que se hace con sistemas borrados de SAMURAI con baja lógica. diff --git a/doc/uml.xmi b/doc/uml.xmi index d5e692f..6597776 100644 --- a/doc/uml.xmi +++ b/doc/uml.xmi @@ -9,7 +9,7 @@ - + @@ -37,6 +37,10 @@ + + + + - + @@ -143,7 +147,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + @@ -161,13 +165,13 @@ x2c:get" name="hijos" static="0" scope="202" /> - + - + @@ -180,13 +184,13 @@ x2c:get" name="hijos" static="0" scope="202" /> - + - + @@ -250,6 +254,7 @@ x2c:get" name="hijos" static="0" scope="202" /> + diff --git a/lib/AI/Form.php b/lib/AI/Form.php index 141e9c4..dc81494 100644 --- a/lib/AI/Form.php +++ b/lib/AI/Form.php @@ -57,6 +57,8 @@ class AI_Form extends MECON_HTML_QuickForm { */ function iniciar(&$obj, $accion = AI_ALTA) // ~X2C { + # FIXME - Tomar la db desde afuera. + $db = AI_DB::connect('../conf/DB.ini'); $tipo = substr(get_class($obj), 3); $s_tipo = ucfirst($tipo); if ($tipo == 'gruposecciones') { @@ -81,9 +83,15 @@ class AI_Form extends MECON_HTML_QuickForm { // Elementos. if ($tipo == 'sistema') { require_once 'SAMURAI/Sistema.php'; - $sistemas = array('' => '--') + - SAMURAI_Sistema::getArraySistemas(AI_DB::connect('../conf/DB.ini')); - $fId =& $this->addElement('select', $tipo, 'Sistema', $sistemas); + $sistemas = array('' => '--'); + $cargados = AI_Sistema::getSistemasArray($db); + foreach (SAMURAI_Sistema::getArraySistemas($db) as $id => $nom) { + if (!in_array($id, $cargados) + or ($accion & (AI_BAJA | AI_MODIF) and $id == $obj->$tipo)) { + $sistemas[$id] = $nom; + } + } + $fId =& $this->addElement('select', $tipo, 'Sistema', $sistemas); $this->addRule($tipo, 'Debe ingresar un sistema.', 'required'); } if ($accion & (AI_BAJA | AI_MODIF)) { @@ -97,11 +105,10 @@ class AI_Form extends MECON_HTML_QuickForm { } if ($tipo == 'grupo' or $tipo == 'servicio') { $tipos = array('' => '--', '0' => 'Página Principal') - + arbol2array(AI_DB::connect('../conf/DB.ini'), - ($tipo == 'grupo') ? 'grupo_secciones' : $tipo, 0, $tipo, - 'nombre', $tipo . '_padre', 'ASC'); + + arbol2array($db, ($tipo == 'grupo') ? 'grupo_secciones' : $tipo, + 0, $tipo, 'nombre', $tipo . '_padre', 'ASC'); // Saco el elemento actual si hay uno cargado (no puede ser padre de si mismo). - if ($obj->$tipo) { + if ($accion & (AI_BAJA | AI_MODIF)) { unset($tipos[$obj->$tipo]); } $fPadre =& $this->addElement('select', $padre, 'Padre', $tipos); @@ -121,7 +128,7 @@ class AI_Form extends MECON_HTML_QuickForm { $fAntiguedad =& $this->addElement('select', 'antiguedad', 'Antigüedad', array(3 => '3 días', 1 => '1 día', 7 => '1 semana')); $fSecciones =& $this->addElement('select', 'secciones', 'Secciones', - AI_GrupoSecciones::getSeccionesArray(AI_DB::connect('../conf/DB.ini')), + AI_GrupoSecciones::getSeccionesArray($db), array('multiple' => 'multiple', 'size' => 8)); $fMostrarHijos =& $this->addElement('checkbox', 'mostrar_hijos', 'Mostrar hijos'); // Validación. diff --git a/lib/AI/GrupoSecciones.ini b/lib/AI/GrupoSecciones.ini index 3a9e89c..8b6cc27 100644 --- a/lib/AI/GrupoSecciones.ini +++ b/lib/AI/GrupoSecciones.ini @@ -3,6 +3,8 @@ base = intranet tabla = grupo_secciones id = grupo + +; Para AI_DBTreeObject. padre = grupo_padre ; Vinculación con secciones de noticias. diff --git a/lib/AI/Servicio.ini b/lib/AI/Servicio.ini index 05eae1e..5b9c1c1 100644 --- a/lib/AI/Servicio.ini +++ b/lib/AI/Servicio.ini @@ -3,4 +3,6 @@ base = intranet tabla = servicio id = servicio + +; Para AI_DBTreeObject. padre = servicio_padre diff --git a/lib/AI/Sistema.php b/lib/AI/Sistema.php index c073a15..c7d40da 100644 --- a/lib/AI/Sistema.php +++ b/lib/AI/Sistema.php @@ -144,6 +144,34 @@ FIXME - preguntar a gonzalo si le sirve. } // -X2C + // +X2C Operation 528 + /** + * Obtiene un array con los identificadores de los sistemas cargados. + * + * @param DB $db Base de datos de la cual obtener los sistemas. + * @param string $where Clausula WHERE para filtrar resultados. + * + * @return array + * @access public + * @static + */ + function getSistemasArray($db, $where = '') // ~X2C + { + static $conf; + if (!$conf) { + $conf = parse_ini_file(AI_SISTEMA_CONFFILE, true); + } + extract($conf); + $query = " + SELECT $id + FROM $base.$tabla"; + if ($where) { + $query .= "WHERE $where"; + } + return $db->getCol($query); + } + // -X2C + } // -X2C Class :AI_Sistema -?> \ No newline at end of file +?> -- 2.43.0