1 <?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
2 -------------------------------------------------------------------------------
4 -------------------------------------------------------------------------------
5 This file is part of mlib.
7 mlib is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2 of the License, or (at your option)
12 mlib is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License; if not,
17 write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
18 Boston, MA 02111-1307 USA
19 -------------------------------------------------------------------------------
20 Creado: mar mar 16 15:55:32 ART 2004
21 Author: Leandro Lucarella <llucar@mecon.gov.ar>
22 -------------------------------------------------------------------------------
24 -----------------------------------------------------------------------------*/
26 require_once 'MLIB/HTML/Link.php';
27 require_once 'MLIB/HTML/Image.php';
32 * Básicamente es una imágen con un link.
35 * require_once 'MLIB/HTML/Icon.php';
36 * require_once 'MLIB/HTML/Link.php';
37 * // Crea un ícono de IR sin link.
38 * $icono1 = new MLIB_HTML_Icon('ir');
39 * // Crea un ícono de ELIMINAR que apunta a 'algun/lugar'.
40 * $icono2 = new MLIB_HTML_Icon('eliminar', 'algun/lugar');
41 * // Crea un ícono de NUEVO que apunta a 'algun/lugar?id=3&cant=10', tiene el
42 * // texto alternativo '>>' y 1 píxel de borde.
43 * $icono3 = new MLIB_HTML_Icon('nuevo',
44 * new MLIB_HTML_Link('algun/lugar', '', array('id' => 3, $cant => 10)),
45 * '>>', array('border' => 1));
46 * // Muestra todos los íconos.
48 * echo $icon2->toHtml();
54 class MLIB_HTML_Icon extends MLIB_HTML_Image {
57 * Link a donde apunta la imagen.
63 * Alineacion de la imagen con respecto al texto.
71 * @param $nombre Nombre de la imágen.
72 * @param $link Link a donde apunta. Si es null, no tiene un link.
73 Puede ser un link o un MLIB_HTML_Link.
74 * @param $alt Texto alternativo para la imagen.
75 * @param $attrs Atributos de la imágen.
76 * @param $align Alineación de la imagen con respecto al texto.
78 function MLIB_HTML_Icon($nombre, $link = null, $alt = null, $attrs =
79 array(), $align = 'right')
81 if (is_readable($nombre))
87 $src = "/MLIB/images/general_$nombre";
90 $alt = '(' . strtoupper($nombre{0}) . ')';
92 parent::MLIB_HTML_Image($src, $alt, $attrs);
93 $this->setLink($link);
94 $this->_align = $align;
98 * Converts to HTML output.
104 if (is_null($this->_link)) {
105 return parent::toHtml();
107 $link = $this->getLink();
108 return $link->toHtml();
113 * Gets image location.
117 return $this->getAttribute('src');
121 * Sets image location.
123 * @param string $src Image location.
125 function setSrc($src)
127 $this->updateAttributes(array('src' => $src));
131 * Gets image alternate text.
135 return $this->getAttribute('alt');
139 * Establece el link a donde apunta el ícono.
141 * @param $link Nuevo link.
143 function setLink($link)
145 if (!is_a($link, 'MLIB_html_link') and !is_null($link)) {
146 $this->_link = new MLIB_HTML_Link($link);
148 $this->_link = $link;
153 * Obtiene el link a donde apunta el ícono.
154 * @param $full Si es true, devuelve el link con la imagen incluida, si
155 * es false devuelve solo el link.
157 function getLink($full = true)
159 $link = $this->_link;
160 if (!$full or is_null($link)) {
164 if ($this->_align == 'left') {
165 $link->addContents(new MLIB_HTML_Image($this->getSrc(),
166 $this->getAlt(), $this->getAttributes()), true);
168 elseif ($this->_align == 'right') {
169 $link->addContents(new MLIB_HTML_Image($this->getSrc(),
170 $this->getAlt(), $this->getAttributes()));