Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
Après avoir parcouru de long en large le forum, il semblerait que la réponse à ma question ne s'y trouve pas, je me permet donc de vous la poser.
C'est une question que j'ai déjà relancé sur un forum anglo-saxon et qui n'a pas trouvé de réponse non plus :
http://www.zfforums.com/zend-framework- … -2120.html
Donc voilà, pour la mise en forme de mes formulaires implémentés via Zend_Form, j'utilise un "template" ViewScript qui me permet une mise en forme plus libre qu'avec les décorateurs, tout serait parfait si ce n'est ce petit bémol : Je n'arrive pas à accéder à certaines variables assignées à ma vue dans mon controleur, je m'explique :
Mon application est localisée et je peux parfaitement traduire mes libellés depuis le "viewscript" en appelant la méthode de traduction de la vue :
$this->_('effective_dates');
fonctionne très bien dans :
<fieldset> <legend><?php echo $this->_('effective_dates'); ?></legend> <div id="date"> <?php echo $this->element->Effective_From; ?> <?php echo $this->element->Ui_Effective_From; ?> <?php echo $this->element->Effective_To; ?> <?php echo $this->element->Ui_Effective_To; ?> </div> </fieldset>
Par contre, une autre variable que j'aurai instanciée dans mon contrôleur :
$this->view->edit = ( $this->registry->get('action') == 'edit' ? TRUE : FALSE );
est inaccessible mon "viewscript" mais accessible dans ma vue :
Zend_Debug::dump($this->edit);
me renvoie systématiquement "NULL"
C'est très pénible car c'est pour moi indispensable d'avoir accès à ces valeurs depuis mon "template".
Auriez vous une idée de comment réaliser ceci ?
Ou bien est-ce tout bonnement impossible ?
Merci d'avance à tous de vous préoccuper de ce souci
Dernière modification par renaud (05-02-2009 09:29:22)
Hors ligne
J'ai un début de réponse à mon problème en me re-re-re-penchant sur le manuel.
Il est dit :
The ViewScript decorator requires a 'viewScript' option, either provided to the decorator, or as an attribute of the element. It then renders that view script as a partial script, meaning each call to it has its own variable scope; no variables from the view will be injected other than the element itself.
Donc ça ne semble pas possible de le faire directement... :'(
Cela ne m'explique pas non plus pourquoi j'arrive quand même à appeler ma méthode de traduction.
Auriez-vous donc des pistes sur lesquelles m'orienter pour arriver à mes fins ?
Dernière modification par renaud (05-02-2009 10:31:40)
Hors ligne
j'avais rencontré le même problème : je voulais utiliser ma variable $this->view->baseUrl dans un partial loop.
finalement je n'avais pas utilisé le script.
Dernière modification par nick (05-02-2009 12:47:35)
Hors ligne
Pages: 1