]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Marco/ImagenAnimada.php
Se completa documentacion y se arreglan bugs.
[mecon/meconlib.git] / lib / MECON / Marco / ImagenAnimada.php
1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
3                              Ministerio de Economía
4                                     meconlib
5 -------------------------------------------------------------------------------
6 This file is part of meconlib.
7
8 meconlib is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free
10 Software Foundation; either version 2 of the License, or (at your option)
11 any later version.
12
13 meconlib is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16  
17 You should have received a copy of the GNU General Public License; if not,
18 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
19 Boston, MA  02111-1307  USA
20 -------------------------------------------------------------------------------
21 Creado: Mon Apr 14 16:23:22 2003
22 Autor:  Martin Marrese <mmarre@mecon.gov.ar>
23 -------------------------------------------------------------------------------
24 $Id$
25 -----------------------------------------------------------------------------*/
26
27 require_once 'MECON/HTML/Image.php';
28
29 define('MECON_MARCO_IMAGENANIMADA_DIR_GENERAL', '/MECON/images');
30
31 // +X2C Class 17 :MECON_Marco_ImagenAnimada
32 /**
33  * Clase para el manejo de la animacion de las imagenes. Utilizada principalmente en la barra de secciones
34  *
35  * @package MECON_Marco
36  * @access public
37  */
38 class MECON_Marco_ImagenAnimada {
39     /**
40      * Nombre del archivo imagen.
41      *
42      * @var    string $imgComun
43      * @access private
44      */
45     var $_imgComun = '';
46
47     /**
48      * Nombre del archivo imagen.
49      *
50      * @var    string $imgMouseOn
51      * @access private
52      */
53     var $_imgMouseOn = '';
54
55     /**
56      * Nombre del archivo imagen.
57      *
58      * @var    string $imgSelect
59      * @access private
60      */
61     var $_imgSelect = '';
62
63     /**
64      * Indica si la imagen esta seleccionada.
65      *
66      * @var    bool $seleccionada
67      * @access protected
68      */
69     var $_seleccionada = false;
70
71     /**
72      * Indica si está habilitado el link.
73      *
74      * @var    bool $habilitada
75      * @access protected
76      */
77     var $_habilitada = true;
78
79     /**
80      * Link a donde apunta la imagen.
81      *
82      * @var    string $link
83      * @access protected
84      */
85     var $_link = '';
86
87     /**
88      * Nombre de la imagen
89      *
90      * @var    string $nombre
91      * @access protected
92      */
93     var $_nombre = '';
94
95     /**
96      * Gets Seleccionada.
97      *
98      * @return bool
99      * @access public
100      */
101     function getSeleccionada()
102     {
103         return $this->_seleccionada;
104     }
105     /**
106      * Sets Seleccionada.
107      *
108      * @param  bool $seleccionada Seleccionada.
109      *
110      * @return void
111      * @access public
112      */
113     function setSeleccionada($seleccionada)
114     {
115         $this->_seleccionada = $seleccionada;
116     }
117
118     /**
119      * Gets Habilitada.
120      *
121      * @return bool
122      * @access public
123      */
124     function getHabilitada()
125     {
126         return $this->_habilitada;
127     }
128     /**
129      * Sets Habilitada.
130      *
131      * @param  bool $habilitada Habilitada.
132      *
133      * @return void
134      * @access public
135      */
136     function setHabilitada($habilitada)
137     {
138         $this->_habilitada = $habilitada;
139     }
140
141     /**
142      * Gets Link.
143      *
144      * @return string
145      * @access public
146      */
147     function getLink()
148     {
149         return $this->_link;
150     }
151     /**
152      * Sets Link.
153      *
154      * @param  string $link Link.
155      *
156      * @return void
157      * @access public
158      */
159     function setLink($link)
160     {
161         $this->_link = $link;
162     }
163
164     /**
165      * Gets Nombre.
166      *
167      * @return string
168      * @access public
169      */
170     function getNombre()
171     {
172         return $this->_nombre;
173     }
174     /**
175      * Sets Nombre.
176      *
177      * @param  string $nombre Nombre.
178      *
179      * @return void
180      * @access public
181      */
182     function setNombre($nombre)
183     {
184         $this->_nombre = $nombre;
185     }
186
187     // ~X2C
188
189     // +X2C Operation 70
190     /**
191      * Constructor. Recibe como parametro el nombre del archivo que contiene la imagen.
192      *
193      * @param  string $imagenComun Nombre del archivo imagen.
194      * @param  string $imagenMouseOn Imagen alterna con el mouse por arriba
195      * @param  string $imagenSelect Imagen alterna cuando esta seleccionada la seccion
196      * @param  string $directorio Directorio en donde se encuentran las imagenes
197      * @param  string $nombre Nombre de la imagen animada.
198      * @param  string $link Link.
199      *
200      * @return void
201      * @access public
202      */
203     function MECON_Marco_ImagenAnimada($imagenComun, $imagenMouseOn = '', $imagenSelect = '', $directorio = '', $nombre = '', $link = '') // ~X2C
204     {
205         if ($imagenComun !== '') {
206             $this->_imgComun = $this->_calcularImagen($imagenComun, $directorio);
207             if ($imagenMouseOn !== '') {
208                 $this->_imgMouseOn = $this->_calcularImagen($imagenMouseOn, $directorio);
209             }
210             else {
211                 $this->_imgMouseOn = $this->_calcularImagen($imagenComun, $directorio, '_f2');
212             }
213             if ($imagenSelect !== '') {
214                 $this->_imgSelect = $this->_calcularImagen($imagenSelect, $directorio);
215             }
216             else {
217                 $this->_imgSelect = $this->_calcularImagen($imagenComun, $directorio, '_f3');
218             }
219         }
220         $this->_nombre = $nombre;
221         $this->_link   = $link;
222     }
223     // -X2C
224
225     // +X2C Operation 71
226     /**
227      * Funcion que devuelve un string con el html a imprimir en pantalla.
228      *
229      * @return string
230      * @access public
231      */
232     function toHtml() // ~X2C
233     {
234         $src  = $this->getSeleccionada() ? $this->_imgSelect : $this->_imgComun;
235         $img  = new MECON_HTML_Image($src, $this->_nombre, array('name' => $this->_nombre, 'border' => 0));
236         $html = $img->toHtml();
237         if ($this->getHabilitada()) {
238             if ($this->getSeleccionada()) {
239                 $prepend = '<a href="'.$this->getLink().'">';
240             } else {
241                 $prepend = '<a href="'.$this->getLink().'" onMouseOut="MM_swapImgRestore()"
242                     onMouseOver="MM_displayStatusMsg(\''.$this->_nombre.'\');
243                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1);
244                     return document.MM_returnValue"
245                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1)>';
246             }
247             $html = $prepend . $html . '</a>';
248         }
249         return $html;
250     }
251     // -X2C
252
253     // +X2C Operation 209
254     /**
255      * @param  string $imagen Nombre de la imagen.
256      * @param  string $directorio Directorio.
257      * @param  string $modificador Modificador que indica una variante de la imagen.
258      *
259      * @return string
260      * @access protected
261      */
262     function _calcularImagen($imagen, $directorio, $modificador = '') // ~X2C
263     {
264         if ($modificador !== '') {
265             $pos = strrpos($imagen, '.');
266             $ext = substr($imagen, $pos);
267             $nom = substr($imagen, 0, $pos);
268             $imagen = "$nom$modificador$ext";
269         }
270         if (is_readable("{$_SERVER['DOCUMENT_ROOT']}$directorio/$imagen")) {
271             return "$directorio/$imagen";
272         }
273         else {
274             return MECON_MARCO_IMAGENANIMADA_DIR_GENERAL . "/$imagen";
275         }
276     }
277     // -X2C
278
279 } // -X2C Class :MECON_Marco_ImagenAnimada
280
281 ?>