From 5294d918b42a9d10fb076620d5e583965738dfe5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Tue, 20 May 2003 15:46:38 +0000 Subject: [PATCH 1/1] - Saque tablas que estaban de mas, buscando optimizar un poco el codigo - Agregue la funcionalidad para deshabilitar menues. Para deshabilitar menues hay que setear una variable booleana en la sesion llamada deshabilitar_links. Esto deshabilita los menues de la barra de secciones y de los diferentes tipos de submenues, pero no del contenido de la pagina, esto queda a cargo del programador. --- marco/php/marco/Copete.php | 14 ++- marco/php/marco/Imagen.php | 2 +- marco/php/marco/ImagenAnimada.php | 2 +- marco/php/marco/Marco.php | 26 ++--- marco/php/marco/Menu.php | 12 +- marco/php/marco/MenuPrincipal.php | 128 +++++++++++++++++++++ marco/php/marco/Pie.php | 12 +- marco/php/marco/Seccion.php | 35 ++++-- marco/test/prueba/conf/confSecciones.php | 18 +-- marco/test/prueba/www/include/prepend.php | 2 - marco/test/prueba/www/index.php | 1 + marco/test/prueba/www/perfiles.php | 1 + marco/test/prueba/www/sarasa1.php | 1 + marco/test/prueba/www/usuarios-abm.php | 1 + marco/test/prueba/www/usuarios-filtrar.php | 4 + marco/test/prueba/www/usuarios.php | 3 +- 16 files changed, 209 insertions(+), 53 deletions(-) create mode 100644 marco/php/marco/MenuPrincipal.php diff --git a/marco/php/marco/Copete.php b/marco/php/marco/Copete.php index c4f5690..62b5a96 100644 --- a/marco/php/marco/Copete.php +++ b/marco/php/marco/Copete.php @@ -73,10 +73,12 @@ class Copete { */ function toHtml() // ~X2C { - $TABLA = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"'); - $row = array (''); - $TABLA->addRow($row,'align="center" bgcolor="#FFFFFF"'); - return $TABLA; + if (!is_null($this->_directorio)) { + return ''; + } + else { + return ''; + } } // -X2C @@ -90,10 +92,10 @@ class Copete { */ function darCopete() // ~X2C { - return ''; + return ''; } // -X2C } // -X2C Class :Copete -?> \ No newline at end of file +?> diff --git a/marco/php/marco/Imagen.php b/marco/php/marco/Imagen.php index 2967be1..f465bb0 100644 --- a/marco/php/marco/Imagen.php +++ b/marco/php/marco/Imagen.php @@ -103,4 +103,4 @@ class Imagen { } // -X2C Class :Imagen -?> \ No newline at end of file +?> diff --git a/marco/php/marco/ImagenAnimada.php b/marco/php/marco/ImagenAnimada.php index 1019803..0ed1e29 100644 --- a/marco/php/marco/ImagenAnimada.php +++ b/marco/php/marco/ImagenAnimada.php @@ -110,4 +110,4 @@ class ImagenAnimada extends Imagen { } // -X2C Class :ImagenAnimada -?> \ No newline at end of file +?> diff --git a/marco/php/marco/Marco.php b/marco/php/marco/Marco.php index 866b863..39b4dc9 100644 --- a/marco/php/marco/Marco.php +++ b/marco/php/marco/Marco.php @@ -220,7 +220,10 @@ class Marco extends HTML_Page { $this->_header_display(); //Agrego el body $this->_body_display(); - // MUESTRO EN PANTALLA LA PAGINA + + $_SESSION['deshabilitar_links'] = null; + + // MUESTRO EN PANTALLA LA PAGINA parent::display(); } // -X2C @@ -268,21 +271,12 @@ class Marco extends HTML_Page { */ function _body_display() // ~X2C { - $TABLA = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"'); - - $row = array ($this->_copete->toHtml()); - $TABLA->addRow($row,'align="center" bgcolor="#FFFFFF"'); - - $this->_menu->addBody($this->_contenido); //Le paso el contenido al menu para que lo agregue en el lugar correspondiente - - $row = array ($this->_menu->toHtml()); - $TABLA->addRow($row,'align="center" bgcolor="#FFFFFF"'); - $row = array (''); - $TABLA->addRow($row,'align="center" bgcolor="#FFFFFF"'); - $row = array ($this->_pie->toHtml()); - $TABLA->addRow($row,'align="center" bgcolor="#CCCCCC"'); - - $this->addBodyContent($TABLA->toHtml()); + $body = array ( 'copete' => $this->_copete->toHtml(), + 'body' => $this->_contenido, + 'pie' => $this->_pie->toHtml(), + ); + $this->_menu->addBody($body); + $this->addBodyContent($this->_menu->toHtml()); } // -X2C diff --git a/marco/php/marco/Menu.php b/marco/php/marco/Menu.php index aaa603a..290ffd2 100644 --- a/marco/php/marco/Menu.php +++ b/marco/php/marco/Menu.php @@ -210,16 +210,18 @@ class Menu { $tmp = array(); $tmp2 = array(); + $PATH = '/www/sistemas/'.$this->_directorio.'/www/'; + foreach ($secciones as $sec) { //Chequeo las secciones - $tmp[$sec['nombre']] = array ($sec['link']); + $tmp[$sec['nombre']] = array ($PATH.$sec['link']); if (array_key_exists('hijos',$sec)) { foreach ($sec['hijos'] as $hijo) { //Chequeo las subsecciones - array_push($tmp[$sec['nombre']],$hijo['link']); - $tmp2[$hijo['nombre']] = array ($hijo['link']); + array_push($tmp[$sec['nombre']],$PATH.$hijo['link']); + $tmp2[$hijo['nombre']] = array ($PATH.$hijo['link']); if (array_key_exists('subhijos',$hijo)) { foreach ($hijo['subhijos'] as $subhijo) { //Chequeo las subsubsecciones - array_push($tmp[$sec['nombre']],$subhijo); - array_push($tmp2[$hijo['nombre']],$subhijo); + array_push($tmp[$sec['nombre']],$PATH.$subhijo); + array_push($tmp2[$hijo['nombre']],$PATH.$subhijo); } } } diff --git a/marco/php/marco/MenuPrincipal.php b/marco/php/marco/MenuPrincipal.php new file mode 100644 index 0000000..b977a3a --- /dev/null +++ b/marco/php/marco/MenuPrincipal.php @@ -0,0 +1,128 @@ + +// +----------------------------------------------------------------------+ +// +// $Id$ +// $Author$ +// $URL$ +// $Date$ +// $Rev$ +// + +#require_once 'PEAR.php'; + + +// +X2C includes +require_once 'MenuHorizontal.php'; +// ~X2C + +// +X2C Class 193 :MenuPrincipal +/** + * Clase que se encarga del manejo de los menues principales. Este menu es el de secciones general del sistema. + * + * @access public + */ +class MenuPrincipal extends MenuHorizontal { + /** + * Contiene el objeto seccion que se encuentra seleccionada. Se utiliza para mostrar el menu. + * + * @var Seccion $seccionSeleccionada + * + * @access private + */ + var $_seccionSeleccionada; + + // ~X2C + + // +X2C Operation 195 + /** + * + * @param string $directorio Path en donde se encuentra el sistema. + * + * @return void + * + * @access public + */ + function menuPrincipal($directorio) // ~X2C + { + $this->_seccionSeleccionada = null; + parent::Menu($directorio); + + if (!is_null($directorio)) { + $this->_armarArraySecciones($this->_obtenerConfSecciones()); + //Serializo el array asociativo de paginas-secciones +// if (!file_exists(PRE_DIR.$directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO)) { + $this->_serializarArraySecciones(); +// } + } + + } + // -X2C + + + // +X2C Operation 199 + /** + * Funcion que se encarga de agregar el body a la seccion seleccionada + * + * @param array $body + * + * @return void + * + * @access public + */ + function addBody($body) // ~X2C + { + $colspan = count($this->_componentes); + + $row = array ($body['copete']); + $this->_tabla->addRow($row,'align="center" bgcolor="#FFFFFF" colspan="'.$colspan.'"'); + + //Agrego las secciones + $this->_tabla->addRow($this->_componentes,'align="center" bgcolor="#CCCCCC"'); + $colcount = $this->_tabla->getColCount(); + $width = 100 / $colcount; + + for ($col=0; $col < $colcount; $col++) { + $this->_tabla->updateColAttributes($col,'width="'.$width.'%"'); + } + + foreach ($this->_secciones as $sec) { + if ($sec->verifSeccionSeleccionada($_SERVER['PHP_SELF'])) { + $this->_seccionSeleccionada = $sec; + } + } + + //Agrego el contenido de la pagina + if (!is_null($this->_seccionSeleccionada)) { + $this->_seccionSeleccionada->_hijos->addBody($body['body'],$this->_seccionSeleccionada->_nombre); + $row = array ($this->_seccionSeleccionada->_hijos->toHtml()); + } + else { + $row = array ($body['body']); + } + $this->_tabla->addRow($row,'align="center" bgcolor="#FFFFFF" colspan="'.$colspan.'"'); + + $row = array ($body['pie']); + $this->_tabla->addRow($row,'align="center" bgcolor="#CCCCCC" colspan="'.$colspan.'"'); + + } + // -X2C + +} // -X2C Class :MenuPrincipal + +?> diff --git a/marco/php/marco/Pie.php b/marco/php/marco/Pie.php index 2f3712c..cda4504 100644 --- a/marco/php/marco/Pie.php +++ b/marco/php/marco/Pie.php @@ -72,10 +72,12 @@ class Pie { */ function toHtml() // ~X2C { - $TABLA = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"'); - $row = array ($this->_configuracion['pie_sistema']); - $TABLA->addRow($row,'align="center" bgcolor="#CCCCCC"'); - return $TABLA; + if (array_key_exists('pie_sistema',$this->_configuracion)) { + return $this->_configuracion['pie_sistema']; + } + else { + return ''; + } } // -X2C @@ -95,4 +97,4 @@ class Pie { } // -X2C Class :Pie -?> \ No newline at end of file +?> diff --git a/marco/php/marco/Seccion.php b/marco/php/marco/Seccion.php index 713cc1d..d5ab06a 100644 --- a/marco/php/marco/Seccion.php +++ b/marco/php/marco/Seccion.php @@ -148,11 +148,22 @@ class Seccion extends Pagina { */ function toHtml($link_sel) // ~X2C { + if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) { + $link_start = ''; + $link_end = ''; + $link_start2 = ''; + } + else { + $link_start = ''; + $link_start2 = '_nombre.'\',\'\',\'images/'.$this->_imagen->_imgMouseOn.'\',1)>'; + $link_end = ''; + } + if ($this->verifSeccionSeleccionada($link_sel)) { - $sec = "_link."\">_nombre."\" src=\"images/".$this->_imagen->_imgSelect."\" border=\"0\" alt=\"".$this->_imagen->_alt."\">"; + $sec = $link_start."_nombre."\" src=\"images/".$this->_imagen->_imgSelect."\" border=\"0\" alt=\"".$this->_imagen->_alt."\">".$link_end; } else { - $sec = "_link."\" onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_displayStatusMsg('".$this->_nombre."'); MM_swapImage('".$this->_nombre."','','images/".$this->_imagen->_imgMouseOn."',1); return document.MM_returnValue\" MM_swapImage('".$this->_nombre."','','images/".$this->_imagen->_imgMouseOn."',1)>_nombre."\" src=\"images/".$this->_imagen->_imgComun."\" border=\"0\" alt=\"".$this->_imagen->_alt."\">"; + $sec = $link_start2."_nombre."\" src=\"images/".$this->_imagen->_imgComun."\" border=\"0\" alt=\"".$this->_imagen->_alt."\">".$link_end; } return $sec; @@ -244,25 +255,35 @@ Devuelve 1 si pertenece a la seccion, en caso contrario 0. function toHtmlVertical($link_sel, $ultimo = false) // ~X2C { $style = "text-decoration:none"; + + if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) { + $link_start = ''; + $link_end = ''; + } + else { + $link_start = ''; + $link_end = ''; + } + $sec = array (); if ($this->verifSeccionSeleccionada($link_sel)) { if ($ultimo) { - $sec[] = ''; + $sec[] = $link_start.''.$link_end; } else { - $sec[] = ''; + $sec[] = $link_start.''.$link_end; } } else { if ($ultimo) { - $sec[] = ''; + $sec[] = $link_start.''.$link_end; } else { - $sec[] = ''; + $sec[] = $link_start.''.$link_end; } } - $sec[] = '  '.$this->_nombre.''; + $sec[] = ''.$link_start.'  '.$this->_nombre.$link_end.''; return $sec; } // -X2C diff --git a/marco/test/prueba/conf/confSecciones.php b/marco/test/prueba/conf/confSecciones.php index 5f19768..ce8e921 100644 --- a/marco/test/prueba/conf/confSecciones.php +++ b/marco/test/prueba/conf/confSecciones.php @@ -46,26 +46,26 @@ 'imagenComun' => 'usuarios', //IMAGEN COMUN 'imagenMouseOn' => '', // 'imagenSelect' => '', // - 'link' => '/www/sistemas/prueba/www/usuarios', //LINK DE LA SECCION + 'link' => 'usuarios', //LINK DE LA SECCION 'tipoMenu' => 'vertical', //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', //IMAGEN COMUN 'imagenMouseOn' => '', // 'imagenSelect' => '', // - 'link' => '/www/sistemas/prueba/www/usuarios-filtrar', //LINK DEL HIJO + 'link' => 'usuarios-filtrar', //LINK DEL HIJO 'mostrar' => true, - 'subhijos' => array ( '/www/sistemas/prueba/www/sarasa1', - '/www/sistemas/prueba/www/sarasa2', - '/www/sistemas/prueba/www/sarasa3', - '/www/sistemas/prueba/www/sarasa4', + 'subhijos' => array ( 'sarasa1', + 'sarasa2', + 'sarasa3', + 'sarasa4', ), ), array ( 'nombre' => 'ABM Usuario', //NOMBRE DEL HIJO 2 'imagenComun' => 'usuarios-abm', //IMAGEN COMUN 'imagenMouseOn' => '', // 'imagenSelect' => '', // - 'link' => '/www/sistemas/prueba/www/usuarios-abm', //LINK DEL HIJO + 'link' => 'usuarios-abm', //LINK DEL HIJO 'mostrar' => true, ), ), @@ -78,14 +78,14 @@ 'imagenComun' => 'perfiles', //IMAGEN COMUN 'imagenMouseOn' => '', // 'imagenSelect' => '', // - 'link' => '/www/sistemas/prueba/www/perfiles', //LINK DE LA SECCION + 'link' => 'perfiles', //LINK DE LA SECCION 'tipoMenu' => 'vertical', //TIPO DEL MENU DE HIJOS (vertical, horizontal, oculto) 'hijos' => array ( //HIJOS PARA EL MENU array ( 'nombre' => 'Perfiles - Hijo', //NOMBRE DEL HIJO 1 'imagenComun' => 'perfiles-nionio', //IMAGEN COMUN 'imagenMouseOn' => '', // 'imagenSelect' => '', // - 'link' => '/www/sistemas/prueba/www/perfiles-hijo', //LINK DEL HIJO + 'link' => 'perfiles-hijo', //LINK DEL HIJO 'mostrar' => false, ), ), diff --git a/marco/test/prueba/www/include/prepend.php b/marco/test/prueba/www/include/prepend.php index d9efa7b..7081667 100644 --- a/marco/test/prueba/www/include/prepend.php +++ b/marco/test/prueba/www/include/prepend.php @@ -6,7 +6,5 @@ require_once 'include/lib/marco/Marco.php'; //session_start(); -$MARCO = new Marco ('prueba'); - ?> diff --git a/marco/test/prueba/www/index.php b/marco/test/prueba/www/index.php index e00f389..35070c4 100644 --- a/marco/test/prueba/www/index.php +++ b/marco/test/prueba/www/index.php @@ -1,4 +1,5 @@ addBody(''); $MARCO->addTitle('INDEX'); $MARCO->display(); diff --git a/marco/test/prueba/www/perfiles.php b/marco/test/prueba/www/perfiles.php index d80f521..9091317 100644 --- a/marco/test/prueba/www/perfiles.php +++ b/marco/test/prueba/www/perfiles.php @@ -1,4 +1,5 @@ addBody('A MI ME REBOTA Y A VOS TE EXPLOTA'); $MARCO->addTitle('PERFILES PRUEBA'); $MARCO->addBody('
Actitud Maria Marta
'); diff --git a/marco/test/prueba/www/sarasa1.php b/marco/test/prueba/www/sarasa1.php index 8007e76..e01c753 100644 --- a/marco/test/prueba/www/sarasa1.php +++ b/marco/test/prueba/www/sarasa1.php @@ -1,4 +1,5 @@ addBody('ESTO ES EL NIETO'); $MARCO->addBody('ESTO ES EL NIETO'); $MARCO->addBody('ESTO ES EL NIETO'); diff --git a/marco/test/prueba/www/usuarios-abm.php b/marco/test/prueba/www/usuarios-abm.php index e0f1025..243023b 100644 --- a/marco/test/prueba/www/usuarios-abm.php +++ b/marco/test/prueba/www/usuarios-abm.php @@ -1,4 +1,5 @@ addTitle('USUARIOS - ABM'); $MARCO->addBody('
ESTO ES UNA PRUEBA PARA LOS HIJOS DE LAS SECCIONES
USUARIOS - ABM
'); $MARCO->display(); diff --git a/marco/test/prueba/www/usuarios-filtrar.php b/marco/test/prueba/www/usuarios-filtrar.php index 40abcc4..be1c306 100644 --- a/marco/test/prueba/www/usuarios-filtrar.php +++ b/marco/test/prueba/www/usuarios-filtrar.php @@ -1,6 +1,10 @@ addTitle('USUARIOS - FILTRAR'); $MARCO->addBody('
ESTO ES UNA PRUEBA PARA LOS HIJOS DE LAS SECCIONES
USUARIO - FILTRAR
'); $MARCO->addBody('
sarasa1
'); $MARCO->display(); + ?> diff --git a/marco/test/prueba/www/usuarios.php b/marco/test/prueba/www/usuarios.php index 49b4d15..af7958b 100644 --- a/marco/test/prueba/www/usuarios.php +++ b/marco/test/prueba/www/usuarios.php @@ -1,5 +1,6 @@ addBody('Y NO ES FELIZ, AUNQUE SONRIA'); +$MARCO = new Marco ('prueba'); +$MARCO->addBody('Y NO ES FELIZ, AUNQUE SONRIA'); $MARCO->addTitle('USUARIOS - PRUEBA'); $MARCO->addBody('
HIJO DE DESAPARECIDO - Actitud Maria Marta
'); $MARCO->addBody('
USUARIOS-FILTRAR
'); -- 2.43.0