]> git.llucax.com Git - mecon/meconlib.git/commitdiff
Se modifica el funcionamiento interno de MECON_Marco. Esto es por la lentitud
authorMartín Marrese <marrese@gmail.com>
Wed, 31 Mar 2004 20:11:21 +0000 (20:11 +0000)
committerMartín Marrese <marrese@gmail.com>
Wed, 31 Mar 2004 20:11:21 +0000 (20:11 +0000)
que traia aparejada la anidacion de tablas en el Netscape.

lib/MECON/Marco.php
lib/MECON/Marco/Menu.php
lib/MECON/Marco/MenuHorizontal.php
lib/MECON/Marco/MenuOculto.php
lib/MECON/Marco/MenuPrincipal.php
lib/MECON/Marco/MenuVertical.php

index d2fd0a210ac1c4c864f1cb61958015bb2c73f1f9..6adc1810661635608a8b70087d704dcef89352f9 100644 (file)
@@ -236,7 +236,11 @@ Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCS
         //Agrego el contenido al menu
         $menu->addBody($body);       
         //Agrego el Marco completo a Page
-        $this->setBody($menu->toHtml());
+        $this->setBody('<div style="width: 760px" align="left">');
+        foreach ($menu->resultado AS $res) {
+            $this->addBodyContent($res);
+        }
+        $this->addBodyContent('</div>');
         return parent::toHTML();
     }
 
