Я создаю форму с классом, расширяющим Zend_Form.Как я могу добавить тег img внутри формы? Мне также нужно добавить к нему класс и выровнять атрибут
Это конечный результат, которого я хочу достичь:
<span class="myElement"><img src="myPath" align="middle" class="myClass"/> <input type="text"></span>
Я не нашел много информации о документации Zend_Form_Element_Image
благодаря
Лука
В библиотеке / Приложение / Форма / Элемент / Img.php
class Application_Form_Element_Img extends Zend_Form_Element_Xhtml { public $helper = 'formImg'; public function loadDefaultDecorators () { parent::loadDefaultDecorators (); $this->removeDecorator ('Label'); $this->removeDecorator ('HtmlTag'); $this->addDecorator('HtmlTag', array ( 'tag' => 'span', 'class' => 'myElement', )); } }
В приложении / view / helpers / FormImg.php
class Zend_View_Helper_FormImg extends Zend_View_Helper_FormElement { public function formImg ($name, $value, $attribs = null) { $info = $this->_getInfo($name, $value, $attribs); $xHtml = '<img' . $this->_htmlAttribs ($attribs) . ' />'; return $xHtml; } }
В вашей форме:
$this->addElement ('img', 'myimage', array ( 'src' => '/images/download.png', 'align' => 'right', ));
Примечание. Пути могут быть изменены в вашем конкретном приложении.
На самом деле, для этого вам не нужен специальный элемент. Вы можете использовать декоратор HtmlTag и использовать опцию openOnly.
$form = new Zend_Form(); $form->addElement("text", "foo", array("decorators" => array( array(array("img" => "HtmlTag"), array( "tag" => "img", "openOnly" => true, "src" => "myPath", "align" => "middle", "class" => "myClass" )), array("ViewHelper"), array(array("span" => "HtmlTag"), array( "tag" => "span", "class" => "myElement" )) ))); echo $form->foo;
Привет, вы можете создать пользовательский элемент под названием "html"
class Zend_Form_Element_Html extends Zend_Form_Element_Xhtml { public $helper = 'formHtml'; }
Теперь вы можете назвать это:
$yourForm->addElement( 'html', 'myElementId', array( 'value'=>'<span class="myElement"><img src="myPath" align="middle" class="myClass"/> <input type="text"></span>'))
Для получения дополнительной информации вы можете проверить эту ссылку:
Zend Framework: вставьте DIV и изображение в мою форму