1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
5 -------------------------------------------------------------------------------
6 This file is part of meconlib.
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)
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.
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: mar mar 16 15:55:32 ART 2004
22 Author: Leandro Lucarella <llucar@mecon.gov.ar>
23 -------------------------------------------------------------------------------
25 -----------------------------------------------------------------------------*/
27 require_once 'MECON/HTML/Link.php';
28 require_once 'MECON/HTML/Image.php';
33 * Básicamente es una imágen con un link.
36 * require_once 'MECON/HTML/Icon.php';
37 * require_once 'MECON/HTML/Link.php';
38 * // Crea un ícono de IR sin link.
39 * $icono1 = new MECON_HTML_Icon('ir');
40 * // Crea un ícono de ELIMINAR que apunta a 'algun/lugar'.
41 * $icono2 = new MECON_HTML_Icon('eliminar', 'algun/lugar');
42 * // Crea un ícono de NUEVO que apunta a 'algun/lugar?id=3&cant=10', tiene el
43 * // texto alternativo '>>' y 1 píxel de borde.
44 * $icono3 = new MECON_HTML_Icon('nuevo',
45 * new MECON_HTML_Link('algun/lugar', '', array('id' => 3, $cant => 10)),
46 * '>>', array('border' => 1));
47 * // Muestra todos los íconos.
49 * echo $icon2->toHtml();
55 class MECON_HTML_Icon extends MECON_HTML_Image {
58 * Link a donde apunta la imagen.
64 * Alineacion de la imagen con respecto al texto.
72 * @param $nombre Nombre de la imágen.
73 * @param $link Link a donde apunta. Si es null, no tiene un link.
74 Puede ser un link o un MECON_HTML_Link.
75 * @param $alt Texto alternativo para la imagen.
76 * @param $attrs Atributos de la imágen.
77 * @param $align Alineación de la imagen con respecto al texto.
79 function MECON_HTML_Icon($nombre, $link = null, $alt = null, $attrs =
80 array(), $align = 'right')
82 if (is_readable($nombre))
88 $src = "/MECON/images/general_$nombre";
91 $alt = '(' . strtoupper($nombre{0}) . ')';
93 parent::MECON_HTML_Image($src, $alt, $attrs);
94 $this->setLink($link);
95 $this->_align = $align;
99 * Converts to HTML output.
105 if (is_null($this->_link)) {
106 return parent::toHtml();
108 $link = $this->getLink();
109 return $link->toHtml();
114 * Gets image location.
118 return $this->getAttribute('src');
122 * Sets image location.
124 * @param string $src Image location.
126 function setSrc($src)
128 $this->updateAttributes(array('src' => $src));
132 * Gets image alternate text.
136 return $this->getAttribute('alt');
140 * Establece el link a donde apunta el ícono.
142 * @param $link Nuevo link.
144 function setLink($link)
146 if (!is_a($link, 'mecon_html_link') and !is_null($link)) {
147 $this->_link = new MECON_HTML_Link($link);
149 $this->_link = $link;
154 * Obtiene el link a donde apunta el ícono.
155 * @param $full Si es true, devuelve el link con la imagen incluida, si
156 * es false devuelve solo el link.
158 function getLink($full = true)
160 $link = $this->_link;
161 if (!$full or is_null($link)) {
165 if ($this->_align == 'left') {
166 $link->addContents(new MECON_HTML_Image($this->getSrc(),
167 $this->getAlt(), $this->getAttributes()), true);
169 elseif ($this->_align == 'right') {
170 $link->addContents(new MECON_HTML_Image($this->getSrc(),
171 $this->getAlt(), $this->getAttributes()));