]> git.llucax.com Git - mecon/meconlib.git/blob - marco/php/marco/Seccion.php
2c4d06a10a65635eda043547379c4893b539ad3f
[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['nombre'],$hijo['link'], $hijo['imagenComun']);
156             }
157             elseif ($this->_tipoMenu == 'Horizontal') {
158                 $tmp = new MenuHorizontal ($hijo['nombre'],$hijo['link'], $hijo['imagenComun']);
159             }
160             else {
161                 $tmp = new Menu ();
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     // +X2C Operation 119
183     /**
184      * Funcion que devuelve un string con el html a imprimir por pantalla del menu de la seccion.
185      *
186      * @return string
187      *
188      * @access public
189      */
190     function menuToHtml() // ~X2C
191     {
192         trigger_error('Not implemented!', E_USER_WARNING);
193     }
194     // -X2C
195
196     // +X2C Operation 121
197     /**
198      * Funcion que devuelve el string del titulo de la seccion
199      *
200      * @return string
201      *
202      * @access public
203      */
204     function tituloToHtml() // ~X2C
205     {
206         $TABLA = new HTML_Table('width=760 align="center" bgcolor="#336699" cellspacing="0" cellpadding="0" border="0"');
207         $row = array('<font face="Arial, Helvetica, sans-serif" size="3" color="#FFFFFF"><b>'.$this->_darTitulo().'</b></font>');
208         $TABLA->addRow($row,'height="1" bgcolor="#336699" align="left"');
209         return $TABLA->toHtml();
210     }
211     // -X2C
212
213     // +X2C Operation 122
214     /**
215      * Funcion que devuelve el string del titulo a mostrar en pantalla
216      *
217      * @return string
218      *
219      * @access private
220      */
221     function _darTitulo() // ~X2C
222     {
223         return $this->_nombre;
224     }
225     // -X2C
226
227     // +X2C Operation 127
228     /**
229      * Funcion que se encarga de desserializar el array asociativo paginas-secciones.
230      *
231      * @return void
232      *
233      * @access private
234      */
235     function _desSerializarArraySecciones() // ~X2C
236     {
237         $tmp = PRE_DIR.$this->_directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO;
238         $s = implode("", @file($tmp));
239         return unserialize($s);
240     }
241     // -X2C
242
243     // +X2C Operation 129
244     /**
245      * 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.
246 Devuelve 1 si pertenece a la seccion, en caso contrario 0.
247      *
248      * @param  string $link_sel Nombre de la pagina a la cual se quiere acceder.
249      *
250      * @return int
251      *
252      * @access private
253      */
254     function _verifSeccionSeleccionada($link_sel) // ~X2C
255     {
256         $tmp = $this->_desSerializarArraySecciones();
257         var_dump($tmp);
258         foreach ($tmp as $t) {
259 //            echo $t[$link_sel].' == '.$this->_nombre .'<BR>';
260             if (isset($t) && $t[$link_sel] == $this->_nombre) {
261                 $_SESSION['tipoMenu'] = $this->_tipoMenu;
262                 return 1;
263             }
264         }
265         return 0;
266     }
267     // -X2C
268
269 } // -X2C Class :Seccion
270
271 ?>