------------------------------------------------------------------------------- $Id$ -----------------------------------------------------------------------------*/ require_once 'HTML/Table.php'; require_once 'MECON/HTML/Image.php'; require_once 'MECON/Marco/MenuHorizontal.php'; /** * Clase que se encarga del manejo del menu principal. Este menu es el de secciones general del sistema. * * @access public */ class MECON_Marco_MenuPrincipal extends MECON_Marco_MenuHorizontal { /** * Contiene el objeto seccion que se encuentra seleccionada. Se utiliza para mostrar el menu. * * @var Seccion $seccionSeleccionada * @access private */ var $_seccionSeleccionada = null; /** * @param array $configuracion Configuracion del sistema * * @return void * @access public */ function MECON_Marco_MenuPrincipal($configuracion) { parent::MECON_Marco_Menu($configuracion); if (!is_null($configuracion['secciones'] || $configuracion['secciones'] == '')) { $this->_armarArraySecciones($this->_obtenerConfSecciones()); //Serializo el array asociativo de paginas-secciones // if (!file_exists($this->_configuracion['directorios']['root'].'/'.ARRAYSECCIONES_SERIALIZADO)) { $this->_serializarArraySecciones(); // } } } /** * Funcion que se encarga de agregar el body a la seccion seleccionada * * @param array $body * * @return void * @access public */ function addBody($body) { $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"'); $width = intval (100 / $colspan); for ($col=0; $col < $colspan; $col++) { $TABLAM->updateCellAttributes(0,$col,'width="'.$width.'%"'); } $this->_tabla->addRow(array($TABLAM)); $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'])) { $this->_seccionSeleccionada = $sec; } } //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"'); } else { 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 = ' 
'; } else { $espacio = ''; } // //SI HAY MENU ARMO UNA TABLA, SINO TIRO DIRECTAMENTE $row = array(); $tmp = ''; 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); } } else { $tmp.=$bod; } } $tmp.= $espacio; $row[] = $tmp; } else { $row[] = $body['body']; } 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; } // $this->_tabla->addRow($contenido,'align="center" bgcolor="#FFFFFF" valign="top"'); } } } ?>