]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Marco/ImagenAnimada.php
- Correccion de 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 /**
32  * Clase para el manejo de la animacion de las imagenes. Utilizada 
33  * principalmente en la barra de secciones
34  *
35  * @access public
36  */
37 class MECON_Marco_ImagenAnimada {
38     /**
39      * Nombre del archivo imagen.
40      *
41      * @var    string $imgComun
42      * @access private
43      */
44     var $_imgComun = '';
45
46     /**
47      * Nombre del archivo imagen.
48      *
49      * @var    string $imgMouseOn
50      * @access private
51      */
52     var $_imgMouseOn = '';
53
54     /**
55      * Nombre del archivo imagen.
56      *
57      * @var    string $imgSelect
58      * @access private
59      */
60     var $_imgSelect = '';
61
62     /**
63      * Indica si la imagen esta seleccionada.
64      *
65      * @var    bool $seleccionada
66      * @access protected
67      */
68     var $_seleccionada = false;
69
70     /**
71      * Indica si está habilitado el link.
72      *
73      * @var    bool $habilitada
74      * @access protected
75      */
76     var $_habilitada = true;
77
78     /**
79      * Link a donde apunta la imagen.
80      *
81      * @var    string $link
82      * @access protected
83      */
84     var $_link = '';
85
86     /**
87      * Nombre de la imagen
88      *
89      * @var    string $nombre
90      * @access protected
91      */
92     var $_nombre = '';
93
94     /**
95      * Gets Seleccionada.
96      *
97      * @return bool
98      * @access public
99      */
100     function getSeleccionada()
101     {
102         return $this->_seleccionada;
103     }
104     /**
105      * Sets Seleccionada.
106      *
107      * @param  bool $seleccionada Seleccionada.
108      *
109      * @return void
110      * @access public
111      */
112     function setSeleccionada($seleccionada)
113     {
114         $this->_seleccionada = $seleccionada;
115     }
116
117     /**
118      * Gets Habilitada.
119      *
120      * @return bool
121      * @access public
122      */
123     function getHabilitada()
124     {
125         return $this->_habilitada;
126     }
127     /**
128      * Sets Habilitada.
129      *
130      * @param  bool $habilitada Habilitada.
131      *
132      * @return void
133      * @access public
134      */
135     function setHabilitada($habilitada)
136     {
137         $this->_habilitada = $habilitada;
138     }
139
140     /**
141      * Gets Link.
142      *
143      * @return string
144      * @access public
145      */
146     function getLink()
147     {
148         return $this->_link;
149     }
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     /**
176      * Sets Nombre.
177      *
178      * @param  string $nombre Nombre.
179      *
180      * @return void
181      * @access public
182      */
183     function setNombre($nombre)
184     {
185         $this->_nombre = $nombre;
186     }
187
188     /**
189      * Texto alternativo.
190      */
191     var $_alt = '';
192
193     /**
194      * Constructor. 
195      * Recibe como parametro el nombre del archivo que contiene la imagen.
196      *
197      * @param  string $imagenComun Nombre del archivo imagen.
198      * @param  string $imagenMouseOn Imagen alterna con el mouse por arriba
199      * @param  string $imagenSelect Imagen alterna cuando esta seleccionada la seccion
200      * @param  string $directorio Directorio en donde se encuentran las imagenes
201      * @param  string $nombre Nombre de la imagen animada.
202      * @param  string $link Link.
203      * @param  string $alt  Texto alternativo para la imagen.
204      *
205      * @return void
206      * @access public
207      */
208     function MECON_Marco_ImagenAnimada($imagenComun, $imagenMouseOn = '', 
209             $imagenSelect = '', $directorio = '', $nombre = '', $link = '', 
210             $alt = '') 
211     {
212         if ($imagenComun !== '') {
213             $this->_imgComun = $this->_calcularImagen($imagenComun, $directorio);
214             if ($imagenMouseOn !== '') {
215                 $this->_imgMouseOn = $this->_calcularImagen($imagenMouseOn, $directorio);
216             }
217             else {
218                 $this->_imgMouseOn = $this->_calcularImagen($imagenComun, $directorio, '_f2');
219             }
220             if ($imagenSelect !== '') {
221                 $this->_imgSelect = $this->_calcularImagen($imagenSelect, $directorio);
222             }
223             else {
224                 $this->_imgSelect = $this->_calcularImagen($imagenComun, $directorio, '_f3');
225             }
226         }
227         $this->_nombre = $nombre;
228         $this->_link   = $link;
229         $this->_alt    = $alt ? $alt : $nombre;
230     }
231
232     /**
233      * Funcion que devuelve un string con el html a imprimir en pantalla.
234      *
235      * @return string
236      * @access public
237      */
238     function toHtml() 
239     {
240         $src  = $this->getSeleccionada() ? $this->_imgSelect : $this->_imgComun;
241         $img  = new MECON_HTML_Image($src, $this->_alt, array('name' => $this->_nombre, 'border' => 0));
242         $html = $img->toHtml();
243         if ($this->getHabilitada()) {
244             if ($this->getSeleccionada()) {
245                 $prepend = '<a href="'.$this->getLink().'">';
246             } else {
247                 $prepend = '<a href="'.$this->getLink().'" onMouseOut="MM_swapImgRestore()"
248                     onMouseOver="MM_displayStatusMsg(\''.$this->_nombre.'\');
249                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1);
250                     return document.MM_returnValue"
251                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1)>';
252             }
253             $html = $prepend . $html . '</a>';
254         }
255         return $html;
256     }
257
258     /**
259      * @param  string $imagen Nombre de la imagen.
260      * @param  string $directorio Directorio.
261      * @param  string $modificador Modificador que indica una variante de la imagen.
262      *
263      * @return string
264      * @access protected
265      */
266     function _calcularImagen($imagen, $directorio, $modificador = '') 
267     {
268         if ($modificador !== '') {
269             $pos = strrpos($imagen, '.');
270             $ext = substr($imagen, $pos);
271             $nom = substr($imagen, 0, $pos);
272             $imagen = "$nom$modificador$ext";
273         }
274         if (is_readable("{$_SERVER['DOCUMENT_ROOT']}$directorio/$imagen")) {
275             return "$directorio/$imagen";
276         }
277         else {
278             return MECON_MARCO_IMAGENANIMADA_DIR_GENERAL . "/$imagen";
279         }
280     }
281 }
282
283 ?>