blackeagle67
Gebruiker
- Lid geworden
- 13 okt 2009
- Berichten
- 158
Beste mensen,
Ik ben op zoek naar een stuk code waarbij een custom decorator word gebruikt om extra elementen te wrappen om een input element.
Ik kan dit handmatig doen maar het zou vele makkelijker wezen als dit in een custom decorator kan komen.
De code om dit handmatig te doen is:
Ik ben het momenteel op verschillende manieren aan het proberen en dit is dan wat ik momenteel probeer maar dit werkt dus niet
Ik ben op zoek naar een stuk code waarbij een custom decorator word gebruikt om extra elementen te wrappen om een input element.
Ik kan dit handmatig doen maar het zou vele makkelijker wezen als dit in een custom decorator kan komen.
De code om dit handmatig te doen is:
PHP:
$title->setDecorators(array(
'ViewHelper',
'Description',
'Errors',
array(array('top-left' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-corner-top-left')),
array(array('top-right' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-corner-top-right')),
array(array('top-center' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-top-center')),
array(array('bottom-left' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-corner-bottom-left')),
array(array('bottom-right' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-corner-bottom-right')),
array(array('bottom-center' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-bottom-center')),
array(array('left' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-left')),
array(array('right' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-right')),
array(array('dd' => 'HtmlTag'), array('tag' => 'dd', 'id' => $title->getLabel().'-element')),
array('Label', array('tag' => 'dt')),
));
Ik ben het momenteel op verschillende manieren aan het proberen en dit is dan wat ik momenteel probeer maar dit werkt dus niet

PHP:
class Form_Decorator_Borders extends Zend_Form_Decorator_Abstract
{
public function render($content)
{
$element = $this->getElement(); // get form
$elements = $element->getElements(); // get form elements
$placement = $this->getPlacement();
$name = htmlentities($element->getFullyQualifiedName());
$id = htmlentities($element->getId());
foreach ($elements as $k => $v) {
if (is_object($v) && get_class($v) == "Zend_Form_Element_Text") {
$helper = $elements[$k]->helper;
$elements[$k]->setDecorators(array(
'ViewHelper',
'Description',
'Errors',
array(array('top-left' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-corner-top-left')),
array(array('top-right' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-corner-top-right')),
array(array('top-center' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-top-center')),
array(array('bottom-left' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-corner-bottom-left')),
array(array('bottom-right' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-corner-bottom-right')),
array(array('bottom-center' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-bottom-center')),
array(array('left' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-left')),
array(array('right' => 'HtmlTag'), array('tag' => 'div', 'class' => 'content-border-right')),
array(array('dd' => 'HtmlTag'), array('tag' => 'dd', 'id' => $elements[$k]->getLabel().'-element')),
array('Label', array('tag' => 'dt')),
));
}
}
$element->setElements($elements);
$this->setElement($element);
$output = "";
$this->setElement($element);
switch($placement)
{
case "PREPEND":
return $output . $this->getElement()->getView()->render($name);
case "APPEND":
default:
return $content;
}
}
}