'',
'afterLink' => '',
'beforeDelete' => '',
'afterDelete' => '',
'beforeElement' => '',
'afterElement' => '',
);
public function __call($method, $args)
{
if ('getAdditionalHtml' == substr($method, 0, 17)) {
$section = substr($method, 17);
return $this->_getAdditionalHtml($section);
} elseif ('setAdditionalHtml' == substr($method, 0, 17)) {
$section = substr($method, 17);
return $this->_setAdditionalHtml($section, $args[0]);
}
// require_once 'Zend/Form/Decorator/Exception.php';
throw new Zend_Form_Decorator_Exception(sprintf('Method %s does not exist', $method));
}
public function render($content)
{
$element = $this->getElement();
$content = parent::render($content);
$topHtml = '';
if ($element->getValue()) {
$topHtml = $this->_additionalHtml['beforeLink']
. 'download'
. $this->_additionalHtml['afterLink']
. ''
. $this->_additionalHtml['beforeDelete'];
if (!$element->isRequired()) {
if (empty($this->_additionalHtml['beforeDelete'])) {
$topHtml .= '
';
}
$topHtml .= ' ';
}
$topHtml .= $this->_additionalHtml['afterDelete'] . '
';
}
return $topHtml . $this->_additionalHtml['beforeElement'] . $content . $this->_additionalHtml['afterElement'];
}
public function setAdditionalHtml($options = array())
{
foreach ($options as $section => $html) {
$this->_setAdditionalHtml($section, $html);
}
}
protected function _setAdditionalHtml($section, $html)
{
if (!isset($this->_additionalHtml[$section])) {
// require_once 'Zend/Form/Decorator/Exception.php';
throw new Zend_Form_Decorator_Exception('Invalid section for decorator additional HTML');
}
$this->_additionalHtml[$section] = $html;
}
protected function _getAdditionalHtml($section = null)
{
if (empty($section)) {
return $this->_additionalHtml;
}
if (isset($this->_additionalHtml[$section])) {
return $this->_additionalHtml[$section];
}
return '';
}
}