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