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