Viewing file: Image.php (4.22 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_Form * @subpackage Decorator * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */
/** Zend_Form_Decorator_Abstract */ require_once 'Zend/Form/Decorator/Abstract.php';
/** * Zend_Form_Decorator_Image * * Accepts the options: * - separator: separator to use between image and content (defaults to PHP_EOL) * - placement: whether to append or prepend label to content (defaults to append) * - tag: if set, used to wrap the label in an additional HTML tag * * Any other options passed will be used as HTML attributes of the image tag. * * @category Zend * @package Zend_Form * @subpackage Decorator * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id: Image.php 18951 2009-11-12 16:26:19Z alexander $ */ class Zend_Form_Decorator_Image extends Zend_Form_Decorator_Abstract { /** * Attributes that should not be passed to helper * @var array */ protected $_attribBlacklist = array('helper', 'placement', 'separator', 'tag');
/** * Default placement: append * @var string */ protected $_placement = 'APPEND';
/** * HTML tag with which to surround image * @var string */ protected $_tag;
/** * Set HTML tag with which to surround label * * @param string $tag * @return Zend_Form_Decorator_Image */ public function setTag($tag) { $this->_tag = (string) $tag; return $this; }
/** * Get HTML tag, if any, with which to surround label * * @return void */ public function getTag() { if (null === $this->_tag) { $tag = $this->getOption('tag'); if (null !== $tag) { $this->removeOption('tag'); $this->setTag($tag); } return $tag; }
return $this->_tag; }
/** * Get attributes to pass to image helper * * @return array */ public function getAttribs() { $attribs = $this->getOptions();
if (null !== ($element = $this->getElement())) { $attribs['alt'] = $element->getLabel(); $attribs = array_merge($attribs, $element->getAttribs()); }
foreach ($this->_attribBlacklist as $key) { if (array_key_exists($key, $attribs)) { unset($attribs[$key]); } }
return $attribs; }
/** * Render a form image * * @param string $content * @return string */ public function render($content) { $element = $this->getElement(); $view = $element->getView(); if (null === $view) { return $content; }
$tag = $this->getTag(); $placement = $this->getPlacement(); $separator = $this->getSeparator(); $name = $element->getFullyQualifiedName(); $attribs = $this->getAttribs(); $attribs['id'] = $element->getId();
$image = $view->formImage($name, $element->getImageValue(), $attribs);
if (null !== $tag) { require_once 'Zend/Form/Decorator/HtmlTag.php'; $decorator = new Zend_Form_Decorator_HtmlTag(); $decorator->setOptions(array('tag' => $tag)); $image = $decorator->render($image); }
switch ($placement) { case self::PREPEND: return $image . $separator . $content; case self::APPEND: default: return $content . $separator . $image; } } }
|