// +----------------------------------------------------------------------+ // // $Id$ // $Author$ // $URL$ // $Date$ // $Rev$ // #require_once 'PEAR.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. * * @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); $row = array ($this->_seccionSeleccionada->_hijos->toHtml()); } else { $row = array (''.$this->_seccionSeleccionada->_nombre.''); $this->_tabla->addRow($row,'align="left" bgcolor="#336699" colspan="'.$colspan.'"'); if (is_array($body['body'])) { $tmp = ''; 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; } } $row = array ($tmp); } else { $row = array ($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 ?>