]> git.llucax.com Git - mecon/meconlib.git/blob - marco/php/marco/Marco.php
20aa205cbae58c0ac62415a0e5ef226c01a78979
[mecon/meconlib.git] / marco / php / marco / Marco.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +----------------------------------------------------------------------+
4 // | PHP Version 4                                                        |
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 // +----------------------------------------------------------------------+
19 //
20 // $Id$
21 // $Author$
22 // $URL$
23 // $Date$
24 // $Rev$
25 //
26
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
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';
36
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');
42
43
44 // +X2C Class 3 :Marco
45 /**
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.
48  *
49  * @access public
50  */
51 class Marco extends HTML_Page {
52     /**
53      * Nombre del directorio en donde se encuentra el sistema.
54      *
55      * @var    string $directorio
56      *
57      * @access private
58      */
59     var $_directorio;
60
61     /**
62      * Array con los datos de configuracion del sistema.
63      *
64      * @var    array $configuracion
65      *
66      * @access private
67      */
68     var $_configuracion;
69
70     /**
71      * Referencia al objeto Titulo.
72      *
73      * @var    Titulo $titulo
74      *
75      * @access private
76      */
77     var $_titulo;
78
79     /**
80      * Referencia al objeto Copete.
81      *
82      * @var    Copete $copete
83      *
84      * @access private
85      */
86     var $_copete;
87
88     /**
89      * Referencia al objeto Menu.
90      *
91      * @var    Menu $menu
92      *
93      * @access private
94      */
95     var $_menu;
96
97     /**
98      * Referencia al objeto Pie.
99      *
100      * @var    Pie $pie
101      *
102      * @access private
103      */
104     var $_pie;
105
106     // ~X2C
107
108     // +X2C Operation 26
109     /**
110      * Constructor. Recibe como parametro el nombre del directorio en donde se encuentra el sistema.
111      *
112      * @param  string $directorio Nombre del directorio en donde se encuentra el sistema.
113      *
114      * @return void
115      *
116      * @access public
117      */
118     function Marco($directorio) // ~X2C
119     {
120         parent::HTML_Page();
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);
127     }
128     // -X2C
129
130     // +X2C Operation 27
131     /**
132      * Funcion que devuelve un string en html para ser agregado en el prepend.php del sistema.
133      *
134      * @return string
135      *
136      * @access public
137      */
138     function toHtmlPrepend() // ~X2C
139     {
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       
154 */
155     }
156     // -X2C
157
158     // +X2C Operation 29
159     /**
160      * Funcion que devuelve un string html para ser agregado al append.php del sistema.
161      *
162      * @return string
163      *
164      * @access public
165      */
166     function toHtmlAppend() // ~X2C
167     {
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
172         print "\n";
173         Hook::hash('marco-html04');
174         Hook::hash('marco-html05');
175 */      
176     }
177     // -X2C
178
179     // +X2C Operation 30
180     /**
181      * Funcion que permite agregar archivos de script al sistema, ademas del generico.
182      *
183      * @param  string $archivo Nombre del archivo a incluir.
184      *
185      * @return void
186      *
187      * @access public
188      */
189     function agregarScript($archivo) // ~X2C
190     {
191         $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.SCRIPT_DIR_BASE.$archivo;
192         $this->addScript($tmp);
193     }
194     // -X2C
195
196     // +X2C Operation 31
197     /**
198      * Funcion que permite agregar archivos de estilo al sistema, ademas del generico.
199      *
200      * @param  string $archivo Nombre del archivo a incluir.
201      *
202      * @return void
203      *
204      * @access public
205      */
206     function agregarEstilo($archivo) // ~X2C
207     {
208         $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.ESTILO_DIR_BASE.$archivo;
209         $this->addStyleSheet($tmp);
210     }
211     // -X2C
212
213     // +X2C Operation 32
214     /**
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.
216      *
217      * @return array
218      *
219      * @access private
220      */
221     function _obtenerConfiguracion() // ~X2C
222     {
223         $this->_configuracion = include 'www/sistemas/'.$this->_directorio.'/conf/configuracion.php';
224     }
225     // -X2C
226
227     // +X2C Operation 91
228     /**
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.
230      *
231      * @return string
232      *
233      * @access public
234      */
235     function display() // ~X2C
236     {
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);
241
242         $TABLA_GRANDE = new HTML_Table('width=760 align="center" bgcolor="#FFFFFF" cellspacing="0" cellpadding="0" border="0"');
243         //AGREGO EL COPETE
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
264         
265         //ASIGNO EL NUEVO BODY DE LA PAGINA
266         $this->body = $TABLA_GRANDE->toHtml();        
267         //MUESTRO EN PANTALLA LA PAGINA
268         parent::display();
269         //SI ESTOY FUNCIONA SOY FELIZ....->MARTIN MARRESE
270     }
271     // -X2C
272
273     // +X2C Operation 97
274     /**
275      *
276      * @param  Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina
277      *
278      * @return void
279      *
280      * @access public
281      */
282     function addBody($body) // ~X2C
283     {
284         //ACA TENGO QUE AGREGAR TODO LOQ UE VA EN EL BODY, MAS LA INFO QUE ME PASAN
285         //LOS PROGRAMADORES.
286         //Ahora queda asi porque lo estoy probando
287         $this->body = $body;
288     }
289     // -X2C
290
291 } // -X2C Class :Marco
292
293 ?>