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';
33 //Agregado para el uso de HTML_Page (Uso la version Original de Pear)
34 require_once 'HTML/Page.php';
35 require_once 'HTML/Table.php';
37 define ('SISTEMA_DIR_BASE', '/www/sistemas');
38 define ('SCRIPT_DIR_BASE' , '/www/js/');
39 define ('ESTILO_DIR_BASE' , '/www/css/');
40 define ('SCRIPT_GENERICO' , 'script.js');
41 define ('ESTILO_GENERICO' , 'estilos.css');
44 // +X2C Class 3 :Marco
46 * Clase que se encarga del manejo del marco en general en los sistemas de intranet.
47 Trabaja de forma general, llamando a los demas objetos para la realizacion del marco.
51 class Marco extends HTML_Page {
53 * Nombre del directorio en donde se encuentra el sistema.
55 * @var string $directorio
62 * Array con los datos de configuracion del sistema.
64 * @var array $configuracion
71 * Referencia al objeto Titulo.
80 * Referencia al objeto Copete.
89 * Referencia al objeto Menu.
98 * Referencia al objeto Pie.
110 * Constructor. Recibe como parametro el nombre del directorio en donde se encuentra el sistema.
112 * @param string $directorio Nombre del directorio en donde se encuentra el sistema.
118 function Marco($directorio) // ~X2C
121 $this->_directorio = $directorio;
122 $this->_obtenerConfiguracion();
123 $this->_titulo = new Titulo ($this->_configuracion);
124 $this->_copete = new Copete ($this->_directorio);
125 $this->_menu = new Menu ($this->_directorio);
126 $this->_pie = new Pie ($this->_configuracion);
132 * Funcion que devuelve un string en html para ser agregado en el prepend.php del sistema.
138 function toHtmlPrepend() // ~X2C
140 /* $row = array ('colspan' => $this->_configuracion['menu'] + 1);
141 Hook::hash('marco-html01');
142 print $this->_titulo->toHtml(); //Agrego el titulo del sistema segun su archivo de configuracion
143 Hook::hash('marco-html02');
144 Hook::hash('marco-html03',$row);
145 print $this->_copete->toHtml(); //Agrego el copete del sistema
146 Hook::hash('marco-html04');
147 Hook::hash('marco-html03',$row);
148 print $this->_menu->toHtmlSecciones(); //Agrego las secciones del sistema
149 //Agrego el titulo de la seccion de ser necesario
150 Hook::hash('marco-html04');
151 Hook::hash('marco-html03',$row);
152 //ACA TENGO QUE VER COMO METO LOS MENUES VERTICALES
153 //ACA QUEDA LISTO PARA QUE SE AGREGUEN EN EL MEDIO LAS PAGINAS DEL SISTEMA
160 * Funcion que devuelve un string html para ser agregado al append.php del sistema.
166 function toHtmlAppend() // ~X2C
168 /* $row = array ('colspan' => $this->_configuracion['menu'] + 1);
169 Hook::hash('marco-html04');
170 Hook::hash('marco-html03',$row);
171 print $this->_pie->toHtml(); //Agrego el pie de pagina al sistema
173 Hook::hash('marco-html04');
174 Hook::hash('marco-html05');
181 * Funcion que permite agregar archivos de script al sistema, ademas del generico.
183 * @param string $archivo Nombre del archivo a incluir.
189 function agregarScript($archivo) // ~X2C
191 $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.SCRIPT_DIR_BASE.$archivo;
192 $this->addScript($tmp);
198 * Funcion que permite agregar archivos de estilo al sistema, ademas del generico.
200 * @param string $archivo Nombre del archivo a incluir.
206 function agregarEstilo($archivo) // ~X2C
208 $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.ESTILO_DIR_BASE.$archivo;
209 $this->addStyleSheet($tmp);
215 * Funcion que se encarga de la obtencion y generacion del array de configuracion. Recibe como parametro el directorio en donde se encuentra el sistema.
221 function _obtenerConfiguracion() // ~X2C
223 $this->_configuracion = include 'www/sistemas/'.$this->_directorio.'/conf/configuracion.php';
229 * 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.
235 function display() // ~X2C
237 //Agrego el titulo, el script generico y los estilos genericos.
238 $this->setTitle($this->_titulo->darTitulo());
239 $this->addScript(SCRIPT_DIR_BASE.SCRIPT_GENERICO);
240 $this->addStyleSheet(ESTILO_DIR_BASE.ESTILO_GENERICO);
242 $TABLA_GRANDE = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"');
244 $row = array ($this->_copete->darCopete());
245 $TABLA_GRANDE->addRow($row,'align="center" bgcolor="#FFFFFF"');
246 //AGREGO LAS SECCIONES
247 $row = array ($this->_menu->toHtmlSecciones());
248 $TABLA_GRANDE->addRow($row,'align="center" bgcolor="#CCCCCC"');
249 //AGREGO EL TITULO DE LA SECCION
250 //TODO: Agregar segun corresponda el titulo
251 //AGREGO EL MENU HORIZONTAL DE LA SECCION
252 //TODO: Agregar segun corresponda el menu horizontal
253 //AGREGO EL MENU VERTICAL DE LA SECCION
254 //TODO: Agregar segun corresponda el menu vertical
255 //AGREGO EL BODY ORIGINAL A LA TABLA GRANDE
256 //TODO: Agregar el body original a la tabla grande
257 // Lo que hay ahora es una prueba
258 $row = array ($this->body);
259 $TABLA_GRANDE->addRow($row,'align="center" bgcolor="#FFFFFF"');
260 //AGREGO EL PIE DE PAGINA
261 $row = array ($this->_pie->darPie());
262 $TABLA_GRANDE->addRow($row,'align="center" bgcolor="#CCCCCC"');
263 //TODO: Agregar el pie de pagina del sistema
265 //ASIGNO EL NUEVO BODY DE LA PAGINA
266 $this->body = $TABLA_GRANDE->toHtml();
267 //MUESTRO EN PANTALLA LA PAGINA
269 //SI ESTOY FUNCIONA SOY FELIZ....->MARTIN MARRESE
276 * @param Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina
282 function addBody($body) // ~X2C
284 //ACA TENGO QUE AGREGAR TODO LOQ UE VA EN EL BODY, MAS LA INFO QUE ME PASAN
286 //Ahora queda asi porque lo estoy probando
291 } // -X2C Class :Marco