]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Marco/ImagenAnimada.php
Se mejora un poco los ALT para navegadores de texto.
[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     /**
190      * Texto alternativo.
191      */
192     var $_alt = '';
193
194     // +X2C Operation 70
195     /**
196      * Constructor. Recibe como parametro el nombre del archivo que contiene la imagen.
197      *
198      * @param  string $imagenComun Nombre del archivo imagen.
199      * @param  string $imagenMouseOn Imagen alterna con el mouse por arriba
200      * @param  string $imagenSelect Imagen alterna cuando esta seleccionada la seccion
201      * @param  string $directorio Directorio en donde se encuentran las imagenes
202      * @param  string $nombre Nombre de la imagen animada.
203      * @param  string $link Link.
204      * @param  string $alt  Texto alternativo para la imagen.
205      *
206      * @return void
207      * @access public
208      */
209     function MECON_Marco_ImagenAnimada($imagenComun, $imagenMouseOn = '', $imagenSelect = '', $directorio = '', $nombre = '', $link = '', $alt = '') // ~X2C
210     {
211         if ($imagenComun !== '') {
212             $this->_imgComun = $this->_calcularImagen($imagenComun, $directorio);
213             if ($imagenMouseOn !== '') {
214                 $this->_imgMouseOn = $this->_calcularImagen($imagenMouseOn, $directorio);
215             }
216             else {
217                 $this->_imgMouseOn = $this->_calcularImagen($imagenComun, $directorio, '_f2');
218             }
219             if ($imagenSelect !== '') {
220                 $this->_imgSelect = $this->_calcularImagen($imagenSelect, $directorio);
221             }
222             else {
223                 $this->_imgSelect = $this->_calcularImagen($imagenComun, $directorio, '_f3');
224             }
225         }
226         $this->_nombre = $nombre;
227         $this->_link   = $link;
228         $this->_alt    = $alt ? $alt : $nombre;
229     }
230     // -X2C
231
232     // +X2C Operation 71
233     /**
234      * Funcion que devuelve un string con el html a imprimir en pantalla.
235      *
236      * @return string
237      * @access public
238      */
239     function toHtml() // ~X2C
240     {
241         $src  = $this->getSeleccionada() ? $this->_imgSelect : $this->_imgComun;
242         $img  = new MECON_HTML_Image($src, $this->_alt, array('name' => $this->_nombre, 'border' => 0));
243         $html = $img->toHtml();
244         if ($this->getHabilitada()) {
245             if ($this->getSeleccionada()) {
246                 $prepend = '<a href="'.$this->getLink().'">';
247             } else {
248                 $prepend = '<a href="'.$this->getLink().'" onMouseOut="MM_swapImgRestore()"
249                     onMouseOver="MM_displayStatusMsg(\''.$this->_nombre.'\');
250                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1);
251                     return document.MM_returnValue"
252                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1)>';
253             }
254             $html = $prepend . $html . '</a>';
255         }
256         return $html;
257     }
258     // -X2C
259
260     // +X2C Operation 209
261     /**
262      * @param  string $imagen Nombre de la imagen.
263      * @param  string $directorio Directorio.
264      * @param  string $modificador Modificador que indica una variante de la imagen.
265      *
266      * @return string
267      * @access protected
268      */
269     function _calcularImagen($imagen, $directorio, $modificador = '') // ~X2C
270     {
271         if ($modificador !== '') {
272             $pos = strrpos($imagen, '.');
273             $ext = substr($imagen, $pos);
274             $nom = substr($imagen, 0, $pos);
275             $imagen = "$nom$modificador$ext";
276         }
277         if (is_readable("{$_SERVER['DOCUMENT_ROOT']}$directorio/$imagen")) {
278             return "$directorio/$imagen";
279         }
280         else {
281             return MECON_MARCO_IMAGENANIMADA_DIR_GENERAL . "/$imagen";
282         }
283     }
284     // -X2C
285
286 } // -X2C Class :MECON_Marco_ImagenAnimada
287
288 ?>