]> git.llucax.com Git - mecon/meconlib.git/blob - marco/php/marco/Seccion.php
96692a75387b4b74f1c31daecbfffea330c670ea
[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 require_once 'MenuOculto.php';
40
41
42 // +X2C Class 16 :Seccion
43 /**
44  * Clase seccion para el manejo de las secciones
45  *
46  * @access public
47  */
48 class Seccion extends Pagina {
49     /**
50      * Nombre de la seccion.
51      *
52      * @var    string $nombre
53      *
54      * @access private
55      */
56     var $_nombre;
57
58     /**
59      * Este es el nombre de la imagen
60      *
61      * @var    Imagen $imagen
62      *
63      * @access private
64      */
65     var $_imagen;
66
67     /**
68      * Hijos (menu) de la seccion.
69      *
70      * @var    Menu $hijos
71      *
72      * @access private
73      */
74     var $_hijos;
75
76     /**
77      * Valor string del tipo de menu de la seccion
78      *
79      * @var    string $tipoMenu
80      *
81      * @access private
82      */
83     var $_tipoMenu;
84
85     /**
86      * Lugar en donde esta el sistema.
87      *
88      * @var    string $directorio
89      *
90      * @access private
91      */
92     var $_directorio;
93
94     /**
95      *
96      * @var    string $menuHtml
97      *
98      * @access private
99      */
100     var $_menuHtml;
101
102     // ~X2C
103
104     // +X2C Operation 63
105     /**
106      * Constructor. Recibe como parametro el nombre de la seccion
107      *
108      * @param  array $seccion Array con la informacion de la seccion
109      * @param  string $directorio Dir en donde esta el sistema
110      *
111      * @return void
112      *
113      * @access public
114      * @static
115      */
116     function Seccion($seccion, $directorio) // ~X2C
117     {
118         $this->_nombre   = $seccion['nombre'];
119         $this->_imagen   = new ImagenAnimada($seccion['imagenComun']);
120         $this->_tipoMenu = $seccion['tipoMenu'];
121         $this->_directorio = $directorio;
122         parent::Pagina($seccion['link']);
123         if (array_key_exists('hijos',$seccion)) {
124             $this->_cargarHijos($seccion['hijos']);
125         }
126         elseif (array_key_exists('subhijos',$seccion)) {
127             $this->_cargarSubHijos($seccion['subhijos']);
128         }
129
130     }
131     // -X2C
132
133     // +X2C Operation 64
134     /**
135      * Funcion que devuelve un string con el html a imprimir por pantalla.
136      *
137      * @param  string $link_sel Indica la pagina a la cual se quiere acceder.
138      *
139      * @return string
140      *
141      * @access public
142      */
143     function toHtml($link_sel) // ~X2C
144     {
145         if ($this->verifSeccionSeleccionada($link_sel)) {
146             $sec    = "<a href=\"".$this->_link."\"><img name=\"".$this->_nombre."\" src=\"images/".$this->_imagen->_imgSelect."\" border=\"0\" alt=\"".$this->_imagen->_alt."\"></a>";
147             
148             $titulo = '<font face="Arial, Helvetica, sans-serif" size="3" color="#FFFFFF"><b>'.$this->_nombre.'</b></font>';
149             return $sec;
150         }
151         else {
152             $sec = "<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>";
153
154             return $sec;
155         }
156         
157         return $tmp;
158     }
159     // -X2C
160
161     // +X2C Operation 84
162     /**
163      * Carga el array con los objetos hijos de la seccion
164      *
165      * @param  array $hijos Array con los datos de los hijos de la seccion
166      *
167      * @return void
168      *
169      * @access private
170      */
171     function _cargarHijos($hijos) // ~X2C
172     {
173         if ($this->_tipoMenu == 'vertical'){
174             $tmp = new MenuVertical(null);
175         }
176         elseif ($this->_tipoMenu == 'horizontal') {
177             $tmp = new MenuHorizontal(null);
178         }
179         else {
180             $tmp = new MenuOculto(null);
181         }
182         foreach ($hijos as $hijo) {
183             $tmp->agregarComponente($hijo);
184         }
185         $this->_hijos = $tmp;
186     }
187     // -X2C
188
189     // +X2C Operation 127
190     /**
191      * Funcion que se encarga de desserializar el array asociativo paginas-secciones.
192      *
193      * @return void
194      *
195      * @access private
196      */
197     function _desSerializarArraySecciones() // ~X2C
198     {
199         $tmp = PRE_DIR.$this->_directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO;
200         $s = implode("", @file($tmp));
201         return unserialize($s);
202     }
203     // -X2C
204
205     // +X2C Operation 129
206     /**
207      * 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.
208 Devuelve 1 si pertenece a la seccion, en caso contrario 0.
209      *
210      * @param  string $link_sel Nombre de la pagina a la cual se quiere acceder.
211      *
212      * @return int
213      *
214      * @access public
215      */
216     function verifSeccionSeleccionada($link_sel) // ~X2C
217     {
218         $tmp = $this->_desSerializarArraySecciones();
219         if (isset($tmp) && array_key_exists($link_sel,$tmp) && ($tmp[$link_sel] == $this->_nombre || (array_key_exists($tmp[$link_sel],$tmp) && $this->_nombre == $tmp[$tmp[$link_sel]]))) {
220             return 1;
221         }
222         return 0;
223     }
224     // -X2C
225
226
227     // +X2C Operation 150
228     /**
229      * Carga el array con los objetos subhijos de la seccion
230      *
231      * @param  array $subhijos Array con los nombres de los links que componen a este hijo
232      *
233      * @return void
234      *
235      * @access private
236      */
237     function _cargarSubHijos($subhijos) // ~X2C
238     {
239         echo 'LLegue aca estos en _cargarSubHijos Seccion.php';
240     }
241     // -X2C
242
243 } // -X2C Class :Seccion
244
245 ?>