]> git.llucax.com Git - mecon/meconlib.git/blob - lib/Marco/Marco.php
39b4dc92ef7bc328f981070f399aa2f37133ad95
[mecon/meconlib.git] / lib / 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 require_once 'include/lib/marco/MenuPrincipal.php';
33
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';
37
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');
44
45
46 // +X2C Class 3 :Marco
47 /**
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.
50  *
51  * @access public
52  */
53 class Marco extends HTML_Page {
54     /**
55      * Nombre del directorio en donde se encuentra el sistema.
56      *
57      * @var    string $directorio
58      *
59      * @access private
60      */
61     var $_directorio;
62
63     /**
64      * Array con los datos de configuracion del sistema.
65      *
66      * @var    array $configuracion
67      *
68      * @access private
69      */
70     var $_configuracion;
71
72     /**
73      * Referencia al objeto Titulo.
74      *
75      * @var    Titulo $titulo
76      *
77      * @access private
78      */
79     var $_titulo;
80
81     /**
82      * Titulo que quiere agregar el usuario al titulo del sistema
83      *
84      * @var    string $titulo2
85      *
86      * @access private
87      */
88     var $_titulo2;
89
90     /**
91      * Referencia al objeto Copete.
92      *
93      * @var    Copete $copete
94      *
95      * @access private
96      */
97     var $_copete;
98
99     /**
100      * Referencia al objeto Menu.
101      *
102      * @var    Menu $menu
103      *
104      * @access private
105      */
106     var $_menu;
107
108     /**
109      * Referencia al objeto Pie.
110      *
111      * @var    Pie $pie
112      *
113      * @access private
114      */
115     var $_pie;
116
117     /**
118      * Html u objetos que se quieren incluir a la pagina
119      *
120      * @var    array $contenido
121      *
122      * @access private
123      */
124     var $_contenido;
125
126     // ~X2C
127
128     // +X2C Operation 26
129     /**
130      * Constructor. Recibe como parametro el nombre del directorio en donde se encuentra el sistema.
131      *
132      * @param  string $directorio Nombre del directorio en donde se encuentra el sistema.
133      *
134      * @return void
135      *
136      * @access public
137      */
138     function Marco($directorio) // ~X2C
139     {
140         parent::HTML_Page(array ('doctype'=>'HTML 4.01 Transitional',
141                                  'charset'  => 'iso-8859-1',
142                                  'lineend'  => 'unix',
143                                  'language' => 'es',
144                                  'cache'    => 'false',
145                                  'simple'   => 'true'));
146                                  
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 ();
154
155         $this->_titulo2 = ''; 
156     }
157     // -X2C
158
159
160
161     // +X2C Operation 30
162     /**
163      * Funcion que permite agregar archivos de script al sistema, ademas del generico.
164      *
165      * @param  string $archivo Nombre del archivo a incluir.
166      *
167      * @return void
168      *
169      * @access public
170      */
171     function agregarScript($archivo) // ~X2C
172     {
173         $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.SCRIPT_DIR_BASE.$archivo;
174         $this->addScript($tmp);
175     }
176     // -X2C
177
178     // +X2C Operation 31
179     /**
180      * Funcion que permite agregar archivos de estilo al sistema, ademas del generico.
181      *
182      * @param  string $archivo Nombre del archivo a incluir.
183      *
184      * @return void
185      *
186      * @access public
187      */
188     function agregarEstilo($archivo) // ~X2C
189     {
190         $tmp = SISTEMA_DIR_BASE.'/'.$this->_directorio.ESTILO_DIR_BASE.$archivo;
191         $this->addStyleSheet($tmp);
192     }
193     // -X2C
194
195     // +X2C Operation 32
196     /**
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.
198      *
199      * @return array
200      *
201      * @access private
202      */
203     function _obtenerConfiguracion() // ~X2C
204     {
205         $this->_configuracion = include SISTEMA_CONF_BASE;
206     }
207     // -X2C
208
209     // +X2C Operation 91
210     /**
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.
212      *
213      * @return string
214      *
215      * @access public
216      */
217     function display() // ~X2C
218     {
219         //Agrego el header
220         $this->_header_display();
221         //Agrego el body
222         $this->_body_display();
223
224         $_SESSION['deshabilitar_links'] = null;
225
226         // MUESTRO EN PANTALLA LA PAGINA        
227         parent::display();
228     }
229     // -X2C
230
231     // +X2C Operation 97
232     /**
233      * Redefinicion de la funcion que permite agregar o adosar elementos o string al body de la pagina
234      *
235      * @param  Mixed $body Mixed. Recibe el contenido a agregar como body de la pagina
236      *
237      * @return void
238      *
239      * @access public
240      */
241     function addBody($body) // ~X2C
242     {
243         $this->_contenido[] = $body;
244     }
245     // -X2C
246
247     // +X2C Operation 112
248     /**
249      * Funcion que se encarga de agregar a la pagina el contenido del header
250      *
251      * @return void
252      *
253      * @access private
254      */
255     function _header_display() // ~X2C
256     {
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);
261     }
262     // -X2C
263
264     // +X2C Operation 113
265     /**
266      * Funcion que se encarga de agregar a la pagina el contenido del body
267      *
268      * @return void
269      *
270      * @access private
271      */
272     function _body_display() // ~X2C
273     {
274         $body = array ( 'copete' => $this->_copete->toHtml(),
275                         'body'   => $this->_contenido,
276                         'pie'    => $this->_pie->toHtml(),
277                       );
278         $this->_menu->addBody($body);        
279         $this->addBodyContent($this->_menu->toHtml());
280     }
281     // -X2C
282
283     // +X2C Operation 124
284     /**
285      * Funcion que permite adosar al titulo del sistema el titulo de la pagina.
286      *
287      * @param  string $titulo Titulo de la pagina.
288      *
289      * @return void
290      *
291      * @access public
292      */
293     function addTitle($titulo) // ~X2C
294     {
295         $this->_titulo2 = ' - '.$titulo;
296     }
297     // -X2C
298
299 } // -X2C Class :Marco
300
301 ?>