]> git.llucax.com Git - mecon/meconlib.git/blob - lib/MECON/Marco/ImagenAnimada.php
6166045f9d5fad21526dce6a819c4700a1f051b8
[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 define('MECON_MARCO_IMAGENANIMADA_DIR_GENERAL', '/MECON/images');
28
29 // +X2C Class 17 :ImagenAnimada
30 /**
31  * Clase para el manejo de la animacion de las imagenes. Utilizada principalmente en la barra de secciones
32  *
33  * @access public
34  */
35 class ImagenAnimada {
36     /**
37      * Nombre del archivo imagen.
38      *
39      * @var    string $imgComun
40      * @access private
41      */
42     var $_imgComun;
43
44     /**
45      * Nombre del archivo imagen.
46      *
47      * @var    string $imgMouseOn
48      * @access private
49      */
50     var $_imgMouseOn;
51
52     /**
53      * Nombre del archivo imagen.
54      *
55      * @var    string $imgSelect
56      * @access private
57      */
58     var $_imgSelect;
59
60     /**
61      * Indica si la imagen esta seleccionada.
62      *
63      * @var    bool $seleccionada
64      * @access protected
65      */
66     var $_seleccionada = false;
67
68     /**
69      * Indica si est?habilitado el link.
70      *
71      * @var    bool $habilitada
72      * @access protected
73      */
74     var $_habilitada = true;
75
76     /**
77      * Link a donde apunta la imagen.
78      *
79      * @var    string $link
80      * @access protected
81      */
82     var $_link = '';
83
84     /**
85      * Gets Seleccionada.
86      *
87      * @return bool
88      * @access public
89      */
90     function getSeleccionada()
91     {
92         return $this->_seleccionada;
93     }
94     /**
95      * Sets Seleccionada.
96      *
97      * @param  bool $seleccionada Seleccionada.
98      *
99      * @return void
100      * @access public
101      */
102     function setSeleccionada($seleccionada)
103     {
104         $this->_seleccionada = $seleccionada;
105     }
106
107     /**
108      * Gets Habilitada.
109      *
110      * @return bool
111      * @access public
112      */
113     function getHabilitada()
114     {
115         return $this->_habilitada;
116     }
117     /**
118      * Sets Habilitada.
119      *
120      * @param  bool $habilitada Habilitada.
121      *
122      * @return void
123      * @access public
124      */
125     function setHabilitada($habilitada)
126     {
127         $this->_habilitada = $habilitada;
128     }
129
130     /**
131      * Gets Link.
132      *
133      * @return string
134      * @access public
135      */
136     function getLink()
137     {
138         return $this->_link;
139     }
140     /**
141      * Sets Link.
142      *
143      * @param  string $link Link.
144      *
145      * @return void
146      * @access public
147      */
148     function setLink($link)
149     {
150         $this->_link = $link;
151     }
152
153     // ~X2C
154
155     // +X2C Operation 70
156     /**
157      * Constructor. Recibe como parametro el nombre del archivo que contiene la imagen.
158      *
159      * @param  string $imagenComun Nombre del archivo imagen.
160      * @param  string $imagenMouseOn Imagen alterna con el mouse por arriba
161      * @param  string $imagenSelect Imagen alterna cuando esta seleccionada la seccion
162      * @param  string $directorio Directorio en donde se encuentran las imagenes
163      *
164      * @return void
165      * @access public
166      */
167     function ImagenAnimada($imagenComun, $imagenMouseOn = '', $imagenSelect = '', $directorio = '')// ~X2C
168     {
169         if ($imagenComun !== '') {
170             $this->_imgComun = $this->_calcularImagen($imagenComun, $directorio);
171             if ($imagenMouseOn !== '') {
172                 $this->_imgMouseOn = $this->_calcularImagen($imagenMouseOn, $directorio);
173             }
174             else {
175                 $this->_imgMouseOn = $this->_calcularImagen($imagenComun, $directorio, '_f2');
176             }
177             if ($imagenSelect !== '') {
178                 $this->_imgSelect = $this->_calcularImagen($imagenSelect, $directorio);
179             }
180             else {
181                 $this->_imgSelect = $this->_calcularImagen($imagenComun, $directorio, '_f3');
182             }
183         }
184     }
185     // -X2C
186
187     // +X2C Operation 71
188     /**
189      * Funcion que devuelve un string con el html a imprimir en pantalla.
190      *
191      * @return string
192      * @access public
193      */
194     function toHtml()// ~X2C
195     {
196         $img = new HTML_Image(array('name' => $this->getName(), 'border' => 0));
197         $src = $this->getSeleccionada() ? $this->_imgSelect : $this->_imgComun;
198         $img->updateAttributes(array ('src' => $src) );
199         $html = $img->toHtml();
200         if ($this->getHabilitada()) {
201             if ($this->getSeleccionada()) {
202                 $prepend = '<a href="'.$this->getLink().'">';
203             } else {
204                 $prepend = '<a href="'.$this->getLink().'" onMouseOut="MM_swapImgRestore()"
205                     onMouseOver="MM_displayStatusMsg(\''.$this->getName().'\');
206                     MM_swapImage(\''.$this->getName().'\',\'\',\''.$this->_imgMouseOn.'\',1);
207                     return document.MM_returnValue"
208                     MM_swapImage(\''.$this->getName().'\',\'\',\''.$this->_imgMouseOn.'\',1)>';
209             }
210             $html = $prepend . $html . '</a>';
211         }
212         return $html;
213     }
214     // -X2C
215
216     // +X2C Operation 209
217     /**
218      * @param  string $imagen Nombre de la imagen.
219      * @param  string $directorio Directorio.
220      * @param  string $modificador Modificador que indica una variante de la imagen.
221      *
222      * @return string
223      * @access protected
224      */
225     function _calcularImagen($imagen, $directorio, $modificador = '')// ~X2C
226     {
227         if ($modificador !== '') {
228             $pos = strrpos($imagen, '.');
229             $ext = substr($imagen, $pos);
230             $nom = substr($imagen, 0, $pos);
231             $imagen = "$nom$modificador$ext";
232         }
233         if (is_readable("{$_SERVER['DOCUMENT_ROOT']}$directorio/$imagen")) {
234             return "$directorio/$imagen";
235         }
236         else {
237             return MECON_MARCO_IMAGENANIMADA_DIR_GENERAL . "/$imagen";
238         }
239     }
240     // -X2C
241
242 } // -X2C Class :ImagenAnimada
243
244 ?>