------------------------------------------------------------------------------- $Id$ -----------------------------------------------------------------------------*/ require_once 'PEAR.php'; require_once 'MECON/Marco/Copete.php'; require_once 'MECON/Marco/Titulo.php'; require_once 'MECON/Marco/Pie.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 :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 Marco extends HTML_Page { /** * Array con los datos de configuracion del sistema. * * @var array $configuracion * @access private */ var $_configuracion; /** * Referencia al objeto Titulo. * * @var Titulo $titulo * @access private */ var $_titulo; /** * Titulo que quiere agregar el usuario al titulo del sistema * * @var string $titulo2 * @access private */ var $_titulo2; /** * Referencia al objeto Copete. * * @var Copete $copete * @access private */ var $_copete; /** * Referencia al objeto Menu. * * @var Menu $menu * @access private */ var $_menu; /** * Referencia al objeto Pie. * * @var Pie $pie * @access private */ var $_pie; /** * Html u objetos que se quieren incluir a la pagina * * @var array $contenido * @access private */ var $_contenido; /** * 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; /** * Menu vertical para agregar en la pantalla. * * @var mixed $menuVertical * @access private */ var $_menuVertical; // ~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 Marco($arch_configuracion) // ~X2C { parent::HTML_Page(array ('doctype'=>'HTML 4.01 Transitional', 'charset' => 'iso-8859-1', 'lineend' => 'unix', 'language' => 'es', 'cache' => 'false', 'simple' => 'true')); $this->_obtenerConfiguracion($arch_configuracion); $this->_titulo = new Titulo ($this->_configuracion['titulo_sistema']); $this->_copete = new Copete ($this->_configuracion['directorios']['imagenes']); $this->_menu = new MenuPrincipal ($this->_configuracion); $this->_pie = new Pie ($this->_configuracion); $this->_contenido = array (); $this->_espacios = true; $this->_titulo2 = ''; $this->_menuVertical = null; } // -X2C // +X2C Operation 30 /** * Funcion que permite agregar archivos de script al sistema, ademas del generico. * * @param string $archivo Nombre del archivo a incluir. * * @return void * @access public */ function agregarScript($archivo) // ~X2C { $tmp = $this->_directorio.SCRIPT_DIR_BASE.$archivo; $this->addScript($tmp); } // -X2C // +X2C Operation 31 /** * Funcion que permite agregar archivos de estilo al sistema, ademas del generico. * * @param string $archivo Nombre del archivo a incluir. * * @return void * @access public */ function agregarEstilo($archivo) // ~X2C { $tmp = $this->_directorio.ESTILO_DIR_BASE.$archivo; $this->addStyleSheet($tmp); } // -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 91 /** * Funcion que se encarga mostrar en pantalla el contenido completo de la pagina. Este metodo utiliza la clase HTML_Page, lo que nos permite utilizar solamente clases y nada de hooks. * * @return string * @access public */ function display() // ~X2C { //Agrego el header $this->_header_display(); //Agrego el body $this->_body_display(); $_SESSION['deshabilitar_links'] = null; // MUESTRO EN PANTALLA LA PAGINA parent::display(); } // -X2C // +X2C Operation 97 /** * Redefinicion de la funcion que permite agregar o adosar elementos o string al body de la pagina * * @param Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina * * @return void * @access public */ function addBody($body) // ~X2C { $this->_contenido[] = $body; } // -X2C // +X2C Operation 112 /** * Funcion que se encarga de agregar a la pagina el contenido del header * * @return void * @access private */ function _header_display() // ~X2C { $tmp = $this->_titulo->darTitulo().$this->_titulo2; $this->setTitle($tmp); $this->addScript(SCRIPT_DIR_BASE.SCRIPT_GENERICO); $this->addStyleSheet(ESTILO_DIR_BASE.ESTILO_GENERICO); } // -X2C // +X2C Operation 113 /** * Funcion que se encarga de agregar a la pagina el contenido del body * * @return void * @access private */ function _body_display() // ~X2C { $body = array ( 'copete' => $this->_copete->toHtml(), 'espacios' => $this->_espacios, 'body' => $this->_contenido, 'menuVertical' => $this->_menuVertical, 'pie' => $this->_pie->toHtml(), ); $this->_menu->addBody($body); $this->addBodyContent($this->_menu->toHtml()); } // -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->_titulo2.= ' - '.$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 Class :Marco ?>