]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Marco/ImagenAnimada.php
65aba3c90a069bac31561622c3a6fe58f98b0290
[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 '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      * @var    string $nombre
89      * @access protected
90      */
91     var $_nombre = '';
92
93     /**
94      * Gets Seleccionada.
95      *
96      * @return bool
97      * @access public
98      */
99     function getSeleccionada()
100     {
101         return $this->_seleccionada;
102     }
103     /**
104      * Sets Seleccionada.
105      *
106      * @param  bool $seleccionada Seleccionada.
107      *
108      * @return void
109      * @access public
110      */
111     function setSeleccionada($seleccionada)
112     {
113         $this->_seleccionada = $seleccionada;
114     }
115
116     /**
117      * Gets Habilitada.
118      *
119      * @return bool
120      * @access public
121      */
122     function getHabilitada()
123     {
124         return $this->_habilitada;
125     }
126     /**
127      * Sets Habilitada.
128      *
129      * @param  bool $habilitada Habilitada.
130      *
131      * @return void
132      * @access public
133      */
134     function setHabilitada($habilitada)
135     {
136         $this->_habilitada = $habilitada;
137     }
138
139     /**
140      * Gets Link.
141      *
142      * @return string
143      * @access public
144      */
145     function getLink()
146     {
147         return $this->_link;
148     }
149     /**
150      * Sets Link.
151      *
152      * @param  string $link Link.
153      *
154      * @return void
155      * @access public
156      */
157     function setLink($link)
158     {
159         $this->_link = $link;
160     }
161
162     /**
163      * Gets Nombre.
164      *
165      * @return string
166      * @access public
167      */
168     function getNombre()
169     {
170         return $this->_nombre;
171     }
172     /**
173      * Sets Nombre.
174      *
175      * @param  string $nombre Nombre.
176      *
177      * @return void
178      * @access public
179      */
180     function setNombre($nombre)
181     {
182         $this->_nombre = $nombre;
183     }
184
185     // ~X2C
186
187     // +X2C Operation 70
188     /**
189      * Constructor. Recibe como parametro el nombre del archivo que contiene la imagen.
190      *
191      * @param  string $imagenComun Nombre del archivo imagen.
192      * @param  string $imagenMouseOn Imagen alterna con el mouse por arriba
193      * @param  string $imagenSelect Imagen alterna cuando esta seleccionada la seccion
194      * @param  string $directorio Directorio en donde se encuentran las imagenes
195      * @param  string $nombre Nombre de la imagen animada.
196      * @param  string $link Link.
197      *
198      * @return void
199      * @access public
200      */
201     function MECON_Marco_ImagenAnimada($imagenComun, $imagenMouseOn = '', $imagenSelect = '', $directorio = '', $nombre = '', $link = '') // ~X2C
202     {
203         if ($imagenComun !== '') {
204             $this->_imgComun = $this->_calcularImagen($imagenComun, $directorio);
205             if ($imagenMouseOn !== '') {
206                 $this->_imgMouseOn = $this->_calcularImagen($imagenMouseOn, $directorio);
207             }
208             else {
209                 $this->_imgMouseOn = $this->_calcularImagen($imagenComun, $directorio, '_f2');
210             }
211             if ($imagenSelect !== '') {
212                 $this->_imgSelect = $this->_calcularImagen($imagenSelect, $directorio);
213             }
214             else {
215                 $this->_imgSelect = $this->_calcularImagen($imagenComun, $directorio, '_f3');
216             }
217         }
218         $this->_nombre = $nombre;
219         $this->_link   = $link;
220     }
221     // -X2C
222
223     // +X2C Operation 71
224     /**
225      * Funcion que devuelve un string con el html a imprimir en pantalla.
226      *
227      * @return string
228      * @access public
229      */
230     function toHtml() // ~X2C
231     {
232         $src  = $this->getSeleccionada() ? $this->_imgSelect : $this->_imgComun;
233         $img  = new HTML_Image($src, $this->_nombre, array('name' => $this->_nombre, 'border' => 0));
234         $html = $img->toHtml();
235         if ($this->getHabilitada()) {
236             if ($this->getSeleccionada()) {
237                 $prepend = '<a href="'.$this->getLink().'">';
238             } else {
239                 $prepend = '<a href="'.$this->getLink().'" onMouseOut="MM_swapImgRestore()"
240                     onMouseOver="MM_displayStatusMsg(\''.$this->_nombre.'\');
241                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1);
242                     return document.MM_returnValue"
243                     MM_swapImage(\''.$this->_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1)>';
244             }
245             $html = $prepend . $html . '</a>';
246         }
247         return $html;
248     }
249     // -X2C
250
251     // +X2C Operation 209
252     /**
253      * @param  string $imagen Nombre de la imagen.
254      * @param  string $directorio Directorio.
255      * @param  string $modificador Modificador que indica una variante de la imagen.
256      *
257      * @return string
258      * @access protected
259      */
260     function _calcularImagen($imagen, $directorio, $modificador = '') // ~X2C
261     {
262         if ($modificador !== '') {
263             $pos = strrpos($imagen, '.');
264             $ext = substr($imagen, $pos);
265             $nom = substr($imagen, 0, $pos);
266             $imagen = "$nom$modificador$ext";
267         }
268         if (is_readable("{$_SERVER['DOCUMENT_ROOT']}$directorio/$imagen")) {
269             return "$directorio/$imagen";
270         }
271         else {
272             return MECON_MARCO_IMAGENANIMADA_DIR_GENERAL . "/$imagen";
273         }
274     }
275     // -X2C
276
277 } // -X2C Class :MECON_Marco_ImagenAnimada
278
279 ?>