From: Martín Marrese Date: Mon, 5 May 2003 19:49:47 +0000 (+0000) Subject: - PRIMERA VERSION LISTA......faltan arreglos visuales y de coqueteria, pero la funcio... X-Git-Tag: svn_import~525 X-Git-Url: https://git.llucax.com/mecon/meconlib.git/commitdiff_plain/ae358836441d335d3c6a8138e32d027bbc5e1194?ds=inline - PRIMERA VERSION LISTA......faltan arreglos visuales y de coqueteria, pero la funcionalidad ya esta. --- diff --git a/marco/doc/uml/Marco.xmi b/marco/doc/uml/Marco.xmi index 0c0c7f1..66db300 100644 --- a/marco/doc/uml/Marco.xmi +++ b/marco/doc/uml/Marco.xmi @@ -9,7 +9,7 @@ - + @@ -92,6 +92,7 @@ Trabaja de forma general, llamando a los demas objetos para la realizacion del m + @@ -132,7 +133,6 @@ Trabaja de forma general, llamando a los demas objetos para la realizacion del m - @@ -140,6 +140,7 @@ Trabaja de forma general, llamando a los demas objetos para la realizacion del m Devuelve 1 si pertenece a la seccion, en caso contrario 0." name="verifSeccionSeleccionada" static="0" scope="201" > + @@ -172,17 +173,13 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - - - + - - - + @@ -192,15 +189,15 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - - - + + + - - + + @@ -224,7 +221,7 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - + @@ -236,14 +233,14 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - + - - + + @@ -252,33 +249,33 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - + - - + + - + - - + + - - + + - + - + @@ -359,8 +356,8 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - + @@ -386,7 +383,7 @@ x2c:include: HTML/Page.php" name="HTML_Page" static="0" scope="200" /> - + diff --git a/marco/php/marco/Marco.php b/marco/php/marco/Marco.php index c97a381..2687c7b 100644 --- a/marco/php/marco/Marco.php +++ b/marco/php/marco/Marco.php @@ -148,9 +148,9 @@ class Marco extends HTML_Page { $this->_obtenerConfiguracion(); $this->_titulo = new Titulo ($this->_configuracion); $this->_copete = new Copete ($this->_directorio); - $this->_menu = new Menu ($this->_directorio); + $this->_menu = new Menu ($this->_directorio,null); $this->_pie = new Pie ($this->_configuracion); - $this->_contenido = ''; + $this->_contenido = array (); } // -X2C @@ -282,7 +282,7 @@ class Marco extends HTML_Page { */ function addBody($body) // ~X2C { - $this->_contenido.= $body; + $this->_contenido[] = $body; } // -X2C @@ -326,23 +326,38 @@ class Marco extends HTML_Page { /// {{{ Lo tabulo yo para entenderlo -> GRACIAS VUELVA PRONTO -> mmarre $TABLA_INTERNA = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"'); //Armo el body completo (con menu o titulo) + $contenido = ''; + foreach ($this->_contenido as $cont) { + if (is_object($cont)) { + if (method_exists($cont,'toHtml')) { + $contenido.= $cont->toHtml(); + } + else { + trigger_error('Error, method not found!', E_USER_WARNING); + } + } + else { + $contenido.= $cont; + } + } + //Obtengo el menu de la seccion seleccionada if (isset($_SESSION['tipoMenu'])){ - if (!($_SESSION['tipoMenu'] == 'oculto')) { - // $row = array ($SecSel->menuToHtml()); + $row = array ($_SESSION['menuHtml']); + if (($_SESSION['tipoMenu'] == 'vertical')) { + $ri = $TABLA_INTERNA->addRow($row,"align=\"left\" bgcolor=\"#FFFFFF\" valign=\"top\""); + $row = array ($contenido); + $TABLA_INTERNA->setCellContents($ri,1,$row); + $TABLA_INTERNA->setCellAttributes($ri,1,"align=\"center\" bgcolor=\"#FFFFFF\""); } else { - // $row = array ($SecSel->tituloToHtml()); + $TABLA_INTERNA->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\""); + $row = array ($contenido); + $TABLA_INTERNA->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\""); } - $ri = $TABLA_INTERNA->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\""); - } - if (isset($_SESSION['tipoMenu']) && $_SESSION['tipoMenu'] == 'vertical') { - $row = array ($this->_contenido); - $TABLA_INTERNA->setCellContents($ri,1,$row); - $TABLA_INTERNA->setCellAttributes($ri,1,"align=\"center\" bgcolor=\"#FFFFFF\""); } else { - $row = array ($this->_contenido); + $row = array ($contenido); $TABLA_INTERNA->addRow($row,"align=\"center\" bgcolor=\"#FFFFFF\""); } /// }}} @@ -355,6 +370,10 @@ class Marco extends HTML_Page { $TABLA_GRANDE->addRow($row,"align=\"center\" bgcolor=\"#CCCCCC\""); $this->addBodyContent($TABLA_GRANDE->toHtml()); + + //TODO: tengo que ver como salvarme de usar $_SESSION['menuHtml'] + unset($_SESSION['tipoMenu']); + unset($_SESSION['menuHtml']); } // -X2C diff --git a/marco/php/marco/Menu.php b/marco/php/marco/Menu.php index 8daeff3..76c5ad7 100644 --- a/marco/php/marco/Menu.php +++ b/marco/php/marco/Menu.php @@ -100,12 +100,13 @@ class Menu { * Constructor. Recibe como parametro el directorio en donde se encuentra el sistema. * * @param string $directorio Nombre del directorio en donde se encuentra el sistema. + * @param array $menu Array con los datos del menu * * @return void * * @access public */ - function Menu($directorio = null) // ~X2C + function Menu($directorio = null, $menu) // ~X2C { if (!is_null($directorio)) { // if (file_exists(PRE_DIR.$directorio.POST_DIR.MENU_SERIALIZADO)) { @@ -121,9 +122,12 @@ class Menu { $this->_serializarArraySecciones(); } // $this->_generarArchivo(); NO ESTOY USANDO LA SERIALIZACION GRANDE AHORA -// } } - + if (!is_null($menu)) { + $this->_nombre = $menu['nombre']; + $this->_link = $menu['link']; + $this->_imagen = $menu['imagenComun']; + } } // -X2C @@ -246,10 +250,10 @@ class Menu { foreach ($this->_secciones as $sec) { $tmp[$sec->link()] = $sec->_darTitulo(); foreach ($sec->_hijos as $hijo) { - $tmp[$h->_link] = $sec->_darTitulo(); + $tmp[$hijo->_link] = $sec->_darTitulo(); } } - + $s = serialize($tmp); $fp = fopen(PRE_DIR.$this->_directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO,'w'); fputs($fp, $s); @@ -257,6 +261,7 @@ class Menu { } // -X2C + } // -X2C Class :Menu ?> diff --git a/marco/php/marco/MenuHorizontal.php b/marco/php/marco/MenuHorizontal.php index 4db7ab0..3350b0f 100644 --- a/marco/php/marco/MenuHorizontal.php +++ b/marco/php/marco/MenuHorizontal.php @@ -50,7 +50,7 @@ class MenuHorizontal extends Menu { */ function toHtml() // ~X2C { - parent::toHtml(); + return "_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."\">"; } // -X2C @@ -58,23 +58,21 @@ class MenuHorizontal extends Menu { /** * Constructor. Recibe el nombre del menu, el link y el nombre de la imagen. * - * @param string $nombre Nombre del menu - * @param string $link Link del menu - * @param string $imagen Nombre de la imagen del menu + * @param string $menu Array con los datos del menu * * @return void * * @access public */ - function MenuHorizontal($nombre, $link, $imagen) // ~X2C + function MenuHorizontal($menu) // ~X2C { - parent::Menu(); - $this->_nombre = $nombre; - $this->_link = $link; - $this->_imagen = $imagen; + parent::Menu(null,null); + $this->_nombre = $menu['nombre']; + $this->_link = $menu['link']; + $this->_imagen = new ImagenAnimada($menu['imagenComun']); } // -X2C } // -X2C Class :MenuHorizontal -?> \ No newline at end of file +?> diff --git a/marco/php/marco/MenuVertical.php b/marco/php/marco/MenuVertical.php index 6a12307..928889f 100644 --- a/marco/php/marco/MenuVertical.php +++ b/marco/php/marco/MenuVertical.php @@ -49,7 +49,7 @@ class MenuVertical extends Menu { */ function toHtml() // ~X2C { - parent::toHtml(); + return "_link."\">_nombre."\" src=\"images/carp2_f2\" border=\"0\">".$this->_nombre.""; } // -X2C @@ -57,23 +57,21 @@ class MenuVertical extends Menu { /** * Constructor. Recibe el nombre del menu, el link y el nombre de la imagen. * - * @param string $nombre Nombre del menu - * @param string $link Link del menu - * @param string $imagen Imagen del menu + * @param array $menu Array con los datos del menu * * @return void * * @access public */ - function MenuVertical($nombre, $link, $imagen) // ~X2C + function MenuVertical($menu) // ~X2C { - parent::Menu(); - $this->_nombre = $nombre; - $this->_link = $link; - $this->_imagen = $imagen; + parent::Menu(null,null); + $this->_nombre = $menu['nombre']; + $this->_link = $menu['link']; + $this->_imagen = $menu['imagenComun']; } // -X2C } // -X2C Class :MenuVertical -?> \ No newline at end of file +?> diff --git a/marco/php/marco/Seccion.php b/marco/php/marco/Seccion.php index 2c4d06a..0f841c8 100644 --- a/marco/php/marco/Seccion.php +++ b/marco/php/marco/Seccion.php @@ -152,13 +152,13 @@ class Seccion extends Pagina { $this->_hijos = array (); foreach ($hijos as $hijo) { if ($this->_tipoMenu == 'vertical') { - $tmp = new MenuVertical ($hijo['nombre'],$hijo['link'], $hijo['imagenComun']); + $tmp = new MenuVertical ($hijo); } - elseif ($this->_tipoMenu == 'Horizontal') { - $tmp = new MenuHorizontal ($hijo['nombre'],$hijo['link'], $hijo['imagenComun']); + elseif ($this->_tipoMenu == 'horizontal') { + $tmp = new MenuHorizontal ($hijo); } else { - $tmp = new Menu (); + $tmp = new Menu (null,$hijo); } array_push($this->_hijos, $tmp); } @@ -179,19 +179,6 @@ class Seccion extends Pagina { } // -X2C - // +X2C Operation 119 - /** - * Funcion que devuelve un string con el html a imprimir por pantalla del menu de la seccion. - * - * @return string - * - * @access public - */ - function menuToHtml() // ~X2C - { - trigger_error('Not implemented!', E_USER_WARNING); - } - // -X2C // +X2C Operation 121 /** @@ -254,18 +241,48 @@ Devuelve 1 si pertenece a la seccion, en caso contrario 0. function _verifSeccionSeleccionada($link_sel) // ~X2C { $tmp = $this->_desSerializarArraySecciones(); - var_dump($tmp); - foreach ($tmp as $t) { -// echo $t[$link_sel].' == '.$this->_nombre .'
'; - if (isset($t) && $t[$link_sel] == $this->_nombre) { - $_SESSION['tipoMenu'] = $this->_tipoMenu; - return 1; - } + if (isset($tmp) && array_key_exists($link_sel,$tmp) && $tmp[$link_sel] == $this->_nombre) { + $_SESSION['tipoMenu'] = $this->_tipoMenu; + $_SESSION['menuHtml'] = $this->_menuToHtml(); + return 1; } return 0; } // -X2C + // +X2C Operation 132 + /** + * Funcion que se encarga de devolver el html del menu a incluir en la pagina (menu vertical, horizontal o titulo segun corresponda) + * + * @return string + * + * @access private + */ + function _menuToHtml() // ~X2C + { + if ($this->_tipoMenu == 'oculto') { + return $this->tituloToHtml(); + } + elseif ($this->_tipoMenu == 'horizontal') { + $row = array(); + foreach ($this->_hijos as $hijo) { + array_push($row,$hijo->toHtml()); + } + $TABLA = new HTML_Table('width=760 align="center" bgcolor="#CCCCCC" cellspacing="0"'); + $TABLA->addRow($row,'bgcolor="#CCCCCC" align="center"'); + return $TABLA; + } + elseif ($this->_tipoMenu == 'vertical') { + $TABLA = new HTML_Table('width=200 align="center" bgcolor="#FFFFFF" cellspacing="0"'); + foreach ($this->_hijos as $hijo) { + $row = array ($hijo->toHtml()); + $TABLA->addRow($row,'bgcolor="#FFFFFF" align="left"'); + } + return $TABLA; + } + } + // -X2C + } // -X2C Class :Seccion ?> diff --git a/marco/test/prueba/conf/confSecciones.php b/marco/test/prueba/conf/confSecciones.php index 3ee0a95..eff6db8 100644 --- a/marco/test/prueba/conf/confSecciones.php +++ b/marco/test/prueba/conf/confSecciones.php @@ -47,10 +47,10 @@ 'imagenMouseOn' => '', // 'imagenSelect' => '', // 'link' => 'usuarios', //LINK DE LA SECCION - 'tipoMenu' => 'oculto', //TIPO DEL MENU DE HIJOS (vertical, horizontal, oculto) + '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-filtar', //IMAGEN COMUN + 'imagenComun' => 'usuarios-filtrar', //IMAGEN COMUN 'imagenMouseOn' => '', // 'imagenSelect' => '', // 'link' => 'usuarios-filtrar', //LINK DEL HIJO diff --git a/marco/test/prueba/www/images/carp1_f2.gif b/marco/test/prueba/www/images/carp1_f2.gif new file mode 100644 index 0000000..72110ac Binary files /dev/null and b/marco/test/prueba/www/images/carp1_f2.gif differ diff --git a/marco/test/prueba/www/images/carp1_f3.gif b/marco/test/prueba/www/images/carp1_f3.gif new file mode 100644 index 0000000..1bce912 Binary files /dev/null and b/marco/test/prueba/www/images/carp1_f3.gif differ diff --git a/marco/test/prueba/www/images/carp2_f2.gif b/marco/test/prueba/www/images/carp2_f2.gif new file mode 100644 index 0000000..e008763 Binary files /dev/null and b/marco/test/prueba/www/images/carp2_f2.gif differ diff --git a/marco/test/prueba/www/images/carp2_f3.gif b/marco/test/prueba/www/images/carp2_f3.gif new file mode 100644 index 0000000..7170970 Binary files /dev/null and b/marco/test/prueba/www/images/carp2_f3.gif differ diff --git a/marco/test/prueba/www/images/carpeta0.gif b/marco/test/prueba/www/images/carpeta0.gif new file mode 100644 index 0000000..d17ba3a Binary files /dev/null and b/marco/test/prueba/www/images/carpeta0.gif differ diff --git a/marco/test/prueba/www/include/prepend.php b/marco/test/prueba/www/include/prepend.php index e0dc490..2adb851 100644 --- a/marco/test/prueba/www/include/prepend.php +++ b/marco/test/prueba/www/include/prepend.php @@ -2,11 +2,11 @@ // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4: //ARCHIVO DE PRUEBA DEL OBJETO MARCO - require_once 'include/lib/marco/Marco.php'; session_start(); $MARCO = new Marco ('prueba'); + ?> diff --git a/marco/test/prueba/www/usuarios.php b/marco/test/prueba/www/usuarios.php index e4519a9..e1453cc 100644 --- a/marco/test/prueba/www/usuarios.php +++ b/marco/test/prueba/www/usuarios.php @@ -4,5 +4,11 @@ $MARCO->addBody('
HIJO DE DESAPARECIDO - Actitud Maria Marta
'); $MARCO->addBody('
USUARIOS-FILTRAR
'); $MARCO->addBody('
USUARIOS-ABM
'); + + $TABLA = new HTML_Table('width=500 align="center" bgcolor="#FFFFFF" cellspacing="0"'); + $row = array ('FILA 1','FILA 2','FILA 3','FILA 4'); + $TABLA->addRow($row,'bgcolor="#FFFFFF" align="center"'); + $MARCO->addBody($TABLA); + $MARCO->display(); ?>