index edccce89784c94fcc5ffb2a08fbc9160e2918dbf..92bf5e7800bf8d2c41474ed247f3f88d9aa00dcb 100644 (file)
@@ -38,15 +38,25 @@ define ('ARRAYSECCIONES_SERIALIZADO', 'ArraySeccionesSerializado');
  */
 class MECON_Marco_Menu {
     /**
-     * Array con la configuracion de las secciones del sistema;.
+     * Array con los resultados para agregar a la pagina.
+     * Sobre este array MECON_Marco realiza un foreach para agregar lo que
+     * corresponda.
+     *
+     * @var array $resultado
+     * @access public
+     */
+    var $resultado = array();    /**
+                                   
+     * Array con la configuracion de las secciones del sistema o subsecciones de
+     * la sección principal.
      *
      * @var    array $configuracion
      * @access private
      */
     var $_configuracion = array();
-
+    
     /**
-     * Array de array con los componentes del menu
+     * Array de array con los componentes del menu.
      *
      * @var    array $componentes
      * @access private
@@ -54,7 +64,8 @@ class MECON_Marco_Menu {
     var $_componentes = array();
 
     /**
-     * Variable que contiene la tabla general de menues que se va a mostrar en pantalla
+     * Objeto que contiene el menu a mostrar. Opcionalmente puede contener el
+     * body de la pagina si es el caso de un menu vertical.
      *
      * @var    table $tabla
      * @access private
@@ -62,7 +73,7 @@ class MECON_Marco_Menu {
     var $_tabla;
 
     /**
-     * Variable que contiene el titulo de la seccion seleccionada
+     * Variable que contiene el titulo de la seccion seleccionada.
      *
      * @var    string $titulo
      * @access private
@@ -78,15 +89,15 @@ class MECON_Marco_Menu {
     var $_secciones = array();
 
     /**
-     * Array de array con los componentes del menu en caso de ser este vertical
+     * Array de array con los componentes del menu en caso de ser este vertical.
      *
      * @var    string $componentesVertical
      * @access private
      */
     var $_componentesVertical = array();
-
+    
     /**
-     * Recibe como parametro el directorio en donde se encuentra el sistema.
+     * Recibe como parametro la configuracion del sistema.
      *
      * @param  array $configuracion Array con los datos de las secciones
      *
@@ -95,59 +106,44 @@ class MECON_Marco_Menu {
      */
     function MECON_Marco_Menu($configuracion = null) 
     {
-        $this->_tabla = new HTML_Table('width=760 
-                                        align="center" 
-                                        cellspacing="0" 
-                                        cellpadding="0" 
-                                        border="0"
-                                        bgcolor="#FFFFFF"');
-        $this->_tabla->setLineEnd('');
-        $this->_tabla->setTab('');
-        
         $this->_configuracion = $configuracion;
+        $this->_tabla =& new HTML_Table (
+                array (
+                    'width'       => '760',
+                    'cellspacing' => '0',
+                    'cellpadding' => '0',
+                    'border'      => '0',
+                    )
+                );
     }
-
+    
     /**
-     * Funcion que se encarga de generar el archivo que despues sera utilizado con la funcion EVAL.
+     * Funcion que obtiene el array de configuracion de secciones.
      *
-     * @return void
+     * @return array
      * @access private
      */
-    function _generarArchivo() 
+    function _obtenerConfSecciones() 
     {
-        $s = serialize($this);
-        $fp = fopen($this->_configuracion['directorios']['root'].'/'.MENU_SERIALIZADO,'w');
-        fputs($fp, $s);
-        fclose($fp);
+        return $this->_configuracion['secciones'];
     }
-    
+
     /**
-     * Funcion que se encarga de obtener el archivo con los datos del objeto para ser utilizado con la funcion EVAL.
+     * Devuelve un string con el encabezado de la seccion
      *
-     * @param  string $directorio Nombre del directorio en donde se encuentra el sistema instalado
+     * @param  string $titulo Titulo de la seccion
      *
      * @return string
      * @access private
      */
-    function _obtenerArchivo($directorio) 
-    {
-        $s = implode("", @file($this->_configuracion['directorios']['root'].'/'.MENU_SERIALIZADO));
-        return unserialize($s);
-    }
-    
-    /**
-     * Funcion que obtiene el array de configuracion de secciones.
-     *
-     * @return array
-     * @access private
-     */
-    function _obtenerConfSecciones() 
+    function _armarEncabezado($titulo) 
     {
-        return $this->_configuracion['secciones'];
+        return '<div class="mecon_marco_subtitle">'.$titulo.'</div>';
     }
-    
+
     /**
-     * Funcion que arma a partir de la configuracion de las secciones el array con los objetos seccion.
+     * Funcion que arma a partir de la configuracion de las secciones el array
+     * con los objetos seccion.
      *
      * @param  array $confSec Array con la informacion de las secciones
      *
@@ -173,61 +169,18 @@ class MECON_Marco_Menu {
             }
             if ($ver) {
                 $tmp = new MECON_Marco_Seccion ($sec, $this->_configuracion);         
-                array_push($this->_componentes,$tmp->toHtml($linksel));
+                array_push($this->_componentes, $tmp->toHtml($linksel));
                 if ($cuenta == $i) {
                     $ultimo = 1;
                 }
-                array_push($this->_componentesVertical, $tmp->toHtmlVertical($linksel,$ultimo));
+                array_push($this->_componentesVertical, 
+                        $tmp->toHtmlVertical($linksel,$ultimo));
                 array_push($this->_secciones,$tmp);
             }
             $i++;
         }
     }
     
-    /**
-     * Funcion que se encarga de serializar el array asociativo 
-     * paginas-secciones. Se utilizara en la clase seccion para identificar 
-     * a que seccion pertenece la pagina a la cual se quiere acceder.
-     *
-     * @return void
-     * @access private
-     */
-    function _serializarArraySecciones() 
-    {
-        $secciones = $this->_configuracion['secciones'];
-        $tmp  = array();
-        $tmp2 = array();
-        
-        $PATH = $this->_configuracion['directorios']['root'];
-       
-        foreach ($secciones as $sec) { //Chequeo las secciones
-            $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']],$PATH.'/'.$hijo['link']);
-                    $tmp2[$sec['nombre'].'-'.$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']],$PATH.'/'.$subhijo);
-                            array_push($tmp2[$sec['nombre'].'-'.$hijo['nombre']],$PATH.'/'.$subhijo);
-                        }
-                    }
-                }
-            }
-            if (array_key_exists('subhijos',$sec)) {
-                foreach ($sec['subhijos'] as $subhijo2) { //Chequeo la lista de hijos no secciones
-                    array_push($tmp[$sec['nombre']],$PATH.'/'.$subhijo2);
-                }
-            }
-        }
-        $tmp = array_merge($tmp,$tmp2);
-        $s = serialize($tmp);
-        $file_cache = strtr( $this->_configuracion['directorios']['root'], '/','_');
-        $fp = fopen($this->_configuracion['directorios_fs']['cache'].'/'.ARRAYSECCIONES_SERIALIZADO.'_'.$file_cache,'w');
-        fputs($fp, $s);
-        fclose($fp);
-    }
-    
     /**
      * Funcion que se encarga de agregar componentes al array
      *
@@ -264,16 +217,78 @@ class MECON_Marco_Menu {
     }
 
     /**
-     * Devuelve un string con el encabezado de la seccion
+     * Funcion que se encarga de generar el archivo que despues sera utilizado 
+     * con la funcion EVAL.
      *
-     * @param  string $titulo Titulo de la seccion
+     * @return void
+     * @access private
+     */
+    function _generarArchivo() 
+    {
+        $s = serialize($this);
+        $fp = fopen($this->_configuracion['directorios']['root'].'/'.MENU_SERIALIZADO,'w');
+        fputs($fp, $s);
+        fclose($fp);
+    }
+    
+    /**
+     * Funcion que se encarga de obtener el archivo con los datos del objeto 
+     * para ser utilizado con la funcion EVAL.
+     *
+     * @param  string $directorio Nombre del directorio en donde se encuentra el
+     *                            sistema instalado
      *
      * @return string
      * @access private
      */
