| ||
auteur : Guillaume Rossolini | ||
Il faut appeler la méthode setEscape() de la Vue, dans la
méthode init() du contrôleur :
|
| ||
auteur : Guillaume Rossolini | ||
Oui, il est possible d'utiliser un moteur de gabarits (template engine) avec Zend_View. La Vue (du point de vue du Zend Framework) est donc un script en PHP pur, qui utilise un gabarit en HTML pur (selon la syntaxe du moteur choisi).
|
| ||
auteur : Guillaume Rossolini | ||
N'importe quel moteur de gabarits peut convenir. C'est à vous de choisir celui qui vous convient le mieux.
| ||
lien : Comparatif : Les principaux moteurs de template en PHP, par Guillaume Rossolini |
| ||||||
auteurs : Rob Allen, vg33 | ||||||
Si votre site a un header (doctype, css, menu...) et un footer (menu de bas de page, infos...) commun à toutes les pages, une façon simple de l'implémenter est d'intégrer le code suivant à chaque script de vue :
Mais ce n'est pas du tout DRY (Don't Repeat Yourself, ne vous répétez pas). Nous vous proposons donc d'utiliser un template principal qui affiche en bonne place le contenu du script d'action appelé.
Notre but est non pas de faire un render() de l'header et du footer dans chaque script de vue, mais plutôt d'utiliser un template principal qui affiche le contenu du script d'action appelé.
Le Zend_Controller_Action_Helper_ViewRenderer est un code qui automatise le render d'un template fondé sur l'action appelée. Il est très utile, mais il fait un render du template d'action, pas du template principal. Il s'agit donc d'étendre le Zend_Controller_Action_Helper_ViewRenderer pour qu'il intègre notre template principal. On en profitera pour modifier automatiquement le suffixe par défaut des scripts de vue (.phtml) en .tpl.php.
Le template principal du site s'appelle site.tpl.php et se situe dans views/scripts. Il pourrait ressembler à ceci :
$this->actionScript est le script associé à l'action courante qui est automatiquement déterminée par Zend_Controller_Action_Helper_ViewRenderer. Par exemple, pour l'action index du contrôleur index, le script d'action est views/scripts/index/index.tpl.php.
Nous devons étendre le Zend_Controller_Action_Helper_ViewRenderer :
Tout ce qu'il nous reste à faire est de modifier notre bootstrap (fichier d'amorce) pour que notre nouveau ViewRenderer soit utilisé à la place de celui par défaut. On ajoute donc les lignes suivantes dans index.php avant la première instanciation du FrontController :
C'est tout ! Notre script d'action contient juste le code HTML spécifique à l'action, et notre template principal est rendu automatiquement avec le code HTML de l'action au bon emplacement !
|
Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.