Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 30-01-2009 15:41:39

jahora
Nouveau membre
Date d'inscription: 09-10-2008
Messages: 7

[RESOLU]zend_form dans layout

Bonjour,
J’utilise un formulaire générer via zend_form dans mon layout. J’aimerais savoir ou place ce code pour pouvoir l’afficher sur toute les pages sans devoir l’écrire dans toutes les actions.

Quelqu’un peu me dépanner ?
merci

Dernière modification par jahora (31-01-2009 03:51:02)

Hors ligne

 

#2 30-01-2009 16:24:13

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [RESOLU]zend_form dans layout

Bonjour,

Je dirais un controller d'actions communs à tous les autres.

Dans la fonction init() du controller l'initialisation du formulaire.

Dans la fonction postDispatch(), le passage à la vue du formulaire.

Code:

Zend_Loader::loadClass('Tight_Controller_Action');
/**
 * YSENA
 * 
 * Application_Controllers_Action
 * A le rôle de Controlleur global et commun à l'ensemble de l'application.
 * 
 * Il regroupe donc tout ce qui doit être commun entre tous les controlleurs
 * qui vont en hériter.
 *
 * ex.:
 *    - Chargements de modèles communs
 *    - Envoie d'un menu à la vue
 *    - Envoie d'un pied de page à la vue
 *    - Envoie des mentions légales
 *    - etc.
 * 
 * (ex. : ContactController extends Application_Controllers_Action)
 *  
 * 
 * @author Benjamin Dulau
 */
class Application_Controllers_Action extends Tight_Controller_Action
{
    
    /**
     * @method init()
     * 
     * Initialise le super controlleur,
     * donc toute l'initialisation commune à tous les controlleurs
     * descendants.
     */
    public function init()
    {
        parent::init();
        $this->initView();
        $this->view->baseUrl = $this->_request->getBaseUrl();

        // Traducteur
        $this->translate = Tight_Registry::get('translate');

        /*
         * Formulaire : ATTENTION AU HASARD, je ne connais pas Zend_Form
         */
         Zend_Loader::loadClass('forms_SearchForm');
         $this->form = new forms_SearchForm();
         // etc.         
    }

    function postDispatch() {        
        parent::postDispatch();
        // Passage du formulaire à la vue
        $this->view->form = $this->form->renderForm(); // AU HASARD AUSSI
    }
}

Donc chaque controlleur concerné étend notre Application_Controllers_Action

Code:

require_once 'Action.php';
/**
 * IndexController
 * 
 * @author Dulau Benjamin
 * @version 0.0.1
 */
class IndexController extends Application_Controllers_Action 
{

}

Ensuite dans le layout, je ferai quelquechose du genre :

Code:

<?php echo $this->render('fm-truc.phtml'); ?>

Et quelque part dans la vue fm-truc.phtml:

Code:

<?php echo $this->form; ?>

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 31-01-2009 03:50:28

jahora
Nouveau membre
Date d'inscription: 09-10-2008
Messages: 7

Re: [RESOLU]zend_form dans layout

Merci beaucoup de ton aide, ça fonctionne parfaitement!

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages