2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +----------------------------------------------------------------------+
5 // +----------------------------------------------------------------------+
6 // | Copyright (c) 1997-2003 The PHP Group |
7 // +----------------------------------------------------------------------+
8 // | This source file is subject to version 2.02 of the PHP license, |
9 // | that is bundled with this package in the file LICENSE, and is |
10 // | available at through the world-wide-web at |
11 // | http://www.php.net/license/2_02.txt. |
12 // | If you did not receive a copy of the PHP license and are unable to |
13 // | obtain it through the world-wide-web, please send a note to |
14 // | license@php.net so we can mail you a copy immediately. |
15 // +----------------------------------------------------------------------+
16 // | Created: Mon Apr 14 16:23:22 2003
17 // | Author: Martin Marrese <mmarre@mecon.gov.ar>
18 // +----------------------------------------------------------------------+
27 require_once 'PEAR.php';
28 require_once 'include/lib/marco/Copete.php';
29 require_once 'include/lib/marco/Titulo.php';
30 require_once 'include/lib/marco/Pie.php';
31 require_once 'include/lib/marco/Menu.php';
32 require_once 'include/lib/marco/MenuPrincipal.php';
34 //Agregado para el uso de HTML_Page (Uso la version Original de Pear)
35 require_once 'include/lib/HTML/Page.php';
36 require_once 'include/lib/HTML/Table.php';
38 define ('SISTEMA_DIR_BASE' , '/www/sistemas');
39 define ('SISTEMA_CONF_BASE', 'configuracion.php');
40 define ('SCRIPT_DIR_BASE' , '/www/js/');
41 define ('ESTILO_DIR_BASE' , '/www/css/');
42 define ('SCRIPT_GENERICO' , 'script.js');
43 define ('ESTILO_GENERICO' , 'estilos.css');
46 // +X2C Class 3 :Marco
48 * Clase que se encarga del manejo del marco en general en los sistemas de intranet.
49 Trabaja de forma general, llamando a los demas objetos para la realizacion del marco.
53 class Marco extends HTML_Page {
55 * Nombre del directorio en donde se encuentra el sistema.
57 * @var string $directorio
64 * Array con los datos de configuracion del sistema.
66 * @var array $configuracion
73 * Referencia al objeto Titulo.
82 * Titulo que quiere agregar el usuario al titulo del sistema
84 * @var string $titulo2
91 * Referencia al objeto Copete.
100 * Referencia al objeto Menu.
109 * Referencia al objeto Pie.
118 * Html u objetos que se quieren incluir a la pagina
120 * @var array $contenido
130 * Constructor. Recibe como parametro el nombre del directorio en donde se encuentra el sistema.
132 * @param string $directorio Nombre del directorio en donde se encuentra el sistema.
138 function Marco($directorio) // ~X2C
140 parent::HTML_Page(array ('doctype'=>'HTML 4.01 Transitional',
141 'charset' => 'iso-8859-1',
145 'simple' => 'true'));
147 $this->_directorio = $directorio;
148 $this->_obtenerConfiguracion();
149 $this->_titulo = new Titulo ($this->_configuracion);
150 $this->_copete = new Copete ($this->_directorio);
151 $this->_menu = new MenuPrincipal ($this->_directorio);
152 $this->_pie = new Pie ($this->_configuracion);
153 $this->_contenido = array ();
155 $this->_titulo2 = '';
163 * Funcion que permite agregar archivos de script al sistema, ademas del generico.
165 * @param string $archivo Nombre del archivo a incluir.
171 function agregarScript($archivo) // ~X2C
173 $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.SCRIPT_DIR_BASE.$archivo;
174 $this->addScript($tmp);
180 * Funcion que permite agregar archivos de estilo al sistema, ademas del generico.
182 * @param string $archivo Nombre del archivo a incluir.
188 function agregarEstilo($archivo) // ~X2C
190 $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.ESTILO_DIR_BASE.$archivo;
191 $this->addStyleSheet($tmp);
197 * Funcion que se encarga de la obtencion y generacion del array de configuracion. Recibe como parametro el directorio en donde se encuentra el sistema.
203 function _obtenerConfiguracion() // ~X2C
205 $this->_configuracion = include SISTEMA_CONF_BASE;
211 * 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.
217 function display() // ~X2C
220 $this->_header_display();
222 $this->_body_display();
224 $_SESSION['deshabilitar_links'] = null;
226 // MUESTRO EN PANTALLA LA PAGINA
233 * Redefinicion de la funcion que permite agregar o adosar elementos o string al body de la pagina
235 * @param Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina
241 function addBody($body) // ~X2C
243 $this->_contenido[] = $body;
247 // +X2C Operation 112
249 * Funcion que se encarga de agregar a la pagina el contenido del header
255 function _header_display() // ~X2C
257 $tmp = $this->_titulo->darTitulo().$this->_titulo2;
258 $this->setTitle($tmp);
259 $this->addScript(SCRIPT_DIR_BASE.SCRIPT_GENERICO);
260 $this->addStyleSheet(ESTILO_DIR_BASE.ESTILO_GENERICO);
264 // +X2C Operation 113
266 * Funcion que se encarga de agregar a la pagina el contenido del body
272 function _body_display() // ~X2C
274 $body = array ( 'copete' => $this->_copete->toHtml(),
275 'body' => $this->_contenido,
276 'pie' => $this->_pie->toHtml(),
278 $this->_menu->addBody($body);
279 $this->addBodyContent($this->_menu->toHtml());
283 // +X2C Operation 124
285 * Funcion que permite adosar al titulo del sistema el titulo de la pagina.
287 * @param string $titulo Titulo de la pagina.
293 function addTitle($titulo) // ~X2C
295 $this->_titulo2 = ' - '.$titulo;
299 } // -X2C Class :Marco