-------------------------------------------------------------------------------
$Id$
-----------------------------------------------------------------------------*/
require_once 'MLIB/HTML/Image.php';
define('MLIB_MARCO_IMAGENANIMADA_DIR_GENERAL', '/MLIB/images');
/**
* Clase para el manejo de la animacion de las imagenes. Utilizada
* principalmente en la barra de secciones
*
* @access public
*/
class MLIB_Marco_ImagenAnimada {
/**
* Nombre del archivo imagen.
*
* @var string $imgComun
* @access private
*/
var $_imgComun = '';
/**
* Nombre del archivo imagen.
*
* @var string $imgMouseOn
* @access private
*/
var $_imgMouseOn = '';
/**
* Nombre del archivo imagen.
*
* @var string $imgSelect
* @access private
*/
var $_imgSelect = '';
/**
* Indica si la imagen esta seleccionada.
*
* @var bool $seleccionada
* @access protected
*/
var $_seleccionada = false;
/**
* Indica si está habilitado el link.
*
* @var bool $habilitada
* @access protected
*/
var $_habilitada = true;
/**
* Link a donde apunta la imagen.
*
* @var string $link
* @access protected
*/
var $_link = '';
/**
* Nombre de la imagen
*
* @var string $nombre
* @access protected
*/
var $_nombre = '';
/**
* Gets Seleccionada.
*
* @return bool
* @access public
*/
function getSeleccionada()
{
return $this->_seleccionada;
}
/**
* Sets Seleccionada.
*
* @param bool $seleccionada Seleccionada.
*
* @return void
* @access public
*/
function setSeleccionada($seleccionada)
{
$this->_seleccionada = $seleccionada;
}
/**
* Gets Habilitada.
*
* @return bool
* @access public
*/
function getHabilitada()
{
return $this->_habilitada;
}
/**
* Sets Habilitada.
*
* @param bool $habilitada Habilitada.
*
* @return void
* @access public
*/
function setHabilitada($habilitada)
{
$this->_habilitada = $habilitada;
}
/**
* Gets Link.
*
* @return string
* @access public
*/
function getLink()
{
return $this->_link;
}
/**
* Sets Link.
*
* @param string $link Link.
*
* @return void
* @access public
*/
function setLink($link)
{
$this->_link = $link;
}
/**
* Gets Nombre.
*
* @return string
* @access public
*/
function getNombre()
{
return $this->_nombre;
}
/**
* Sets Nombre.
*
* @param string $nombre Nombre.
*
* @return void
* @access public
*/
function setNombre($nombre)
{
$this->_nombre = $nombre;
}
/**
* Texto alternativo.
*/
var $_alt = '';
/**
* Constructor.
* Recibe como parametro el nombre del archivo que contiene la imagen.
*
* @param string $imagenComun Nombre del archivo imagen.
* @param string $imagenMouseOn Imagen alterna con el mouse por arriba
* @param string $imagenSelect Imagen alterna cuando esta seleccionada la seccion
* @param string $directorio Directorio en donde se encuentran las imagenes
* @param string $nombre Nombre de la imagen animada.
* @param string $link Link.
* @param string $alt Texto alternativo para la imagen.
*
* @return void
* @access public
*/
function MLIB_Marco_ImagenAnimada($imagenComun, $imagenMouseOn = '',
$imagenSelect = '', $directorio = '', $nombre = '', $link = '',
$alt = '')
{
if ($imagenComun !== '') {
$this->_imgComun = $this->_calcularImagen($imagenComun, $directorio);
if ($imagenMouseOn !== '') {
$this->_imgMouseOn = $this->_calcularImagen($imagenMouseOn, $directorio);
}
else {
$this->_imgMouseOn = $this->_calcularImagen($imagenComun, $directorio, '_f2');
}
if ($imagenSelect !== '') {
$this->_imgSelect = $this->_calcularImagen($imagenSelect, $directorio);
}
else {
$this->_imgSelect = $this->_calcularImagen($imagenComun, $directorio, '_f3');
}
}
$this->_nombre = $nombre;
$this->_link = $link;
$this->_alt = $alt ? $alt : $nombre;
}
/**
* Funcion que devuelve un string con el html a imprimir en pantalla.
*
* @return string
* @access public
*/
function toHtml()
{
$src = $this->getSeleccionada() ? $this->_imgSelect : $this->_imgComun;
$img = new MLIB_HTML_Image($src, $this->_alt, array('name' => $this->_nombre, 'border' => 0));
$html = $img->toHtml();
if ($this->getHabilitada()) {
if ($this->getSeleccionada()) {
$prepend = '';
} else {
$prepend = '_nombre.'\',\'\',\''.$this->_imgMouseOn.'\',1)>';
}
$html = $prepend . $html . '';
}
return $html;
}
/**
* @param string $imagen Nombre de la imagen.
* @param string $directorio Directorio.
* @param string $modificador Modificador que indica una variante de la imagen.
*
* @return string
* @access protected
*/
function _calcularImagen($imagen, $directorio, $modificador = '')
{
if ($modificador !== '') {
$pos = strrpos($imagen, '.');
$ext = substr($imagen, $pos);
$nom = substr($imagen, 0, $pos);
$imagen = "$nom$modificador$ext";
}
if (is_readable("{$_SERVER['DOCUMENT_ROOT']}$directorio/$imagen")) {
return "$directorio/$imagen";
}
else {
return MLIB_MARCO_IMAGENANIMADA_DIR_GENERAL . "/$imagen";
}
}
}
?>