X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/cacc1525e7102dfef7964462a50e4ff13f02dcc6..4e2b23709b38cf3c27379a4051243b1ac93bd1f2:/lib/MECON/Marco/MenuPrincipal.php diff --git a/lib/MECON/Marco/MenuPrincipal.php b/lib/MECON/Marco/MenuPrincipal.php index 723f320..201121c 100644 --- a/lib/MECON/Marco/MenuPrincipal.php +++ b/lib/MECON/Marco/MenuPrincipal.php @@ -1,78 +1,68 @@ - -// +----------------------------------------------------------------------+ -// -// $Id$ -// $Author$ -// $URL$ -// $Date$ -// $Rev$ -// + +------------------------------------------------------------------------------- +$Id$ +-----------------------------------------------------------------------------*/ + +require_once 'HTML/Table.php'; +require_once 'MECON/HTML/Image.php'; +require_once 'MECON/Marco/MenuHorizontal.php'; -// +X2C includes -require_once 'Marco/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. + * Clase que se encarga del manejo del menu principal. Este menu es el de secciones general del sistema. * * @access public */ -class MenuPrincipal extends MenuHorizontal { +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; - - // ~X2C - - // +X2C Operation 195 + var $_seccionSeleccionada = null; + /** - * @param string $directorio Path en donde se encuentra el sistema. + * @param array $configuracion Configuracion del sistema * * @return void * @access public */ - function menuPrincipal($directorio) // ~X2C + function MECON_Marco_MenuPrincipal($configuracion) { - $this->_seccionSeleccionada = null; - parent::Menu($directorio); + parent::MECON_Marco_Menu($configuracion); - if (!is_null($directorio)) { + if (!is_null($configuracion['secciones'] || $configuracion['secciones'] == '')) { $this->_armarArraySecciones($this->_obtenerConfSecciones()); //Serializo el array asociativo de paginas-secciones -// if (!file_exists(PRE_DIR.$directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO)) { +// if (!file_exists($this->_configuracion['directorios']['root'].'/'.ARRAYSECCIONES_SERIALIZADO)) { $this->_serializarArraySecciones(); // } } } - // -X2C - - // +X2C Operation 199 /** * Funcion que se encarga de agregar el body a la seccion seleccionada * @@ -81,44 +71,116 @@ class MenuPrincipal extends MenuHorizontal { * @return void * @access public */ - function addBody($body) // ~X2C + function addBody($body) { + //ARMO EL MENU PRINCIPAL $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.'%"'); - } + //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++) { + $this->_tabla->updateCellAttributes($tmp, $col, + 'width="'.$width.'%"'); + } + //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.'"'); - 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)) { - $this->_seccionSeleccionada->_hijos->addBody($body['body'],$this->_seccionSeleccionada->_nombre); - $row = array ($this->_seccionSeleccionada->_hijos->toHtml()); + + //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 { - $row = array ($body['body']); + //NO HAY MENUES DE MARCO + //Agrego el encabezado + if ($this->_seccionSeleccionada) { + $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 .'"'); + } + $this->resultado[] = $this->_tabla; + + //Si hay un menu vertical lo tengo en cuenta, sino tiro el contenido + //directamente + if ($body['menuVertical']) { + $MENUVERTICAL = new HTML_Table ('width="760"'); + $cuerpo = ''; + if (is_array($body['body'])) { + if ($this->_configuracion['espacios']) { + $cuerpo.= ' 
'; + } + 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 { + $cuerpo = $body['body']; + } + $MENUVERTICAL->addRow(array($body['menuVertical'], $cuerpo), + 'valign="top"'); + $MENUVERTICAL->updateColAttributes(0, 'width="10%"'); + $this->resultado[] = $MENUVERTICAL; + } + else { + //Agrego si corresponde el espacio al inicio + if ($this->_configuracion['espacios']) { + $this->resultado[] = ' 
'; + } + $this->resultado = array_merge($this->resultado, $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 - +} ?> \ No newline at end of file