From 8782288c3f53321a0f1d41bb9f8450aaf838be14 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Thu, 31 Jul 2003 15:54:14 +0000 Subject: [PATCH] MARCO: addMenuVertical ahora funciona con cualquier tipo de menu. Falta verificar el funcionamiento de Marco con el objeto permiso (Ex SA_Perm) --- doc/Marco/uml/Marco.xmi | 154 +++++++++++------------ lib/MECON/Marco.php | 49 ++++---- lib/MECON/Marco/Copete.php | 4 +- lib/MECON/Marco/ImagenAnimada.php | 2 + lib/MECON/Marco/Menu.php | 32 +++-- lib/MECON/Marco/MenuHorizontal.php | 24 +++- lib/MECON/Marco/MenuPrincipal.php | 2 +- lib/MECON/Marco/MenuVertical.php | 27 +++- lib/MECON/Marco/Pagina.php | 85 +++++++++++-- lib/MECON/Marco/Seccion.php | 25 ++-- test/Marco/prueba/conf/confSecciones.php | 2 +- test/Marco/prueba/www/usuarios.php | 3 +- 12 files changed, 268 insertions(+), 141 deletions(-) diff --git a/doc/Marco/uml/Marco.xmi b/doc/Marco/uml/Marco.xmi index 41f8615..bdc1fff 100644 --- a/doc/Marco/uml/Marco.xmi +++ b/doc/Marco/uml/Marco.xmi @@ -9,40 +9,40 @@ - + - + - + + - + - - - + + - + - + - + - + - + - - + + @@ -65,14 +65,14 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS - + - + @@ -87,19 +87,23 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS - + - + + + - - - - + + + - - + + @@ -114,7 +118,7 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS Devuelve 1 si pertenece a la seccion, en caso contrario 0." name="verifSeccionSeleccionada" static="0" scope="200" > - + @@ -123,7 +127,8 @@ Devuelve 1 si pertenece a la seccion, en caso contrario 0." name="verifSeccionSe - + + @@ -150,7 +155,8 @@ x2c:get set" name="seleccionada" static="0" scope="202" /> x2c:get set" name="habilitada" static="0" scope="202" /> - + @@ -177,7 +183,7 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - + @@ -190,16 +196,15 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - + - - - + + - - + + @@ -212,82 +217,76 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - + - + - + - + - - - - - - - - + + - + - + - - + + - - + + - - + + - + - - + + - + - - + + - + - + - + @@ -333,16 +332,15 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - - - - - - - - - - + + + + + + + + + @@ -416,7 +414,6 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - @@ -434,6 +431,7 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> + @@ -449,12 +447,12 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - - - + + + diff --git a/lib/MECON/Marco.php b/lib/MECON/Marco.php index 79421b8..3450bbc 100644 --- a/lib/MECON/Marco.php +++ b/lib/MECON/Marco.php @@ -26,7 +26,6 @@ $Id$ require_once 'PEAR.php'; require_once 'MECON/Marco/Copete.php'; -require_once 'MECON/Marco/Titulo.php'; require_once 'MECON/Marco/Menu.php'; require_once 'MECON/Marco/MenuPrincipal.php'; @@ -35,23 +34,22 @@ require_once 'HTML/Page.php'; require_once 'HTML/Table.php'; //Defino los directorios por default -define ('DIR_IMAGENES' , 'images'); -define ('DIR_ESTILOS' , 'css'); -define ('DIR_JS' , 'js'); -define ('DIR_WWW' , 'www'); -define ('DIR_CACHE' , '/tmp'); +define ('DIR_IMAGENES', 'images'); +define ('DIR_ESTILOS' , 'css' ); +define ('DIR_JS' , 'js' ); +define ('DIR_WWW' , 'www' ); +define ('DIR_CACHE' , '/tmp' ); // //Defino las constantes -define ('SCRIPT_DIR_BASE' , '/MECON/js/'); -define ('ESTILO_DIR_BASE' , '/MECON/css/'); -define ('SCRIPT_GENERICO' , 'general_script.js'); -define ('ESTILO_GENERICO' , 'general_estilos.css'); +define ('SCRIPT_DIR_BASE', '/MECON/js/' ); +define ('ESTILO_DIR_BASE', '/MECON/css/' ); +define ('SCRIPT_GENERICO', 'general_script.js' ); +define ('ESTILO_GENERICO', 'general_estilos.css'); // // +X2C Class 3 :MECON_Marco /** - * Clase que se encarga del manejo del marco en general en los sistemas de intranet. -Trabaja de forma general, llamando a los demas objetos para la realizacion del marco. + * Clase encargada del manejo del Marco de los sistemas. * * @package MECON * @access public @@ -66,7 +64,7 @@ class MECON_Marco extends HTML_Page { var $_configuracion; /** - * Indica si hay que agregar espacios o no entre los componentes del menu de secciones y el contenido de la pagina, asi como entre la pagina y el pie de pagina + * Mantiene el estado de los espacios * * @var bool $espacios * @access private @@ -82,7 +80,7 @@ class MECON_Marco extends HTML_Page { var $_menuVertical = null; /** - * Mantiene el estado de los links en la pagina + * Mantiene el estado de los links en la pagina. (True habilitados, False no) * * @var bool $links * @access private @@ -95,12 +93,13 @@ class MECON_Marco extends HTML_Page { /** * Constructor. Recibe como parametro el path del archivo de configuracion * - * @param string $arch_configuracion Nombre del directorio en donde se encuentra el sistema. + * @param string $arch_configuracion indicacion de la ubicacion y nombre del archivo de configuracion + * @param MECON_Perm $obj_permiso Objeto Permisos * * @return void * @access public */ - function MECON_Marco($arch_configuracion) // ~X2C + function MECON_Marco($arch_configuracion, $obj_permiso = null) // ~X2C { //Creo el objeto pagina parent::HTML_Page(array ('doctype' => 'HTML 4.01 Transitional', @@ -111,6 +110,10 @@ class MECON_Marco extends HTML_Page { 'simple' => 'true' )); //Obtengo y arreglo la configuracion $this->_obtenerConfiguracion($arch_configuracion); + //Agrego el objeto permiso a la configuracion + if (@$obj_permiso) { + $this->_configuracion['obj_permiso'] = $obj_permiso; + } //Agrego el estilo y el script genericos $this->addScript(SCRIPT_DIR_BASE.SCRIPT_GENERICO); $this->addStyleSheet(ESTILO_DIR_BASE.ESTILO_GENERICO); @@ -121,7 +124,7 @@ class MECON_Marco extends HTML_Page { // +X2C Operation 32 /** - * Funcion que se encarga de la obtencion y generacion del array de configuracion.Recibe como parametro el directorio en donde se encuentra el sistema. + * Funcion que se encarga de la obtencion y generacion del array de configuracion. Recibe como parametro el path del archivo de configuracion * * @param string $archivo Archivo de configuracion del sistema * @@ -156,7 +159,7 @@ class MECON_Marco extends HTML_Page { // +X2C Operation 97 /** - * Redefinicion de la funcion que permite agregar o adosar elementos o string al body de la pagina + * Redefinicion de la funcion que permite agregar objetos o html al body de la pagina Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCSS. * * @param Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina @@ -175,9 +178,9 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS // +X2C Operation 124 /** - * Funcion que permite adosar al titulo del sistema el titulo de la pagina. + * Funcion que permite concatenar lo pasado como parametro al titulo del sistema * - * @param string $titulo Titulo de la pagina. + * @param string $titulo String que se quiere agregar al titulo del sistema * * @return void * @access public @@ -190,7 +193,7 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS // +X2C Operation 207 /** - * Setea los espacios entre el menu principal el body y el pie de las paginas + * Setea la variable que define si hay que separar el body del menu * * @param bool $espacios Si es verdadero agrega los espacios, sino los elimina * @@ -205,7 +208,7 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS // +X2C Operation 214 /** - * Agrega un menu vertical a la izquierda en la pantalla. Por ahora solo funciona con MenuOculto + * Agrega un menu vertical a la izquierda en la pantalla. * * @param mixed $menuVertical Objeto u Html que representa el menu a mostrar. * @@ -220,7 +223,7 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS // +X2C Operation 218 /** - * Permite deshabilitar la totalidad de los links desde una pagina + * Permite habilitar o deshabilitar los links de una pagina (todos) * * @param bool $param True habilita los links, False no. * diff --git a/lib/MECON/Marco/Copete.php b/lib/MECON/Marco/Copete.php index 9b2c5ec..b38fc6d 100644 --- a/lib/MECON/Marco/Copete.php +++ b/lib/MECON/Marco/Copete.php @@ -29,7 +29,7 @@ require_once 'PEAR.php'; // +X2C Class 9 :MECON_Marco_Copete /** - * Clase para el manejo de los copetes de los sistemas integrantes de intranet. Recibe el directorio porque debe obtener la imagen del directorio especificado. + * Manejo del copete de los sistemas que utilizan MECON_Marco * * @package MECON_Marco * @access public @@ -47,7 +47,7 @@ class MECON_Marco_Copete { // +X2C Operation 34 /** - * Constructor. Recibe el nombre del directorio en donde se encuentra instalado el sistema. El directorio es case sensitive. + * Recibe el nombre del directorio en donde se encuentra instalado el sistema. El directorio es case sensitive. * * @param string $directorio Nombre del directorio en donde se encuentra el sistema. * diff --git a/lib/MECON/Marco/ImagenAnimada.php b/lib/MECON/Marco/ImagenAnimada.php index 65aba3c..66b2dca 100644 --- a/lib/MECON/Marco/ImagenAnimada.php +++ b/lib/MECON/Marco/ImagenAnimada.php @@ -85,6 +85,8 @@ class MECON_Marco_ImagenAnimada { var $_link = ''; /** + * Nombre de la imagen + * * @var string $nombre * @access protected */ diff --git a/lib/MECON/Marco/Menu.php b/lib/MECON/Marco/Menu.php index 3b3224a..bf4cb8a 100644 --- a/lib/MECON/Marco/Menu.php +++ b/lib/MECON/Marco/Menu.php @@ -80,6 +80,8 @@ class MECON_Marco_Menu { var $_secciones = array(); /** + * Array de array con los componentes del menu en caso de ser este vertical + * * @var string $componentesVertical * @access private */ @@ -89,7 +91,7 @@ class MECON_Marco_Menu { // +X2C Operation 56 /** - * Constructor. Recibe como parametro el directorio en donde se encuentra el sistema. + * Recibe como parametro el directorio en donde se encuentra el sistema. * * @param array $configuracion Array con los datos de las secciones * @@ -143,7 +145,7 @@ class MECON_Marco_Menu { // +X2C Operation 76 /** - * Funcion que obtiene el arrayde configuracion de secciones. + * Funcion que obtiene el array de configuracion de secciones. * * @return array * @access private @@ -170,14 +172,26 @@ class MECON_Marco_Menu { $cuenta = count ($confSec); $i = 1; foreach ($confSec as $sec) { - $tmp = new MECON_Marco_Seccion ($sec, $this->_configuracion); - array_push($this->_componentes,$tmp->toHtml($linksel)); - if ($cuenta == $i) { - $ultimo = 1; + //Veo si tiene permisos para ver la seccion + if (!@$this->_configuracion['obj_permiso']) { + $ver = true; + } + elseif ($this->_configuracion['obj_permiso']->tiene()) { + $ver = true; + } + else { + $ver - false; + } + if ($ver) { + $tmp = new MECON_Marco_Seccion ($sec, $this->_configuracion); + array_push($this->_componentes,$tmp->toHtml($linksel)); + if ($cuenta == $i) { + $ultimo = 1; + } + array_push($this->_componentesVertical, $tmp->toHtmlVertical($linksel,$ultimo)); + $i++; + array_push($this->_secciones,$tmp); } - array_push($this->_componentesVertical, $tmp->toHtmlVertical($linksel,$ultimo)); - $i++; - array_push($this->_secciones,$tmp); } } // -X2C diff --git a/lib/MECON/Marco/MenuHorizontal.php b/lib/MECON/Marco/MenuHorizontal.php index 172d149..3e54f9e 100644 --- a/lib/MECON/Marco/MenuHorizontal.php +++ b/lib/MECON/Marco/MenuHorizontal.php @@ -79,7 +79,25 @@ class MECON_Marco_MenuHorizontal extends MECON_Marco_Menu { $this->_tabla->addRow($row,'align="left" bgcolor="#FFFFFF" colspan="'.$c.'"'); } // - + //AGREGO EL MENU VERTICAL + $TABLA = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"'); + $row = array(); + $tmp = ''; + if ($menu) { + if (is_object($menu)) { + if (method_exists($menu,'toHtml')) { + $tmp.=$menu->toHtml(); + } + else { + trigger_error('El metodo no existe!', E_USER_WARNING); + } + } + else { + $tmp.=$menu; + } + $row[] = $tmp; + } + $tmp = ''; foreach ($body as $bod) { if (is_object($bod)) { if (method_exists($bod,'toHtml')) { @@ -93,7 +111,9 @@ class MECON_Marco_MenuHorizontal extends MECON_Marco_Menu { $tmp.=$bod; } } - $row = array ($tmp); + $row[] = $tmp; + $TABLA->addRow($row); + $row = array ($TABLA->toHtml()); $this->_tabla->addRow($row,'align="center" bgcolor="#FFFFFF" colspan="'.$c.'"'); //Agrego si corresponde el espacio al final if ($this->_configuracion['espacios']) { diff --git a/lib/MECON/Marco/MenuPrincipal.php b/lib/MECON/Marco/MenuPrincipal.php index b443261..ce7cbeb 100644 --- a/lib/MECON/Marco/MenuPrincipal.php +++ b/lib/MECON/Marco/MenuPrincipal.php @@ -32,7 +32,7 @@ require_once 'MECON/Marco/MenuHorizontal.php'; // +X2C Class 193 :MECON_Marco_MenuPrincipal /** - * Clase que se encarga del manejo de los menues principales. Este menu es el de secciones general del sistema. + * Clase que se encarga del manejo del menu principal. Este menu es el de secciones general del sistema. * * @package MECON_Marco * @access public diff --git a/lib/MECON/Marco/MenuVertical.php b/lib/MECON/Marco/MenuVertical.php index af5c098..3dffa89 100644 --- a/lib/MECON/Marco/MenuVertical.php +++ b/lib/MECON/Marco/MenuVertical.php @@ -59,8 +59,8 @@ class MECON_Marco_MenuVertical extends MECON_Marco_Menu { $TABLA = new HTML_Table('width=160 align="left" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0" height="1"'); - $menu =' '.$titulo.''; - $row = array ($menu); + $menutmp =' '.$titulo.''; + $row = array ($menutmp); $TABLA->addRow($row,'align="left" bgcolor="#FFFFFF" height="1"'); $TABLA->updateCellAttributes(0,0,'colspan="2"'); @@ -77,6 +77,25 @@ class MECON_Marco_MenuVertical extends MECON_Marco_Menu { $this->_tabla->addRow($row,'width=160 align="left" bgcolor="#FFFFFF" valign="top"'); //AGREGO EL CUERPO + $TABLA2 = new HTML_Table('align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"'); + $row = array(); + $tmp = ''; + //AGREGO EL MENU VERTICAL + if ($menu) { + if (is_object($menu)) { + if (method_exists($menu,'toHtml')) { + $tmp.=$menu->toHtml(); + } + else { + trigger_error('El metodo no existe!', E_USER_WARNING); + } + } + else { + $tmp.=$menu; + } + $row[] = $tmp; + } + // $tmp = ''; //Agrego si corresponde el espacio al inicio if ($this->_configuracion['espacios']) { @@ -102,7 +121,9 @@ class MECON_Marco_MenuVertical extends MECON_Marco_Menu { $tmp.='
 '; } // - $row = array ($tmp); + $row[] = $tmp; + $TABLA2->addRow($row); + $row = array ($TABLA2->toHtml()); $this->_tabla->setCellContents (0,1,$row); $this->_tabla->setCellAttributes(0,1,'align="center" bgcolor="#FFFFFF" valign="top"'); diff --git a/lib/MECON/Marco/Pagina.php b/lib/MECON/Marco/Pagina.php index e0b5da8..53c906d 100644 --- a/lib/MECON/Marco/Pagina.php +++ b/lib/MECON/Marco/Pagina.php @@ -56,36 +56,97 @@ class MECON_Marco_Pagina { */ var $_permisos = array(); - // ~X2C - - // +X2C Operation 66 /** - * Constructor. Recibe como parametro el nombre del archivo pagina. + * Gets Link. * - * @param string $pagina Nombre del archivo pagina. + * @return string + * @access public + */ + function getLink() + { + return $this->_link; + } + /** + * Sets Link. + * + * @param string $link Link. * * @return void * @access public */ - function MECON_Marco_Pagina($pagina) // ~X2C + function setLink($link) { - $this->_link = $pagina; + $this->_link = $link; } - // -X2C - // +X2C Operation 67 /** - * Funcion que devuelve un string con el link de a la pagina. + * Gets Titulo. * * @return string * @access public */ - function link() // ~X2C + function getTitulo() { - return $this->_link; + return $this->_titulo; + } + /** + * Sets Titulo. + * + * @param string $titulo Titulo. + * + * @return void + * @access public + */ + function setTitulo($titulo) + { + $this->_titulo = $titulo; + } + + /** + * Gets Permisos. + * + * @return array + * @access public + */ + function getPermisos() + { + return $this->_permisos; + } + /** + * Sets Permisos. + * + * @param array $permisos Permisos. + * + * @return void + * @access public + */ + function setPermisos($permisos) + { + $this->_permisos = $permisos; + } + + // ~X2C + + // +X2C Operation 66 + /** + * Constructor. Recibe como parametro el nombre del archivo pagina. + * + * @param string $link Nombre del archivo pagina. + * @param string $titulo Titulo de la pagina + * @param array() $permisos Array con los permisos necesarios para la pagina + * + * @return void + * @access public + */ + function MECON_Marco_Pagina($link, $titulo = null, $permisos = null) // ~X2C + { + $this->setLink ($link ); + $this->setTitulo ($titulo ); + $this->setPermisos($permisos); } // -X2C + } // -X2C Class :MECON_Marco_Pagina ?> \ No newline at end of file diff --git a/lib/MECON/Marco/Seccion.php b/lib/MECON/Marco/Seccion.php index 14b538f..a8391b7 100644 --- a/lib/MECON/Marco/Seccion.php +++ b/lib/MECON/Marco/Seccion.php @@ -24,9 +24,6 @@ Autor: Martin Marrese $Id$ -----------------------------------------------------------------------------*/ -// +X2C includes -require_once 'MECON/Marco/Pagina.php'; -// ~X2C //Require Agregados por MMARRE, no pasan por el xmi2code require_once 'MECON/Marco/ImagenAnimada.php'; @@ -37,12 +34,12 @@ require_once 'MECON/Marco/MenuOculto.php'; // +X2C Class 16 :MECON_Marco_Seccion /** - * Clase seccion para el manejo de las secciones + * Clase para el manejo de las secciones * * @package MECON_Marco * @access public */ -class MECON_Marco_Seccion extends MECON_Marco_Pagina { +class MECON_Marco_Seccion { /** * Nombre de la seccion. * @@ -84,16 +81,26 @@ class MECON_Marco_Seccion extends MECON_Marco_Pagina { var $_configuracion = array(); /** + * Contiene el html del menu de la seccion + * * @var string $menuHtml * @access private */ var $_menuHtml = ''; + /** + * Nombre del archivo pagina. + * + * @var string $link + * @access private + */ + var $_link = ''; + // ~X2C // +X2C Operation 63 /** - * Constructor. Recibe como parametro el nombre de la seccion + * Recibe como parametro el nombre de la seccion * * @param array $seccion Array con la informacion de la seccion * @param array $configuracion Array con la configuracion del sistema @@ -108,9 +115,7 @@ class MECON_Marco_Seccion extends MECON_Marco_Pagina { $imgMouseOn = @strval($seccion['imagenMouseOn']); $imgSelect = @strval($seccion['imagenSelect']); $this->_tipoMenu = @strval($seccion['tipoMenu']); - if (@$seccion['link']) { - parent::MECON_Marco_Pagina($seccion['link']); - } + $this->_link = @strval($seccion['link']); $this->_imagen = new MECON_Marco_ImagenAnimada( $imgComun, $imgMouseOn, $imgSelect, @@ -226,6 +231,8 @@ Devuelve 1 si pertenece a la seccion, en caso contrario 0. // +X2C Operation 202 /** + * Devuelve el html a mostrar en pantalla + * * @param string $link_sel Nombre de la seccion seleccionada * @param bool $ultimo Indica si es el ultimo componente del menu.....en caso de serlo, debe mostrar la imagen con codito * diff --git a/test/Marco/prueba/conf/confSecciones.php b/test/Marco/prueba/conf/confSecciones.php index c863aeb..835b038 100644 --- a/test/Marco/prueba/conf/confSecciones.php +++ b/test/Marco/prueba/conf/confSecciones.php @@ -60,7 +60,7 @@ 'imagenMouseOn' => '', // 'imagenSelect' => '', // 'link' => 'usuarios', //LINK DE LA SECCION - 'tipoMenu' => 'vertical', //TIPO DEL MENU DE HIJOS (vertical, horizontal, oculto) + 'tipoMenu' => '', //TIPO DEL MENU DE HIJOS (vertical, horizontal, oculto) 'hijos' => array ( //HIJOS PARA EL MENU array ( 'nombre' => 'Filtrar Usuario', //NOMBRE DEL HIJO 1 'imagenComun' => 'usuarios-filtrar.gif', //IMAGEN COMUN diff --git a/test/Marco/prueba/www/usuarios.php b/test/Marco/prueba/www/usuarios.php index 5df7b8d..942808f 100644 --- a/test/Marco/prueba/www/usuarios.php +++ b/test/Marco/prueba/www/usuarios.php @@ -19,7 +19,8 @@ //PRUEBA PARA VER QUE PASA CON LOS TEXTOS LARGOS {{{ $MARCO->addBody('AAAAAAAAAAAAAAAA BBBBBBBBB CCCCCCCCCCCCCCCCCC DDDDDDDDDDDDDDDDDD EEEEEEEEEEEEEEEEEEE FFFFFFFFFFFFFFFFFF GGGGGGGGGGGGGGGGGGG HHHHHHHHHHHHHHHHHHH IIIIIIIIIIIIIIIIIIII JJJJJJJJJJJJJJJJJJJ KKKKKKKKKKKKKKKKKKKK LLLLLLLLLLLLLLLLLLLLLL MMMMMMMMMMMMMMMMMMMMM NNNNNNNNNNNNN'); // }}} - + + $MARCO->addMenuVertical('Opciones para ver:
 1- Opcion 1
 2- Opcion 2'); $MARCO->setEspacios(); $MARCO->display(); -- 2.43.0