Как добавить форму в мой layout.phtml?
Я хотел бы иметь форму поиска и форму для входа, которая сохраняется через каждую форму на моем сайте.
У меня есть сообщение в блоге, объясняющее это: http://blog.zero7ict.com/2009/11/how-to-create-reusable-form-zend-framework-zend_form-validation-filters/
В папке «Приложение» создайте папку «Формы»
Это пример формы:
<?php class Form_CreateEmail extends Zend_Form { public function __construct($options = null) { parent::__construct($options); $this->setName('createemail'); $title = new Zend_Form_Element_Text('title'); $title->setLabel('Subject') ->setRequired(true) ->addFilter('StripTags') ->addFilter('StringTrim') ->addValidator('NotEmpty'); $info = new Zend_Form_Element_Textarea('info'); $info->setLabel('Email Content') ->setAttribs(array('rows' => 12, 'cols' => 79)); $submit = new Zend_Form_Element_Submit('submit'); $submit->setAttrib('id', 'submitbutton'); $this->addElements(array($title, $info, $submit)); } } ?>
Затем вы можете вызвать его из своего контроллера следующим образом:
$form = new Form_CreateEmail(); $form->submit->setLabel('Add'); $this->view->form = $form;
И отобразите его с вашего просмотра, используя
echo $this->form;
Надеюсь это поможет.
Изменить: если вы хотите, чтобы это было включено на каждую страницу, вы могли бы создать новый вспомогательный файл
в папке views создайте папку помощников и создайте файл loginHelper.php
class Zend_View_Helper_LoginHelper { function loginHelper() { $form = new Form_CreateEmail(); $form->submit->setLabel('Add'); return = $form; } }
Это может быть выведено из вашего макета, используя:
<?php echo $this->LoginHelper(); ?>
В макете просто выполните:
$form = new Loginform(); echo $form->render();
Вам просто нужно убедиться, что вы указываете Controller / Action для формы POST, так что это не POST для любого контроллера, в котором вы сейчас находитесь, который является поведением по умолчанию.