-    function _armarEncabezado($titulo) 
+    function _obtenerArchivo($directorio) 
+    {
+        $s = implode("", @file($this->_configuracion['directorios']['root'].'/'.MENU_SERIALIZADO));
+        return unserialize($s);
+    }
+    
+    /**
+     * Funcion que se encarga de serializar el array asociativo 
+     * paginas-secciones. Se utilizara en la clase seccion para identificar 
+     * a que seccion pertenece la pagina a la cual se quiere acceder.
+     *
+     * @return void
+     * @access private
+     */
+    function _serializarArraySecciones() 
     {
-        return '<font face="Arial, Helvetica, sans-serif" size="3" color="#336699"><b>'.$titulo.'</b></font>';
+        $secciones = $this->_configuracion['secciones'];
+        $tmp  = array();
+        $tmp2 = array();
+        
+        $PATH = $this->_configuracion['directorios']['root'];
+       
+        foreach ($secciones as $sec) { //Chequeo las secciones
+            $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']],$PATH.'/'.$hijo['link']);
+                    $tmp2[$sec['nombre'].'-'.$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']],$PATH.'/'.$subhijo);
+                            array_push($tmp2[$sec['nombre'].'-'.$hijo['nombre']],$PATH.'/'.$subhijo);
+                        }
+                    }
+                }
+            }
+            if (array_key_exists('subhijos',$sec)) {
+                foreach ($sec['subhijos'] as $subhijo2) { //Chequeo la lista de hijos no secciones
+                    array_push($tmp[$sec['nombre']],$PATH.'/'.$subhijo2);
+                }
+            }
+        }
+        $tmp = array_merge($tmp,$tmp2);
+        $s = serialize($tmp);
+        $file_cache = strtr( $this->_configuracion['directorios']['root'], '/','_');
+        $fp = fopen($this->_configuracion['directorios_fs']['cache'].'/'.ARRAYSECCIONES_SERIALIZADO.'_'.$file_cache,'w');
+        fputs($fp, $s);
+        fclose($fp);
     }
 }
 ?>
