]> git.llucax.com Git - mecon/meconlib.git/blob - lib/Marco/Seccion.php
- Cambio en el constructor de Marco.
[mecon/meconlib.git] / lib / 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 'Marco/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      * @access private
54      */
55     var $_nombre;
56
57     /**
58      * Este es el nombre de la imagen
59      *
60      * @var    Imagen $imagen
61      * @access private
62      */
63     var $_imagen;
64
65     /**
66      * Hijos (menu) de la seccion.
67      *
68      * @var    Menu $hijos
69      * @access private
70      */
71     var $_hijos;
72
73     /**
74      * Valor string del tipo de menu de la seccion
75      *
76      * @var    string $tipoMenu
77      * @access private
78      */
79     var $_tipoMenu;
80
81     /**
82      * Lugar en donde esta el sistema.
83      *
84      * @var    string $directorio
85      * @access private
86      */
87     var $_directorio;
88
89     /**
90      * @var    string $menuHtml
91      * @access private
92      */
93     var $_menuHtml;
94
95     // ~X2C
96
97     // +X2C Operation 63
98     /**
99      * Constructor. Recibe como parametro el nombre de la seccion
100      *
101      * @param  array $seccion Array con la informacion de la seccion
102      * @param  string $directorio Dir en donde esta el sistema
103      *
104      * @return void
105      * @access public
106      * @static
107      */
108     function Seccion($seccion, $directorio) // ~X2C
109     {
110         if (array_key_exists('nombre',$seccion)) { 
111             $this->_nombre   = $seccion['nombre'];
112         }
113         
114         if (array_key_exists('imagenComun'  ,$seccion))
115             $imgComun  =$seccion['imagenComun'];
116         else 
117             unset($imgComun);
118         if (array_key_exists('imagenMouseOn',$seccion))
119             $imgMouseOn=$seccion['imagenMouseOn'];
120         else
121             unset($imgMouseOn);
122         if (array_key_exists('imagenSelect' ,$seccion))
123             $imgSelect =$seccion['imagenSelect'];
124         else
125             unset($imgSelect);
126         $this->_imagen   = new ImagenAnimada($imgComun,$imgMouseOn,$imgSelect);
127         
128         if (array_key_exists('tipoMenu',$seccion)) {
129             $this->_tipoMenu = $seccion['tipoMenu'];
130         }
131         if (!is_null($directorio)) {
132             $this->_directorio = $directorio;
133         }
134         if (array_key_exists('link',$seccion)) {
135             parent::Pagina($seccion['link']);
136         }        
137         if (array_key_exists('hijos',$seccion)) {
138             $this->_cargarHijos($seccion['hijos']);
139         }
140     }
141     // -X2C
142
143     // +X2C Operation 64
144     /**
145      * Funcion que devuelve un string con el html a imprimir por pantalla.
146      *
147      * @param  string $link_sel Indica la pagina a la cual se quiere acceder.
148      *
149      * @return string
150      * @access public
151      */
152     function toHtml($link_sel) // ~X2C
153     {
154         if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) {
155             $link_start  = '';
156             $link_end    = '';
157             $link_start2 = '';
158         }
159         else {
160             $link_start  = '<a href="'.$this->_link.'">';
161             $link_start2 = '<a href="'.$this->_link.'" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_displayStatusMsg(\''.$this->_nombre.'\'); MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imagen->_imgMouseOn.'\',1); return document.MM_returnValue" MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imagen->_imgMouseOn.'\',1)>';
162             $link_end    = '</a>';
163         }
164
165         if ($this->verifSeccionSeleccionada($link_sel)) {
166             $sec    = $link_start."<img name=\"".$this->_nombre."\" src=\"".$this->_imagen->_imgSelect."\" border=\"0\" alt=\"".$this->_imagen->_alt."\">".$link_end;
167         }
168         else {
169             $sec = $link_start2."<img name=\"".$this->_nombre."\" src=\"".$this->_imagen->_imgComun."\" border=\"0\" alt=\"".$this->_imagen->_alt."\">".$link_end;
170         }
171         
172         return $sec;
173     }
174     // -X2C
175
176     // +X2C Operation 84
177     /**
178      * Carga el array con los objetos hijos de la seccion
179      *
180      * @param  array $hijos Array con los datos de los hijos de la seccion
181      *
182      * @return void
183      * @access private
184      */
185     function _cargarHijos($hijos) // ~X2C
186     {
187         if ($this->_tipoMenu == 'vertical'){
188             $tmp = new MenuVertical($this->_directorio);
189         }
190         elseif ($this->_tipoMenu == 'horizontal') {
191             $tmp = new MenuHorizontal($this->_directorio);
192         }
193         else {
194             $tmp = new MenuOculto($this->_directorio);
195         }
196         foreach ($hijos as $hijo) {
197             $tmp->agregarComponente($hijo);
198         }
199         $this->_hijos = $tmp;
200     }
201     // -X2C
202
203     // +X2C Operation 127
204     /**
205      * Funcion que se encarga de desserializar el array asociativo paginas-secciones.
206      *
207      * @return void
208      * @access private
209      */
210     function _desSerializarArraySecciones() // ~X2C
211     {
212         $tmp = PRE_DIR.$this->_directorio.POST_DIR.ARRAYSECCIONES_SERIALIZADO;
213        
214         if (file_exists($tmp)) {
215             $s = implode("", @file($tmp));
216             return unserialize($s);
217         }
218         else {
219             return null;
220         }
221     }
222     // -X2C
223
224     // +X2C Operation 129
225     /**
226      * 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.
227 Devuelve 1 si pertenece a la seccion, en caso contrario 0.
228      *
229      * @param  string $link_sel Nombre de la pagina a la cual se quiere acceder.
230      *
231      * @return int
232      * @access public
233      */
234     function verifSeccionSeleccionada($link_sel) // ~X2C
235     {
236         $tmp = $this->_desSerializarArraySecciones();
237         $retorno = 0;
238         if (isset($tmp) && array_key_exists($this->_nombre,$tmp)) {
239             foreach ($tmp[$this->_nombre] as $t) {
240                 if ($link_sel == $t) {
241                     $retorno = 1;
242                 }
243             }
244         }
245         return $retorno;
246     }
247     // -X2C
248
249
250
251     // +X2C Operation 202
252     /**
253      * @param  string $link_sel Nombre de la seccion seleccionada
254      * @param  bool $ultimo Indica si es el ultimo componente del menu.....en caso de serlo, debe mostrar la imagen con codito
255      *
256      * @return string
257      * @access public
258      */
259     function toHtmlVertical($link_sel, $ultimo = false) // ~X2C
260     {
261         $style = "text-decoration:none";
262         
263         if (isset($_SESSION['deshabilitar_links']) && $_SESSION['deshabilitar_links']) {
264             $link_start = '';
265             $link_end   = '';
266         }
267         else {
268             $link_start = '<a href="'.$this->_link.'" style="'.$style.'">';
269             $link_end   = '</a>';
270         }
271         
272         $sec = array ();
273         if ($this->verifSeccionSeleccionada($link_sel)) {
274             if ($ultimo) {
275                 $sec[] = $link_start.'<img src="/www/images/carp2_f3" border="0">'.$link_end;
276             }
277             else {
278                 $sec[] = $link_start.'<img src="/www/images/carp1_f3" border="0">'.$link_end;
279             }
280         }
281         else {
282             if ($ultimo) {
283                 $sec[] = $link_start.'<img src="/www/images/carp2_f2" border="0">'.$link_end;
284             }
285             else {
286                 $sec[] = $link_start.'<img src="/www/images/carp1_f2" border="0">'.$link_end;
287             }
288         }
289         
290         $sec[] = '<font face="Arial, Helvetica, sans-serif" size="1" color=""><b>'.$link_start.'&nbsp;&nbsp;'.$this->_nombre.$link_end.'</b></font>';
291         return $sec;
292     }
293     // -X2C
294
295 } // -X2C Class :Seccion
296
297 ?>