From 6dae897ef96ea30feeb2fa6d5de82c9c7775b479 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Fri, 19 Sep 2003 17:17:19 +0000 Subject: [PATCH] =?utf8?q?Grupo=20de=20noticias:=20-=20Ahora=20una=20secci?= =?utf8?q?=C3=B3n=20puede=20pertenecer=20s=C3=B3lo=20a=20un=20grupo.=20-?= =?utf8?q?=20Al=20agregar=20un=20grupo=20se=20muestran=20s=C3=B3lo=20las?= =?utf8?q?=20secciones=20que=20todav=C3=ADa=20no=20est=C3=A1n=20=20=20en?= =?utf8?q?=20ning=C3=BAn=20grupo.=20Al=20modificar=20se=20muestran=20las?= =?utf8?q?=20que=20no=20est=C3=A1n=20en=20ning=C3=BAn=20=20=20grupo=20m?= =?utf8?q?=C3=A1s=20las=20que=20est=C3=A1n=20en=20el=20grupo=20a=20modific?= =?utf8?q?ar.=20Arbol:=20-=20Se=20arreglan=20los=20=C3=A1rboles=20para=20q?= =?utf8?q?ue=20funcione=20con=20la=20=C3=BAltima=20versi=C3=B3n.=20-=20Los?= =?utf8?q?=20=C3=A1rboles=20aparecen=20sin=20expandir=20en=20el=20men?= =?utf8?q?=C3=BA=20y=20expandido=20en=20los=20select=20=20=20para=20elegir?= =?utf8?q?=20el=20padre.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- TODO | 4 +- doc/local_lib/uml.xmi | 58 +++++++++++------------ doc/uml.xmi | 84 ++++++++++++++++++--------------- lib/AI/GrupoSecciones.php | 24 ++++++---- sistema/local_lib/AI/Arbol.php | 12 +++-- sistema/local_lib/AI/DB.php | 2 +- sistema/local_lib/AI/Form.php | 11 +++-- sistema/www/index.php | 14 +++--- sql/grupo_secciones_seccion.sql | 2 +- 9 files changed, 115 insertions(+), 96 deletions(-) diff --git a/TODO b/TODO index 93b6bbc..c08185b 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,5 @@ $Id$ -- Ver que se hace con sistemas borrados de SAMURAI con baja lógica. -- Resolver tema de JOIN con SAMURAI. +- Ver que se hace con sistemas borrados de SAMURAI con baja lógica. No se + muestran en AI y quedan como 'basura'. diff --git a/doc/local_lib/uml.xmi b/doc/local_lib/uml.xmi index 9b4ab19..48a4874 100644 --- a/doc/local_lib/uml.xmi +++ b/doc/local_lib/uml.xmi @@ -6,7 +6,7 @@ 1.1.5 UnicodeUTF8 - + @@ -22,8 +22,7 @@ - - + @@ -44,6 +43,7 @@ x2c:noclass" name="general" static="0" scope="200" > + @@ -51,51 +51,51 @@ x2c:noclass" name="general" static="0" scope="200" > - + - - - - - - - + + + + + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + @@ -118,7 +118,7 @@ x2c:noclass" name="general" static="0" scope="200" > - + diff --git a/doc/uml.xmi b/doc/uml.xmi index effbf5e..d6351ef 100644 --- a/doc/uml.xmi +++ b/doc/uml.xmi @@ -4,12 +4,13 @@ umbrello uml modeller http://uml.sf.net 1.1.5 + UnicodeUTF8 - + @@ -22,8 +23,8 @@ - - + + @@ -42,24 +43,24 @@ - - + + - + - - - + + + - + @@ -82,21 +83,27 @@ x2c:include: PEAR.php" name="PEAR_Error" static="0" scope="200" /> - + + + + + + - + - + @@ -115,7 +122,7 @@ x2c:include: PEAR.php" name="PEAR_Error" static="0" scope="200" /> - + @@ -134,25 +141,25 @@ x2c:get" name="hijos" static="0" scope="202" /> - + - - - - - - - + + + + + + + - - - + + + - - + + @@ -160,26 +167,26 @@ x2c:get" name="hijos" static="0" scope="202" /> - + - + - - + + - + - - + + @@ -187,8 +194,8 @@ x2c:get" name="hijos" static="0" scope="202" /> - - + + @@ -196,7 +203,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + @@ -216,7 +223,7 @@ x2c:get" name="hijos" static="0" scope="202" /> - + @@ -227,6 +234,7 @@ x2c:get" name="hijos" static="0" scope="202" /> + diff --git a/lib/AI/GrupoSecciones.php b/lib/AI/GrupoSecciones.php index f5527b7..df21dc6 100644 --- a/lib/AI/GrupoSecciones.php +++ b/lib/AI/GrupoSecciones.php @@ -221,25 +221,32 @@ class AI_GrupoSecciones extends AI_DBTreeObject { // +X2C Operation 512 /** * Obtiene un array con una lista de secciones. +Sólo se obtienen las secciones que todavía no pertenecen a ningún grupo. Si se especifica un grupo, se agregan las secciones de ese grupo al array resultante. * * @param DB $db Base de datos a usar para obtener los datos. + * @param int $grupo Grupo del cual obtener las secciones. * * @return array * @access public * @static */ - function getSeccionesArray($db = null) // ~X2C + function getSeccionesArray($db = null, $grupo = 0) // ~X2C { - static $conf; - if (!$conf) { + static $conf_dav, $conf_sec; + if (!$conf_dav or !$conf_sec) { $conf = parse_ini_file(AI_GRUPOSECCIONES_CONFFILE, true); - $conf = $conf['mecondav']; + $conf_dav = $conf['mecondav']; + $conf_sec = $conf['secciones']; } - extract($conf); + extract($conf_dav, EXTR_PREFIX_ALL, 'dav'); + extract($conf_sec, EXTR_PREFIX_ALL, 'sec'); return $db->getAssoc(" - SELECT $id, $campo - FROM $base.$tabla - ORDER BY $campo ASC"); + SELECT d.$dav_id, d.$dav_campo + FROM $dav_base.$dav_tabla as d + LEFT JOIN $sec_base.$sec_tabla AS s + ON s.$sec_campo = d.$dav_id + WHERE s.$sec_campo IS NULL OR s.$sec_id = $grupo + ORDER BY d.$dav_campo ASC"); } // -X2C @@ -252,6 +259,7 @@ class AI_GrupoSecciones extends AI_DBTreeObject { * * @return AI_GrupoSecciones * @access public + * @static */ function getGrupo($seccion, $db = null) // ~X2C { diff --git a/sistema/local_lib/AI/Arbol.php b/sistema/local_lib/AI/Arbol.php index 499ef99..02f55f3 100644 --- a/sistema/local_lib/AI/Arbol.php +++ b/sistema/local_lib/AI/Arbol.php @@ -33,7 +33,7 @@ require_once 'MECON/HTML/ArbolDB.php'; // +X2C Class 535 :AI_Arbol /** - * Arbol para generar los menes. + * Arbol para generar los menúes. * * @package AI_Local * @access public @@ -45,13 +45,14 @@ class AI_Arbol extends MECON_HTML_ArbolDB { /** * 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. + * @param mixed $objeto Objeto del cual generar el árbol. Puede ser AI_GrupoSecciones, AI_Servicio o AI_Sistema. + * @param DB &$db Base de datos de donde sacar los datos para el árbol. + * @param bool $expandir Indica si debe expandirse el árbol. * * @return void * @access public */ - function AI_Arbol($objeto, &$db) // ~X2C + function AI_Arbol($objeto, &$db, $expandir = true) // ~X2C { switch (get_class($objeto)) { case 'ai_gruposecciones': @@ -68,6 +69,7 @@ class AI_Arbol extends MECON_HTML_ArbolDB { $tipo = 'sistema'; $titulo = 'SISTEMAS'; $tabla = $tipo; + $expandir = true; break; } $dbdata = array( @@ -90,7 +92,7 @@ class AI_Arbol extends MECON_HTML_ArbolDB { ) + $dbdata; } - parent::MECON_HTML_ArbolDB($dbdata, $titulo, $tipo.'?accion='.AI_MODIF.'&id='); + parent::MECON_HTML_ArbolDB($dbdata, $titulo, $tipo.'?accion='.AI_MODIF.'&id=', $expandir); } // -X2C diff --git a/sistema/local_lib/AI/DB.php b/sistema/local_lib/AI/DB.php index 32a0dfd..3cf2e84 100644 --- a/sistema/local_lib/AI/DB.php +++ b/sistema/local_lib/AI/DB.php @@ -43,7 +43,7 @@ class AI_DB extends DB { // +X2C Operation 506 /** - * @param string $confFile Archivo de configuracin de la base de datos. Si no se especifica se toma uno por defecto del directorio de configuracin. + * @param string $confFile Archivo de configuración de la base de datos. Si no se especifica se toma uno por defecto del directorio de configuración. * * @return &mixed * @access public diff --git a/sistema/local_lib/AI/Form.php b/sistema/local_lib/AI/Form.php index c39610f..27e9bb2 100644 --- a/sistema/local_lib/AI/Form.php +++ b/sistema/local_lib/AI/Form.php @@ -53,14 +53,13 @@ class AI_Form extends MECON_HTML_QuickForm { * Construye un formulario para el objecto especificado. * * @param object &$obj Objeto con el cual rellenar el formulario. Puede ser GrupoSecciones, Servicio o Sistema. - * @param int $accion Accion que realizar?el formulario a crear. Puede ser AI_ALTA, AI_BAJA o AI_MODIFICACION. - * @param HTML_Arbol $arbol ?bol de donde sacar los padres. - * @param DB $db Base de datos. + * @param int $accion Accion que realizará el formulario a crear. Puede ser AI_ALTA, AI_BAJA o AI_MODIFICACION. + * @param DB $db Base de datos a usar. * * @return void * @access public */ - function iniciar(&$obj, $accion, $arbol, $db) // ~X2C + function iniciar(&$obj, $accion, $db) // ~X2C { $tipo = substr(get_class($obj), 3); $s_tipo = ucfirst($tipo); @@ -107,6 +106,8 @@ class AI_Form extends MECON_HTML_QuickForm { $fId->freeze(); } if ($tipo == 'grupo' or $tipo == 'servicio') { + require_once 'AI/Arbol.php'; + $arbol = new AI_Arbol($obj, $db, true); $tipos = array('' => '--', '0' => 'Página Principal') + $arbol->toArray(); // Saco el elemento actual si hay uno cargado (no puede ser padre de si mismo). @@ -130,7 +131,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($db), + AI_GrupoSecciones::getSeccionesArray($db, (int)$obj->$tipo), array('multiple' => 'multiple', 'size' => 8)); $fMostrarHijos =& $this->addElement('checkbox', 'mostrar_hijos', 'Mostrar hijos'); // Validación. diff --git a/sistema/www/index.php b/sistema/www/index.php index 8e5fae8..11dede8 100644 --- a/sistema/www/index.php +++ b/sistema/www/index.php @@ -145,21 +145,16 @@ if ($tipo) { } // }}} - // Creo el árbol con el tipo de objeto que manejo y lo agrego a la página. {{{ - require_once 'AI/Arbol.php'; - $arbol = new AI_Arbol($obj, $db); - // }}} - // Inicio el formulario, cargando datos de ser necesario. {{{ if ($accion & (AI_BAJA | AI_MODIF)) { $err =& $obj->cargar($db); if (PEAR::isError($err)) { die($err->getMessage()); } - $form->iniciar($obj, $accion, $arbol, $db); + $form->iniciar($obj, $accion, $db); } else { $accion = AI_ALTA; - $form->iniciar($obj, $accion, $arbol, $db); + $form->iniciar($obj, $accion, $db); } // }}} @@ -233,6 +228,11 @@ if ($tipo) { } // }}} + // Creo el árbol con el tipo de objeto que manejo y lo agrego a la página. {{{ + require_once 'AI/Arbol.php'; + $arbol = new AI_Arbol($obj, $db, false); + // }}} + // Agrego el menu, link para nuevo y formulario a la página. {{{ $marco->addMenuVertical($arbol); if ($accion & ~AI_ALTA) { diff --git a/sql/grupo_secciones_seccion.sql b/sql/grupo_secciones_seccion.sql index d00eb68..e6eaaa5 100644 --- a/sql/grupo_secciones_seccion.sql +++ b/sql/grupo_secciones_seccion.sql @@ -29,5 +29,5 @@ CREATE TABLE grupo_secciones_seccion ( grupo INTEGER(11) UNSIGNED NOT NULL default 0, seccion INTEGER(11) NOT NULL default 0, - PRIMARY KEY (grupo, seccion) + PRIMARY KEY (seccion) ); -- 2.43.0