\ No newline at end of file
index 11ee4069921318ea28ac8e5b6af7f6c29bb67107..c20d45edf494570ca6d173355ca3a10bdfc68432 100644 (file)
@@ -45,83 +45,77 @@ class MECON_Marco_MenuHorizontal extends MECON_Marco_Menu {
      */
     function addBody($body, $titulo, $menu = null) 
     {
-
         $tmp = $this->_componentes;
         $this->_componentes = array ();
         $this->_armarArraySecciones($tmp);
-        $this->_tabla->addRow($this->_componentes,'align="center" bgcolor="#CCCCCC" valign="top"');
-        $c = count($this->_componentes); 
-
-        $colcount = $this->_tabla->getColCount();
-        $width = 100 / $colcount;
-        for ($col=0; $col < $colcount; $col++) {
-            $this->_tabla->updateColAttributes($col,'width="'.$width.'%"');
-        }        
+        $tmp = $this->_tabla->addRow($this->_componentes,
+                'align="center" bgcolor="#CCCCCC" valign="top"');
+        $colspan = count($this->_componentes); 
+        $width = intval (100 / $colspan);
+        for ($col=0; $col < $colspan; $col++) {
+            $this->_tabla->updateCellAttributes($tmp, $col,
+                    'width="'.$width.'%"');
+        }
 
-        $imagen = new MECON_HTML_Image('/MECON/images/general_linea.gif', str_repeat('=', 108));
-        $i = $this->_tabla->addRow(array ($imagen->toHtml()), 'align="center" colspan="'.$c.'"');
-        $this->_tabla->updateRowAttributes($i, 'height="1"');
+        $imagen = new MECON_HTML_Image('/MECON/images/general_linea.gif', 
+                str_repeat('=', 108));
+        $tmp = $this->_tabla->addRow(array($imagen->toHtml()), 
+                'align="center"  height="1" colspan="'. $colspan .'"');
 
         
         //Agrego el titulo
-        $row = array
-            ($this->_armarEncabezado($titulo.$this->_configuracion['subtitulo']));
-        $this->_tabla->addRow($row,'align="left" bgcolor="#FFFFFF" colspan="'.$c.'"');
+        $row = array($this->_armarEncabezado($titulo . 
+                    $this->_configuracion['subtitulo']));
+        $this->_tabla->addRow($row,
+                'align="left" bgcolor="#FFFFFF" colspan="'
+                . $colspan .'"');
         $imagen = new MECON_HTML_Image('/MECON/images/general_linea2.gif',
-                str_repeat('.', 108), array('border' => 0, 'align' => 'center'));
-        $this->_tabla->addRow(array ($imagen->toHtml()), 'align="center" colspan="'.$c.'"');
-        //
-               
+                str_repeat('.', 108), 'border="0" align="center"');
+        $this->_tabla->addRow(array ($imagen->toHtml()), 
+                'align="center" colspan="'. $colspan .'"');
+                   
         $tmp='';
+
+        $this->resultado[] = $this->_tabla;
         
-        //Agrego si corresponde el espacio al inicio
-        if ($this->_configuracion['espacios']) {
-            $row = array ('&nbsp;');
-            $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();
+            $MENUVERTICAL = new HTML_Table ('width="760" align="left"');
+            $cuerpo = '';
+            if (is_array($body)) {
+                if ($this->_configuracion['espacios']) {
+                    $cuerpo.= '&nbsp;<BR>';
                 }
-                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')) {
-                    $tmp.=$bod->toHtml();
+                foreach ($body as $bod) {
+                    if (is_object($bod)) {
+                        if (method_exists($bod,'toHtml')) {
+                            $cuerpo.= $bod->toHtml();
+                        } 
+                        else {
+                            trigger_error('El metodo no existe! - '. 
+                                    get_class($bod).'::toHtml()', 
+                                    E_USER_WARNING);
+                        }
+                    } 
+                    else {
+                        $cuerpo.= $bod;
+                    }
                 }
-                else {
-                    trigger_error('El metodo no existe! - '.get_class($bod).'::toHtml()', E_USER_WARNING);
-                }                
-            }
+            } 
             else {
-                $tmp.=$bod;
+                $cuerpo = $body;
             }
+            $MENUVERTICAL->addRow(array($menu, $cuerpo),
+                    'valign="top"');
+            $MENUVERTICAL->updateColAttributes(0, 'width="10%"');
+            $this->resultado[] = $MENUVERTICAL;
         }
-        $row[] = $tmp;
-        $TABLA->addRow($row);
-        $row = array ($TABLA->toHtml());
-        $this->_tabla->addRow($row,'align="center" bgcolor="#FFFFFF" colspan="'.$c.'" valign="top"');
-        //Agrego si corresponde el espacio al final
-        if ($this->_configuracion['espacios']) {
-            $row = array ('&nbsp;');
-            $this->_tabla->addRow($row,'align="left" bgcolor="#FFFFFF" colspan="'.$c.'"');
+        else {
+            //Agrego si corresponde el espacio al inicio
+            if ($this->_configuracion['espacios']) {
+                $this->resultado[] = '&nbsp;<BR>';
+            }
+            $this->resultado = array_merge($this->resultado, $body);
         }
-        //
     }
 }
 ?>
