]> git.llucax.com Git - mecon/meconlib.git/blob - marco/php/marco/Seccion.php
0f841c859be4d94777a3ce03162cd2501ecdd0b0
[mecon/meconlib.git] / marco / php / marco / Seccion.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
29
30 // +X2C includes
31 require_once 'Pagina.php';
32 // ~X2C
33
34 //Require Agregados por MMARRE, no pasan por el xmi2code
35 require_once 'ImagenAnimada.php';
36 require_once 'Menu.php';
37 require_once 'MenuHorizontal.php';
38 require_once 'MenuVertical.php';
39
40
41 // +X2C Class 16 :Seccion
42 /**
43  * Clase seccion para el manejo de las secciones
44  *
45  * @access public
46  */
47 class Seccion extends Pagina {
48     /**
49      * Nombre de la seccion.
50      *
51      * @var    string $nombre
52      *
53      * @access private
54      */
55     var $_nombre;
56
57     /**
58      * Este es el nombre de la imagen
59      *
60      * @var    Imagen $imagen
61      *
62      * @access private
63      */
64     var $_imagen;
65
66     /**
67      * Hijos (menu) de la seccion.
68      *
69      * @var    Menu $hijos
70      *
71      * @access private
72      */
73     var $_hijos;
74
75     /**
76      * Valor string del tipo de menu de la seccion
77      *
78      * @var    string $tipoMenu
79      *
80      * @access private
81      */
82     var $_tipoMenu;
83
84     /**
85      * Lugar en donde esta el sistema.
86      *
87      * @var    string $directorio
88      *
89      * @access private
90      */
91     var $_directorio;
92
93     // ~X2C
94
95     // +X2C Operation 63
96     /**
97      * Constructor. Recibe como parametro el nombre de la seccion
98      *
99      * @param  array $seccion Array con la informacion de la seccion
100      * @param  string $directorio Dir en donde esta el sistema
101      *
102      * @return void
103      *
104      * @access public
105      * @static
106      */
107     function Seccion($seccion, $directorio) // ~X2C
108     {
109         $this->_nombre   = $seccion['nombre'];
110         $this->_imagen   = new ImagenAnimada($seccion['imagenComun']);
111         $this->_tipoMenu = $seccion['tipoMenu'];
112         $this->_directorio = $directorio;
113         parent::Pagina($seccion['link']);
114         $this->_cargarHijos($seccion['hijos']);
115     }
116     // -X2C
117
118     // +X2C Operation 64
119     /**
120      * Funcion que devuelve un string con el html a imprimir por pantalla.
121      *
122      * @param  string $link_sel Indica la pagina a la cual se quiere acceder.
123      *
124      * @return string
125      *
126      * @access public
127      */
128     function toHtml($link_sel) // ~X2C
129     {
130         if ($this->_verifSeccionSeleccionada($link_sel)) {
131             $tmp = "<a href=\"".$this->_link."\"><img name=\"".$this->_nombre."\" src=\"images/".$this->_imagen->_imgSelect."\" border=\"0\" alt=\"".$this->_imagen->_alt."\"></a>";
132         }
133         else {
134             $tmp = "<a href=\"".$this->_link."\" onMouseOut=\"MM_swapImgRestore()\" onMouseOver=\"MM_displayStatusMsg('".$this->_nombre."'); MM_swapImage('".$this->_nombre."','','images/".$this->_imagen->_imgMouseOn."',1); return document.MM_returnValue\" MM_swapImage('".$this->_nombre."','','images/".$this->_imagen->_imgMouseOn."',1)><img name=\"".$this->_nombre."\" src=\"images/".$this->_imagen->_imgComun."\" border=\"0\" alt=\"".$this->_imagen->_alt."\"></a>";
135         }
136         return $tmp;
137     }
138     // -X2C
139
140     // +X2C Operation 84
141     /**
142      * Carga el array con los objetos hijos de la seccion
143      *
144      * @param  array $hijos Array con los datos de los hijos de la seccion
145      *
146      * @return void
147      *
148      * @access private
149      */
150     function _cargarHijos($hijos) // ~X2C
151     {
152         $this->_hijos = array ();
153         foreach ($hijos as $hijo) {
154             if ($this->_tipoMenu == 'vertical') {                
155                 $tmp = new MenuVertical ($hijo);
156             }
157             elseif ($this->_tipoMenu == 'horizontal') {
158                 $tmp = new MenuHorizontal ($hijo);
159             }
160             else {
161                 $tmp = new Menu (null,$hijo);
162             }
163             array_push($this->_hijos, $tmp);
164         }
165     }
166     // -X2C
167
168     // +X2C Operation 117
169     /**
170      * Devuelve un string con el tipo de menu de la seccion
171      *
172      * @return string
173      *
174      * @access public
175      */
176     function darTipoMenu() // ~X2C
177     {
178         return $this->_tipoMenu;
179     }
180     // -X2C
181
182
183     // +X2C Operation 121
184     /**
185      * Funcion que devuelve el string del titulo de la seccion
186      *
187      * @return string
188      *
189      * @access public
190      */
191     function tituloToHtml() // ~X2C
192     {
193         $TABLA = new HTML_Table('width=760 align="center" bgcolor="#336699" cellspacing="0" cellpadding="0" border="0"');
194         $row = array('<font face="Arial, Helvetica, sans-serif" size="3" color="#FFFFFF"><b>'.$this->_darTitulo().'</b></font>');
195         $TABLA->addRow($row,'height="1" bgcolor="#336699" align="left"');
196         return $TABLA->toHtml();
197     }
198     // -X2C
199
200     // +X2C Operation 122
201     /**
202      * Funcion que devuelve el string del titulo a mostrar en pantalla
203      *
204      * @return string
205      *
206      * @access private
207      */
208     function _darTitulo() // ~X2C
209     {
210         return $this->_nombre;
211     }
212     // -X2C
213
214     // +X2C Operation 127
215     /**
216      * Funcion que se encarga de desserializar el array asociativo paginas-secciones.
217      *
218      * @return void
219      *
220      * @access private
221      */
222     function _desSerializarArraySecciones() // ~X2C
223     {
224         $tmp = PRE_DIR.$this->_directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO;
225         $s = implode("", @file($tmp));
226         return unserialize($s);
227     }
228     // -X2C
229
230     // +X2C Operation 129
231     /**
232      * Funcion que se encarga de verificar si la pagina a la cual se quiere acceder pertenece a la seccion que estoy dibujando. Se utiliza como agregado en toHtml.
233 Devuelve 1 si pertenece a la seccion, en caso contrario 0.
234      *
235      * @param  string $link_sel Nombre de la pagina a la cual se quiere acceder.
236      *
237      * @return int
238      *
239      * @access private
240      */
241     function _verifSeccionSeleccionada($link_sel) // ~X2C
242     {
243         $tmp = $this->_desSerializarArraySecciones();
244         if (isset($tmp) && array_key_exists($link_sel,$tmp) && $tmp[$link_sel] == $this->_nombre) {
245             $_SESSION['tipoMenu'] = $this->_tipoMenu;
246             $_SESSION['menuHtml'] = $this->_menuToHtml();
247             return 1;
248         }
249         return 0;
250     }
251     // -X2C
252
253     // +X2C Operation 132
254     /**
255      * Funcion que se encarga de devolver el html del menu a incluir en la pagina (menu vertical, horizontal o titulo segun corresponda)
256      *
257      * @return string
258      *
259      * @access private
260      */
261     function _menuToHtml() // ~X2C
262     {
263         if ($this->_tipoMenu == 'oculto') {
264             return $this->tituloToHtml();        
265         }
266         elseif ($this->_tipoMenu == 'horizontal') {
267             $row = array();
268             foreach ($this->_hijos as $hijo) {
269                 array_push($row,$hijo->toHtml());
270             }            
271             $TABLA = new HTML_Table('width=760 align="center" bgcolor="#CCCCCC" cellspacing="0"');
272             $TABLA->addRow($row,'bgcolor="#CCCCCC" align="center"');
273             return $TABLA;
274         }
275         elseif ($this->_tipoMenu == 'vertical') {
276             $TABLA = new HTML_Table('width=200 align="center" bgcolor="#FFFFFF" cellspacing="0"');
277             foreach ($this->_hijos as $hijo) {
278                 $row = array ($hijo->toHtml());
279                 $TABLA->addRow($row,'bgcolor="#FFFFFF" align="left"');
280             }
281             return $TABLA;
282        }
283     }
284     // -X2C
285
286 } // -X2C Class :Seccion
287
288 ?>