Add some html to Zend Forms
Solution 1:
The only way I can think of at the moment is to add a dummy element to the form and remove all decorators except an 'HtmlTag' with the attributes you specified in your question. Removing the decorators means that the actual element will not be rendered - only the HtmlTag decorator will be rendered.
so assuming your form is $form:
$form->addElement(
'hidden',
'dummy',
array(
'required' => false,
'ignore' => true,
'autoInsertNotEmptyValidator' => false,
'decorators' => array(
array(
'HtmlTag', array(
'tag' => 'div',
'id' => 'wmd-button-bar',
'class' => 'wmd-panel'
)
)
)
)
);
$form->dummy->clearValidators();
Note that you want to prevent any validation of the element. This is only one way - there are likely others.
Output:
<div id="wmd-button-bar" class="wmd-panel"></div>
There is a good article describing decorators.
Solution 2:
You can create your own view helper libraray--App>View>Helper>PlainTextElemet.php
Create a folder in your library folder that name is App so a folder that name is View so in View create Helper Folder so in Helper folder create a class with PlainTextElement name same following
class App_View_Helper_PlainTextElement extends Zend_View_Helper_FormElement {
public function PlainTextElement($name, $value = null, $attribs = null) {
$info = $this->_getInfo($name, $value, $attribs);
extract($info); // name, value, attribs, options, listsep, disable
if (null === $value) {$value = $name;}
return $value;
}
}
Then in libray same above create a class App>Form>Element>PlainText.php
And put folowing code in this class
class App_Form_Element_PlainText extends Zend_Form_Element_Xhtml {
public $helper='PlainTextElement';
public function isValid($value){
return true;
}
}
Now in your form you can create each html code you like:
$someValue = '<div id="wmd-button-bar" class="wmd-panel"></div>';
$this->addElement(new App_Form_Element_PlainText('pliantext1', array(
'value'=>$someValue,
)));
Don't forget in your application.ini add fllowing lines too:
autoloaderNamespaces.app = "App_"
resources.view.helperPath.App_View_Helper="App/View/Helper"