\ No newline at end of file
index d015b795d112f7f403c4e0d2ca930dbe84f29417..2a16e16feed3eb29a09c1a1f20bbeed891226582 100644 (file)
@@ -45,68 +45,49 @@ class MECON_Marco_MenuOculto extends MECON_Marco_Menu {
      */
     function addBody($body, $titulo, $menu = null) 
     {
+        $this->resultado[] = $this->_armarEncabezado($titulo . 
+                $this->_configuracion['subtitulo']);
+        $this->resultado[] =& new MECON_HTML_Image(
+                '/MECON/images/general_linea2.gif',
+                str_repeat('-', 108), 
+                'border="0" align="center"');
         if ($menu) {
-            $colspan = 2;
-        }
-        else {
-            $colspan = 1;
-        }
-        
-        //Agrego el titulo
-        $row = array
-            ($this->_armarEncabezado($titulo.$this->_configuracion['subtitulo']));
-        $this->_tabla->addRow($row,'align="left" bgcolor="#FFFFFF" colspan="'.$colspan.'"');
-        $imagen = new MECON_HTML_Image('/MECON/images/general_linea2.gif',
-                str_repeat('-', 108), array('border' => 0, 'align' => 'center'));
-        $this->_tabla->addRow(array ($imagen->toHtml()), 'align="center" colspan="'.$colspan.'"');
-        //Agrego si corresponde el espacio al inicio
-        if ($this->_configuracion['espacios']) {
-            $row = array ('&nbsp;');
-            $this->_tabla->addRow($row,'align="left" bgcolor="#FFFFFF" colspan="'.$colspan.'"');
-        }
-        //
-     
-        //Veo si debo cargar el menu horizontal
-        $row = array();
-        $tmp = '';
-        if ($menu) {
-            if (is_object($menu)) {
-                if (method_exists($menu,'toHtml')) {
-                    $tmp.=$menu->toHtml();
+            $MENUVERTICAL = new HTML_Table ('width="760" align="left"');
+            $cuerpo = '';
+            if (is_array($body)) {
+                if ($this->_configuracion['espacios']) {
+                    $cuerpo.= '&nbsp;<BR>';
                 }
-                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')) {
-                    $tmp.=$bod->toHtml();
+                foreach ($body as $bod) {
+                    if (is_object($bod)) {
+                        if (method_exists($bod,'toHtml')) {
+                            $cuerpo.= $bod->toHtml();
+                        } 
+                        else {
+                            trigger_error('El metodo no existe! - '. 
+                                    get_class($bod).'::toHtml()', 
+                                    E_USER_WARNING);
+                        }
+                    } 
+                    else {
+                        $cuerpo.= $bod;
+                    }
                 }
-                else {
-                    trigger_error('El metodo no existe!', E_USER_WARNING);
-                }                
-            }
+            } 
             else {
-                $tmp.=$bod;
+                $cuerpo = $body;
             }
+            $MENUVERTICAL->addRow(array($menu, $cuerpo),
+                    'valign="top"');
+            $MENUVERTICAL->updateColAttributes(0, 'width="10%"');
+            $this->resultado[] = $MENUVERTICAL;
         }
-        $row[] = $tmp;
-        
-        $this->_tabla->addRow($row,'align="center" bgcolor="#FFFFFF" valign="top"');
-        
-        //Agrego si corresponde el espacio al final
-        if ($this->_configuracion['espacios']) {
-            $row = array ('&nbsp;');
-            $this->_tabla->addRow($row,'align="left" bgcolor="#FFFFFF" colspan="'.$colspan.'"');
+        else {
+            //Agrego si corresponde el espacio al inicio
+            if ($this->_configuracion['espacios']) {
+                $this->resultado[] = '&nbsp;<BR>';
+            }
+            $this->resultado = array_merge($this->resultado, $body);
         }
     }
 } 
index 1d6c37b2618c7f9ec2d0e42726f2f374ffe77f31..0f550a862c428b6c3adabdb2bda86885de6d2992 100644 (file)
@@ -1,4 +1,4 @@
-<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4:
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
 -------------------------------------------------------------------------------
                              Ministerio de Economía
                                     meconlib
@@ -42,7 +42,7 @@ class MECON_Marco_MenuPrincipal extends MECON_Marco_MenuHorizontal {
      * @access private
      */
     var $_seccionSeleccionada = null;
-
+    
     /**
      * @param  array $configuracion Configuracion del sistema
      *
@@ -73,109 +73,113 @@ class MECON_Marco_MenuPrincipal extends MECON_Marco_MenuHorizontal {
      */
     function addBody($body) 
     {
+        //ARMO EL MENU PRINCIPAL
         $colspan = count($this->_componentes);
-        
-        //Agrego el copete {{{
-        $copete = new MECON_Marco_Copete ($this->_configuracion['directorios']['imagenes'],
-                @$this->_configuracion['ayuda'], $this->_configuracion['titulo_sistema']);
-        $row[] = $copete->toHtml();
-        $this->_tabla->addRow($row,'align="center" bgcolor="#FFFFFF"');
-        //}}}
-        
-        //Agrego las secciones    
-        $TABLAM = new HTML_Table('width=760 
-                                  align="center" 
-                                  cellspacing="0" 
-                                  cellpadding="0" 
-                                  border="0"
-                                  background="/MECON/images/general_fondo_gris.gif"');
-        $TABLAM->addRow($this->_componentes,'align="center" bgcolor="#CCCCCC"');
+        //Agrego el copete
+        $copete =& new MECON_Marco_Copete 
+            (@$this->_configuracion['directorios']['imagenes'],
+             @$this->_configuracion['ayuda'], 
+             @$this->_configuracion['titulo_sistema']
+             );
+        $tmp = $this->_tabla->addRow(array($copete->toHtml()), 
+                'align="center" bgcolor="#FFFFFF"');
+        $this->_tabla->updateCellAttributes($tmp, 0, 
+                'colspan="'. $colspan .'"');
+        //Agrego las secciones
+        $tmp = $this->_tabla->addRow($this->_componentes, 
+                'align="center" bgcolor="#CCCCCC"');
         $width = intval (100 / $colspan);
-
         for ($col=0; $col < $colspan; $col++) {
-            $TABLAM->updateCellAttributes(0,$col,'width="'.$width.'%"');
+            $this->_tabla->updateCellAttributes($tmp, $col,
+                    'width="'.$width.'%"');
         }
-        $this->_tabla->addRow(array($TABLAM));
+        //Agrego la linea de separacion
+        $tmp = $this->_tabla->addRow(array(new MECON_HTML_Image(
+                        '/MECON/images/general_linea.gif', str_repeat('=', 108)
+                        )),'align="center" height="1"');
+        $this->_tabla->updateCellAttributes($tmp, 0, 'colspan="'.$colspan.'"');
 
-        $imagen = new MECON_HTML_Image('/MECON/images/general_linea.gif', str_repeat('=', 108));
-        $i = $this->_tabla->addRow(array ($imagen->toHtml()), 'align="center"');
-        $this->_tabla->updateRowAttributes($i, 'height="1"');
-        
-        foreach ($this->_secciones as $sec) {
-            if ($sec->verifSeccionSeleccionada($_SERVER['PHP_SELF'])) {
+        //BUSCO LA SECCION SELECCIONADA
+        foreach ($this->_secciones as $sec) { 
+            if ($sec->verifSeccionSeleccionada($_SERVER['PHP_SELF']))
+            {                                                                          
                 $this->_seccionSeleccionada = $sec;
+                break; //Salgo del foreach
             }
         }
-        //Agrego el contenido de la pagina
-        if (!is_null($this->_seccionSeleccionada) && isset($this->_seccionSeleccionada->_hijos)) {
-            $this->_seccionSeleccionada->_hijos->addBody($body['body'],$this->_seccionSeleccionada->_nombre, $body['menuVertical']);
-            $row = array ($this->_seccionSeleccionada->_hijos->toHtml());
-            $this->_tabla->addRow($row,'align="center" bgcolor="#FFFFFF"');
+
+        //IMPORTANTE: ACA EMPIEZO A ACTUAR DIFERENTE SEGUN EL ESTILO DE MENU QUE
+        //SE SELECCIONE
+
+        //VOY POR LAS SUBSECCIONES, AGREGO EL MENU SI CORRESPONDE
+        if (isset($this->_seccionSeleccionada->_hijos)) {
+            $this->resultado[] = $this->_tabla;
+            $this->_seccionSeleccionada->_hijos->addBody(
+                    $body['body'],
+                    $this->_seccionSeleccionada->_nombre, 
+                    $body['menuVertical']
+                    );
+            foreach ($this->_seccionSeleccionada->_hijos->resultado AS $res) {
+                $this->resultado[] = $res;
+            }
         }
         else {
+        //NO HAY MENUES DE MARCO
+            //Agrego el encabezado
             if ($this->_seccionSeleccionada) {
-                $row = array ($this->_armarEncabezado($this->_seccionSeleccionada->_nombre.$this->_configuracion['subtitulo']));
-                $this->_tabla->addRow($row,'align="left" bgcolor="#FFFFFF"');
-                $imagen = new MECON_HTML_Image('/MECON/images/general_linea2.gif',
-                        str_repeat('-', 108), array('border' => 0, 'align' => 'center'));
-                $this->_tabla->addRow(array ($imagen->toHtml()), 'align="center"');
-            }
-            //Agrego si corresponde el espacio al inicio
-            if ($this->_configuracion['espacios']) {
-                $espacio = '&nbsp;<BR>';
+                $this->_tabla->addRow(
+                        array(
+                            $this->_armarEncabezado($this->_seccionSeleccionada->_nombre.
+                                $this->_configuracion['subtitulo'])
+                            ),'align="left" bgcolor="#FFFFFF" colspan="'. 
+                        $colspan .'"');
+                $this->_tabla->addRow(array(
+                            new MECON_HTML_Image('/MECON/images/general_linea2.gif',
+                                str_repeat('-', 108))),
+                        'border="0" align="center" colspan="'. $colspan .'"');
             }
-            else {
-                $espacio = '';
-            }
-            // 
-
-//SI HAY MENU ARMO UNA TABLA, SINO TIRO DIRECTAMENTE            
-            $row = array();
-            $tmp = '';
+            $this->resultado[] = $this->_tabla;
+            
+            //Si hay un menu vertical lo tengo en cuenta, sino tiro el contenido
+            //directamente
             if ($body['menuVertical']) {
-                if (is_object($body['menuVertical'])) {
-                    if (method_exists($body['menuVertical'],'toHtml')) {
-                        $tmp.=$body['menuVertical']->toHtml();
-                    } else {
-                        trigger_error('El metodo no existe!', E_USER_WARNING);
-                    }                
-                } else {
-                    $tmp.=$body['menuVertical'];
-                }
-                $row[] = $tmp;
-            }
-     
-            if (is_array($body['body'])) {
-                $tmp = '';
-                $tmp = $espacio;
-                foreach ($body['body'] as $bod) {
-                    if (is_object($bod)) {
-                        if (method_exists($bod,'toHtml')) {
-                            $tmp.=$bod->toHtml();
-                        } else {
-                          trigger_error('El metodo no existe! - '.get_class($bod).'::toHtml()', E_USER_WARNING);
+                $MENUVERTICAL = new HTML_Table ('width="760" align="left"');
+                $cuerpo = '';
+                if (is_array($body['body'])) {
+                    if ($this->_configuracion['espacios']) {
+                        $cuerpo.= '&nbsp;<BR>';
+                    }
+                    foreach ($body['body'] as $bod) {
+                        if (is_object($bod)) {
+                            if (method_exists($bod,'toHtml')) {
+                                $cuerpo.= $bod->toHtml();
+                            } 
+                            else {
+                                trigger_error('El metodo no existe! - '. 
+                                        get_class($bod).'::toHtml()', 
+                                        E_USER_WARNING);
+                            }
+                        } 
+                        else {
+                            $cuerpo.= $bod;
                         }
-                    } else {
-                        $tmp.=$bod;
                     }
+                } 
+                else {
+                    $cuerpo = $body['body'];
                 }
-                $tmp.= $espacio;
-                $row[] = $tmp;
-            } else {
-                $row[] = $body['body'];
+                $MENUVERTICAL->addRow(array($body['menuVertical'], $cuerpo),
+                        'valign="top"');
+                $MENUVERTICAL->updateColAttributes(0, 'width="10%"');
+                $this->resultado[] = $MENUVERTICAL;
             }
-
-            if ($body['menuVertical']) {
-                $tabla = new HTML_Table (array('width' => '760', 'border' => 0, 'celspacing' => 0, 'celpadding' => 0));
-                $tt = $tabla->addRow($row,'align="center" bgcolor="#FFFFFF" valign="top"');
-                $tabla->updateCellAttributes($tt, 0, 'valign="top" width="1%"');
-                $contenido[] = $tabla;
-            } else {
-                $contenido = $row;
+            else {
+                //Agrego si corresponde el espacio al inicio
+                if ($this->_configuracion['espacios']) {
+                    $this->resultado[] = '&nbsp;<BR>';
+                }
+                $this->resultado = array_merge($this->resultado, $body['body']);
             }
-//
-            $this->_tabla->addRow($contenido,'align="center" bgcolor="#FFFFFF" valign="top"');            
         }
     }
 }
index bf5700a162f01a5051c29312b150f4cfc3ec1626..838cf57d9e43586c9f3dc88dd15c47b2b29b9969 100644 (file)
@@ -44,8 +44,6 @@ class MECON_Marco_MenuVertical extends MECON_Marco_Menu {
      */
     function addBody($body, $titulo, $menu = null)
     {
-        $c= count($this->_componentes); 
-        
         $tmp = $this->_componentes;
         $this->_componentes = array ();
         $this->_armarArraySecciones($tmp);
@@ -53,80 +51,69 @@ class MECON_Marco_MenuVertical extends MECON_Marco_Menu {
         $TABLA = new HTML_Table('width=152 align="left" cellspacing="0"
                                  cellpadding="0" border="0" height="1"
                                  background="/MECON/images/general_titulo_menu.gif"');
-        
-        $menutmp ='<font face="Arial, Helvetica, sans-serif" size="3"
-            color="#000000"><p>&nbsp;'.$titulo.'</p></font>';
-        $row = array ($menutmp);
-        $TABLA->addRow($row,'align="left"');        
+        $menutmp ='<div class="mecon_marco_subtitle_vertical">&nbsp;'.$titulo.'</div>';
+        $TABLA->addRow(array ($menutmp),'align="left"');        
         $TABLA->updateCellAttributes(0,0,'colspan="2"');
         
-        $SEP = array('<IMG height="3" src="/MECON/images/general_linea_relieve.gif" width=36>',
-                     '<IMG height="3" src="/MECON/images/general_linea_relieve.gif" width=118>'
-                    );
-        $TABLA->addRow($SEP);
-       
+        $TABLA->addRow(
+                array(
+                    '<IMG height="3" src="/MECON/images/general_linea_relieve.gif" width=36>',
+                    '<IMG height="3" src="/MECON/images/general_linea_relieve.gif" width=118>'
+                    )
+                );
+
         foreach ($this->_componentesVertical as $comp) {
             $TABLA->addRow($comp,'align="left"  height="3"
                     background="/MECON/images/general_fondo_gris"');
-            $TABLA->updateColAttributes(0,'align="right" width="34" height="3"');
+            $TABLA->updateColAttributes(0,
+                    'align="right" width="34" height="3"');
             $TABLA->updateColAttributes(1,'align="left"  width="118"');
-            $TABLA->addRow($SEP);
+            $TABLA->addRow(
+                array(
+                    '<IMG height="3" src="/MECON/images/general_linea_relieve.gif" width=36>',
+                    '<IMG height="3" src="/MECON/images/general_linea_relieve.gif" width=118>'
+                    )
+                );
         }
         $TABLA->updateCellAttributes(0,0,'align="left"');
-        $row = array ($TABLA->toHtml());
-        
-        $this->_tabla->addRow($row,'width=152 align="left" bgcolor="#FFFFFF" valign="top"');
 
-        //AGREGO EL CUERPO
-        $TABLA2 = new HTML_Table('width="600"align="right" 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);
-                }                
+        $cuerpo = '';
+        if (is_array($body)) {
+            if ($this->_configuracion['espacios']) {
+                $cuerpo.= '&nbsp;<BR>';
             }
-            else {
-                $tmp.=$menu;
-            }
-            $row[] = $tmp;
-        }
-        $tmp = '';
-        //Agrego si corresponde el espacio al inicio
-        if ($this->_configuracion['espacios']) {
-            $tmp.='&nbsp;<BR>';
-        }
-
-        foreach ($body as $bod) {
-            if (is_object($bod)) {
-                if (method_exists($bod,'toHtml')) {
-                    $tmp.=$bod->toHtml();
-                }
+            foreach ($body as $bod) {
+                if (is_object($bod)) {
+                    if (method_exists($bod,'toHtml')) {
+                        $cuerpo.= $bod->toHtml();
+                    } 
+                    else {
+                        trigger_error('El metodo no existe! - '. 
+                                get_class($bod).'::toHtml()', 
+                                E_USER_WARNING);
+                    }
+                } 
                 else {
-                    trigger_error('El metodo no existe! - '.get_class($bod).'::toHtml()', E_USER_WARNING);
-                }                
-            }
-            else {
-                $tmp.=$bod;
+                    $cuerpo.= $bod;
+                }
             }
-        }        
-        //Agrego si corresponde el espacio al final
-        if ($this->_configuracion['espacios']) {
-            $tmp.='<BR>&nbsp;';
+        } 
+        else {
+            $cuerpo = $body;
+        }
+        
+        if ($menu) {
+            $MENUVERTICAL = new HTML_Table ('width="608" align="left"
+                    bgcolor="#FFFFFF"');
+            $MENUVERTICAL->addRow(array($menu, $cuerpo),
+                    'valign="top"');
+            $MENUVERTICAL->updateColAttributes(0, 'width="10%"');
+            $cuerpo = $MENUVERTICAL;
         }
-        $row[] = $tmp;
-        $TABLA2->addRow($row, 'valign="top"');
-        $row = array ($TABLA2->toHtml());
-        $this->_tabla->setCellContents  (0,2,$row);
-        $this->_tabla->setCellAttributes(0,2,'align="center" bgcolor="#FFFFFF" valign="top"');
 
-        $this->_tabla->updateColAttributes (1,'width="8" bgcolor="#FFFFFF"');
-        $this->_tabla->updateColAttributes (2,'width="600" bgcolor="#FFFFFF"');
+        $this->_tabla->addRow(array($TABLA, $cuerpo),'align="left" bgcolor="#FFFFFF" valign="top"');
+        $this->_tabla->updateColAttributes(0, 'width="10%"');
+        $this->resultado[] = $this->_tabla;
     }
 }
 ?>
\ No newline at end of file