// +----------------------------------------------------------------------+ // // $Id$ // $Author$ // $URL$ // $Date$ // $Rev$ // #require_once 'PEAR.php'; require_once 'HTML/Table.php'; // +X2C includes require_once 'MECON/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. * * @package MECON_Marco * @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 array $configuracion Configuracion del sistema * * @return void * @access public */ function menuPrincipal($configuracion) // ~X2C { $this->_seccionSeleccionada = null; parent::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(); // } } } // -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) && isset($this->_seccionSeleccionada->_hijos)) { $this->_seccionSeleccionada->_hijos->addBody($body['body'],$this->_seccionSeleccionada->_nombre, $body['espacios'], $body['menuVertical']); $row = array ($this->_seccionSeleccionada->_hijos->toHtml()); $this->_tabla->addRow($row,'align="center" bgcolor="#FFFFFF" colspan="'.$colspan.'"'); } else { $row = array (''.$this->_seccionSeleccionada->_nombre.''); $this->_tabla->addRow($row,'align="left" bgcolor="#336699" colspan="'.$colspan.'"'); //Agrego si corresponde el espacio al inicio if ($body['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"'); $tabla->updateCellAttributes($tt, 0, 'valign="top" width="1%"'); $contenido[] = $tabla; } else { $contenido = $row; } // $this->_tabla->addRow($contenido,'align="center" bgcolor="#FFFFFF" colspan="'.$colspan.'"'); } $row = array ($body['pie']); $this->_tabla->addRow($row,'align="center" bgcolor="#CCCCCC" colspan="'.$colspan.'"'); } // -X2C } // -X2C Class :MenuPrincipal ?>