------------------------------------------------------------------------------- $Id$ -----------------------------------------------------------------------------*/ require_once 'PEAR.php'; require_once 'MECON/Marco/Copete.php'; require_once 'MECON/Marco/Titulo.php'; require_once 'MECON/Marco/Menu.php'; require_once 'MECON/Marco/MenuPrincipal.php'; //Agregado para el uso de HTML_Page (Uso la version Original de Pear) require_once 'HTML/Page.php'; require_once 'HTML/Table.php'; //Defino los directorios por default define ('DIR_IMAGENES' , 'images'); define ('DIR_ESTILOS' , 'css'); define ('DIR_JS' , 'js'); define ('DIR_WWW' , 'www'); define ('DIR_CACHE' , '/tmp'); // //Defino las constantes define ('SCRIPT_DIR_BASE' , '/MECON/js/'); define ('ESTILO_DIR_BASE' , '/MECON/css/'); define ('SCRIPT_GENERICO' , 'general_script.js'); define ('ESTILO_GENERICO' , 'general_estilos.css'); // // +X2C Class 3 :MECON_Marco /** * Clase que se encarga del manejo del marco en general en los sistemas de intranet. Trabaja de forma general, llamando a los demas objetos para la realizacion del marco. * * @package MECON * @access public */ class MECON_Marco extends HTML_Page { /** * Array con los datos de configuracion del sistema. * * @var array $configuracion * @access private */ var $_configuracion; /** * Indica si hay que agregar espacios o no entre los componentes del menu de secciones y el contenido de la pagina, asi como entre la pagina y el pie de pagina * * @var bool $espacios * @access private */ var $_espacios = true; /** * Menu vertical para agregar en la pantalla. * * @var mixed $menuVertical * @access private */ var $_menuVertical = null; /** * Mantiene el estado de los links en la pagina * * @var bool $links * @access private */ var $_links = true; // ~X2C // +X2C Operation 26 /** * Constructor. Recibe como parametro el path del archivo de configuracion * * @param string $arch_configuracion Nombre del directorio en donde se encuentra el sistema. * * @return void * @access public */ function MECON_Marco($arch_configuracion) // ~X2C { //Creo el objeto pagina parent::HTML_Page(array ('doctype' => 'HTML 4.01 Transitional', 'charset' => 'iso-8859-1' , 'lineend' => 'unix' , 'language' => 'es' , 'cache' => 'false' , 'simple' => 'true' )); //Obtengo y arreglo la configuracion $this->_obtenerConfiguracion($arch_configuracion); //Agrego el estilo y el script genericos $this->addScript(SCRIPT_DIR_BASE.SCRIPT_GENERICO); $this->addStyleSheet(ESTILO_DIR_BASE.ESTILO_GENERICO); //Seteo el titulo $this->setTitle($this->_configuracion['titulo_sistema']); } // -X2C // +X2C Operation 32 /** * Funcion que se encarga de la obtencion y generacion del array de configuracion.Recibe como parametro el directorio en donde se encuentra el sistema. * * @param string $archivo Archivo de configuracion del sistema * * @return array * @access private */ function _obtenerConfiguracion($archivo) // ~X2C { $this->_configuracion = include $archivo; //Verifico que existan los directorios, si no es asi los reemplazo por los defaults if (!@$this->_configuracion['directorios']['root']) { trigger_error('Es obligatorio ingresar el directorio root!', E_USER_ERROR); } if (!@$this->_configuracion['directorios']['imagenes']){ $this->_configuracion['directorios']['imagenes'] = $this->_configuracion['directorios']['root'].'/'.DIR_IMAGENES; } if (!@$this->_configuracion['directorios']['estilos']){ $this->_configuracion['directorios']['estilos'] = $this->_configuracion['directorios']['root'].'/'.DIR_ESTILOS; } if (!@$this->_configuracion['directorios']['js']){ $this->_configuracion['directorios']['js'] = $this->_configuracion['directorios']['root'].'/'.DIR_JS; } if (!@$this->_configuracion['directorios']['www']){ $this->_configuracion['directorios']['www'] = $this->_configuracion['directorios']['root'].'/'.DIR_WWW; } if (!@$this->_configuracion['directorios_fs']['cache']){ $this->_configuracion['directorios_fs']['cache'] = DIR_CACHE; } } // -X2C // +X2C Operation 97 /** * Redefinicion de la funcion que permite agregar o adosar elementos o string al body de la pagina Si es un objeto debe tener un metodo toHtml y opcionalmente puede tener un getCSS. * * @param Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina * * @return void * @access public */ function addBody($body) // ~X2C { if ((is_object($body)) && (method_exists($body, 'getcss'))) { $this->addStyleSheet($body->getCSS()); } $this->addBodyContent($body); } // -X2C // +X2C Operation 124 /** * Funcion que permite adosar al titulo del sistema el titulo de la pagina. * * @param string $titulo Titulo de la pagina. * * @return void * @access public */ function addTitle($titulo) // ~X2C { $this->setTitle($this->_configuracion['titulo_sistema'].' - '.$titulo); } // -X2C // +X2C Operation 207 /** * Setea los espacios entre el menu principal el body y el pie de las paginas * * @param bool $espacios Si es verdadero agrega los espacios, sino los elimina * * @return void * @access public */ function setEspacios($espacios = true) // ~X2C { $this->_espacios = $espacios; } // -X2C // +X2C Operation 214 /** * Agrega un menu vertical a la izquierda en la pantalla. Por ahora solo funciona con MenuOculto * * @param mixed $menuVertical Objeto u Html que representa el menu a mostrar. * * @return void * @access public */ function addMenuVertical($menuVertical) // ~X2C { $this->_menuVertical = $menuVertical; } // -X2C // +X2C Operation 218 /** * Permite deshabilitar la totalidad de los links desde una pagina * * @param bool $param True habilita los links, False no. * * @return void * @access public */ function habilitarLinks($param = true) // ~X2C { $this->_links = $param; } // -X2C // +X2C Operation 220 /** * Devuelve el html de la pagina * * @return string * @access public */ function toHTML() // ~X2C { //Agrego la opcion seleccionada de links a la configuracion $this->_configuracion['links'] = $this->_links; //Creo el menu principal $menu = new MECON_Marco_MenuPrincipal ($this->_configuracion); //Agrego el contenido de la pagina $body = array ( 'body' => $this->_body , //Page 'espacios' => $this->_espacios , 'menuVertical' => $this->_menuVertical, ); //Agrego el contenido al menu $menu->addBody($body); //Agrego el Marco completo a Page $this->setBody($menu->toHtml()); return parent::toHTML(); } // -X2C } // -X2C Class :MECON_Marco ?>