Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-03-2009 11:10:29

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

[1.6][Zend_View] Priorité vues addScriptPath

Bonjour,

J'ai un petit soucis avec Zend_View.

Qu'est-ce qui d'après vous dans le code suivant fait que le dossier passé par addScriptPath() n'a pas la priorité ?

Initialisation:

Code:

Zend_Loader::loadClass('Tight_View');                
$this->_view = new Tight_View();

$this->_view->addScriptPath($this->_moduleRoot . '/Views/scripts');

.....

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->initView();
$viewRenderer->setView($this->_view);

Et dans un plugin :

Code:

viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$view = Zend_Layout::getMvcInstance()->getView();
$view->setTranslator($translate);
$viewRenderer->setView($view);

En fait si je trace les dossiers de vues paramétrés, il me place le dossier de vue par défaut de l'appli (et ce n'est même pas moi qui lui configure) en premier. Alors que ce devrait être celui que je lui donne dans le addScriptPath().

Sachant que je ne fais aucun autre addScriptPath() dans l'appli.

Du coup ce n'est pas la vue que je voudrais qui est rendue.

Une idée ?

Merci,

A+ benjamin.

Dernière modification par Delprog (02-03-2009 14:10:22)


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

Hors ligne

 

#2 06-03-2009 16:01:29

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

Re: [1.6][Zend_View] Priorité vues addScriptPath

Le problème est ailleurs alors ? smile


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

Hors ligne

 

#3 29-04-2009 14:49:42

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

Re: [1.6][Zend_View] Priorité vues addScriptPath

Bonjour,

Je fais remonter ce message. Je me penche de nouveau sur le problème, et pour l'instant je ne sais pas comment le résoudre. Je n'arrive donc pas à utiliser des vues de substitutions. Le pire c'est que je l'ai déjà fait de la même manière, et là je ne comprend ce qu'il se passe smile

Quand je trace le contenu du tableau des paths  de scripts de vues à l'aide d'un "getScriptPaths()" juste après mes addScriptPath(), j'ai:

Code:

Array ( [0] => D:\website\www\tpl_pagesimmo\modules\etoile-dauphine\Views\scripts\ [1] => D:\website\www\tpl_pagesimmo\application\illid\Views\scripts\ )

Et c'est bien ce que j'ai demandé. L'existence des vues de mon module sera testée d'abord, sinon sera utilisée la vue par défaut de l'application.

Si je trace dans la méthode init() de mon controlleur j'ai:

Code:

Array ( [0] => D:\website\www\tpl_pagesimmo\application\illid\views\scripts\ [1] => .\views\scripts\ [2] => D:\website\www\tpl_pagesimmo\modules\etoile-dauphine\Views\scripts\ [3] => D:\website\www\tpl_pagesimmo\application\illid\Views\scripts\ )

Ca a donc changé entre temps.
J'ai fait une recherche dans le projet, je ne fais aucun autre addScriptPath(), je ne sais pas à quel moment les valeurs de ce tableau changent....


C'est embêtant parce que je ne peux pas utiliser une vue optionnelle dans mes modules, elle ne sera pas pris en compte, puisque le dossier views/scripts de l'application sera parcouru en premier.


Une idée ?

Merci,

A+ benjamin.


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

Hors ligne

 

#4 29-04-2009 15:48:44

baboune
Membre
Date d'inscription: 29-11-2008
Messages: 103

Re: [1.6][Zend_View] Priorité vues addScriptPath

il faut plutot utiliser :

Code:

$this->_view->setScriptPath($this->_moduleRoot . '/Views/scripts');

Hors ligne

 

#5 29-04-2009 16:10:31

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

Re: [1.6][Zend_View] Priorité vues addScriptPath

Oui c'est ce que j'utilisais au départ.

Ceci ne change pas le problème.

D'après la doc:

En fait, vous pouvez "empiler" les chemins en utilisant la méthode setScriptPath(). Comme vous ajoutez des chemins dans la pile, Zend_View va rechercher le script de vue dans le chemin le plus récemment ajouté. Cela vous permet de passer outre les vues par défaut, pour des vues personnalisées. Ainsi vous pouvez créer des "thèmes" ou des "skins" pour certaines vues, pendant que vous laissez les autres intactes.

Code:

$view = new Zend_View();
$view->addScriptPath('/chemin/des/vues');
$view->addScriptPath('/chemin/des/vues-personnalisees');

Je pense que mon problème vient d'ailleurs, mais je ne sais pas où je pourrais intervenir sur cette configuration ailleurs. Je ne sais pas pourquoi le résultat de getScriptPaths() change...


Et de mon côté j'ai:

Code:

$this->_view = new Tight_View();

// vues par défaut du template
$this->_view->addScriptPath($this->_appRoot . '/application/' . $this->_template . '/Views/scripts');
// vues personnalisées
$this->_view->addScriptPath($this->_moduleRoot . '/Views/scripts');

et un peu plus bas:

Code:

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->initView();
$viewRenderer->setView($this->_view);

Merci.

A+ benjamin.


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

Hors ligne

 

#6 29-04-2009 16:22:50

baboune
Membre
Date d'inscription: 29-11-2008
Messages: 103

Re: [1.6][Zend_View] Priorité vues addScriptPath

je sais pas si ca peut t'aider, mais initview() est déclarer comme ça :

public function initView($path = null, $prefix = null, array $options = array()) { ... }

le premier param peut être un path de vue, et $option =

     * - neverRender - flag dis/enabling postDispatch() autorender (affects all subsequent calls)
     * - noController - flag indicating whether or not to look for view scripts in subdirectories named after the controller
     * - noRender - flag indicating whether or not to autorender postDispatch()
     * - responseSegment - which named response segment to render a view script to
     * - scriptAction - what action script to render
     * - viewBasePathSpec - specification to use for determining view base path
     * - viewScriptPathSpec - specification to use for determining view script paths
     * - viewScriptPathNoControllerSpec - specification to use for determining view script paths when noController flag is set
     * - viewSuffix - what view script filename suffix to use

Dernière modification par baboune (29-04-2009 16:23:42)

Hors ligne

 

#7 29-04-2009 21:33:10

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [1.6][Zend_View] Priorité vues addScriptPath

il faut savoir que le tableau des chemins est retourné.
Et ceci est logique, lorsqu'on rajouter un chemin personnalisé, c'est souvent pour qu'il soit prioritaire. Mais, lorsqu'on le rajouter, le service à déjà insérer ses chemins, donc, il renverse le tableau pour que celui qu'on a ajouté dans la file soit en premier


----
Gruiiik !

Hors ligne

 

#8 02-05-2009 10:27:20

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

Re: [1.6][Zend_View] Priorité vues addScriptPath

Bonjour,

En fait, je comprend très bien le fonctionnement des script paths, c'est surement une connerie de ma part.

Quand j'ajoute mes chemins, il les place bien en début de tableau, et c'est bien ce que je veux.

Mon problème est que le contenu du tableau change. Si je vérifie dans mon controlleur, il a changé, des entrées se sont ajoutées.

Le pire c'est que j'ai déjà fait fonctionner ça, c'est surement une inattention quelque part, mais là, avec la tête dans le guidon je n'y vois rien smile


Je me demande ce que j'aurais bien pu faire pour que ces valeurs changent et donc ce qui, autre que les addScriptPath(), peut intervenir là dessus...


Merci,


A+ benjamin.


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

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