Comment puis-je ajouter un formulaire à mon layout.phtml? Je voudrais être en mesure d'avoir un formulaire de recherche et un formulaire de connexion qui persiste dans tous les formulaires de mon site.Site wide Zend_Form
Répondre
J'ai un billet de blog expliquant ceci: http://blog.zero7ict.com/2009/11/how-to-create-reusable-form-zend-framework-zend_form-validation-filters/
Dans votre dossier Application créer un dossier Forms
Ceci est un exemple de formulaire:
<?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));
}
}
?>
Vous pouvez ensuite appeler à partir de votre contrôleur comme ceci:
$form = new Form_CreateEmail();
$form->submit->setLabel('Add');
$this->view->form = $form;
Et l'afficher fro m vous voir en utilisant
echo $this->form;
Hope this helps.
Edit: si vous voulez que cela soit inclus sur everypage vous pouvez créer un nouveau fichier d'aide
dans vos vues dossier créer un dossier helpers et créer un fichier loginHelper.php
class Zend_View_Helper_LoginHelper
{
function loginHelper()
{
$form = new Form_CreateEmail();
$form->submit->setLabel('Add');
return = $form;
}
}
Cela pourrait être sorti de votre mise en page en utilisant:
<?php echo $this->LoginHelper(); ?>
Dans votre mise en page il suffit de faire:
$form = new Loginform();
echo $form->render();
Il vous suffit de vous assurer que vous spécifiez un contrôleur/action pour le formulaire POST, donc c'est ne pas POST à tout ce contrôleur que vous êtes actuellement sur , qui est le comportement par défaut.
ma réponse a-t-elle aidé? – Andrew