]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Marco/ImagenAnimada.php
bb3f3bbb97878a8992415fe00812f458ffadce48
[mecon/meconlib.git] / lib / MECON / Marco / ImagenAnimada.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 'HTML/Image.php';
28
29 define('MECON_MARCO_IMAGENANIMADA_DIR_GENERAL', '/MECON/images');
30
31 // +X2C Class 17 :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 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 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 :ImagenAnimada
278
279 ?>