1
0
Fork 0
MySQLDumper/library/Msd/Form/Decorator/Abstract.php

117 Zeilen
2.9 KiB
PHP

<?php
/**
* This file is part of MySQLDumper released under the GNU/GPL 2 license
* http://www.mysqldumper.net
*
* @package MySQLDumper
* @subpackage Form_Decorator
* @version SVN: $Rev$
* @author $Author$
*/
/**
* Abstract decorator for form elements of Msd_Form
*
* @package MySQLDumper
* @subpackage Form_Decorator
*/
abstract class Msd_Form_Decorator_Abstract extends Zend_Form_Decorator_Abstract
{
/**
* Build and translate the label of an element.
*
* @return string
*/
public function buildLabel()
{
$element = $this->getElement();
$label = $element->getLabel();
if (empty($label)) {
return '';
}
$translator = $element->getTranslator();
if ($translator !== null) {
$label = $translator->translate($label);
}
$attribs = $element->getAttribs();
if (!isset($attribs['noColon']) || $attribs['noColon'] != true) {
$label .= ':';
}
return $label;
}
/**
* Build the HTML-Code of the element.
*
* @return string
*/
public function buildInput()
{
$element = $this->getElement();
$helper = $element->helper;
$value = $element->getValue();
$translator = $element->getTranslator();
if ($translator !== null) {
$value = $translator->translate($value);
}
$ret = $element->getView()->$helper(
$element->getName(),
$value,
$this->_getCleanAttribs(),
$element->options
);
return $ret;
}
/**
* Build the error message, if there is any.
*
* @return string
*/
public function buildErrors()
{
$lang = Msd_Language::getInstance();
$element = $this->getElement();
$messages = $element->getMessages();
if (empty($messages)) {
return '';
}
$html = '<ul>';
foreach (array_keys($messages) as $messageId) {
$html .= '<li>' . $lang->translateZendId($messageId) . '</li>';
}
$html .= '<ul>';
return $html;
}
/**
* Build the description.
*
* @return string
*/
public function buildDescription()
{
$element = $this->getElement();
$desc = $element->getDescription();
return $desc;
}
/**
* Clean up attributes we don't want to appear in Html code.
*
* @return array Array with allowed attributes
*/
private function _getCleanAttribs()
{
$attribsToRemove = array(
'noColon', 'helper', 'secondLabel' , 'rowclass'
);
$attribsOfElement = $this->getElement()->getAttribs();
foreach ($attribsToRemove as $attrib) {
if (isset($attribsOfElement[$attrib])) {
unset($attribsOfElement[$attrib]);
}
}
return $attribsOfElement;
}
}