Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-01-2011 14:01:36

Jayjay
Nouveau membre
Date d'inscription: 09-12-2010
Messages: 6

problème de conflits de vues entre modules

Tout dabord bonjour à tous, je ne pense pas avoir déjà posté sur ce forum.
J'y trouve souvent de bonnes explications dans les posts existants.

Cependant je me lance actuellement dans les systèmes de modules sur un développement précédent. Après avoir suivi quelques tutos, j'ai mes layouts dans mes 2 modules : "default" et "admin". Jusqu'ici tout va bien.

Par contre dans mon layout admin, j'ai ceci :

Code:

<?php echo $this->render('common/colonne.phtml'); ?>

Le fichier est systématiquement recherché dans le module par défaut. J'imagine que je dois configurer le chemin approprié mais j'avoue ne pas savoir comment faire.
Ce que je ne comprend pas, c'est que mes vues sont appelées correctement depuis mes controllers.

Pourriez-vous me donner une piste ?
D'avance merci

Hors ligne

 

#2 08-01-2011 20:00:41

Jayjay
Nouveau membre
Date d'inscription: 09-12-2010
Messages: 6

Re: problème de conflits de vues entre modules

Bon petite précision après quelques tests :
j'essaie d'appeler mon fichier "colonne.phtml" qui se trouve dans mon module "admin". Il se trouve que le module "default" contient un fichier du même nom et c'est ce fichier qui est appelé prioritairement.

Est-il donc possible d'indiquer à la vue l'une des deux solutions suivantes :
- rechercher prioritairement dans le module appelé.
- supprimer purement et simplement la recherche dans le module "default" lorsqu'on se trouve dans un autre module.

Si cela est possible, pourriez vous m'indiquer la méthode à utiliser ?

D'avance merci

Hors ligne

 

#3 08-01-2011 20:11:07

Jayjay
Nouveau membre
Date d'inscription: 09-12-2010
Messages: 6

Re: problème de conflits de vues entre modules

Bon mon problème est résolu après quelques prises de tête.
Dans mon fichier application.ini, j'avais la config suivante :

Code:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
default.resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/modules/default/views/scripts/"
admin.resources.layout.layout = "adminlayout"
admin.resources.layout.layoutPath = APPLICATION_PATH "/modules/admin/views/scripts/"

Le chemin indiqué à la ligne 4 était donc configuré pour tous les modules. J'ai donc modifié cette ligne par :

Code:

default.resources.layout.layoutPath = APPLICATION_PATH "/modules/default/views/scripts/"

Hors ligne

 

#4 08-01-2011 20:47:49

Jayjay
Nouveau membre
Date d'inscription: 09-12-2010
Messages: 6

Re: problème de conflits de vues entre modules

Bon, avec cette solution, je retrouve ma vue "colonne.phtml" du module admin affiché lorsque j'appelle mon module "default".....

Pour info, j'utilise le plugin suivant pour charger le layout approprié pour chaque module :

Code:

class My_LayoutLoader extends Zend_Controller_Action_Helper_Abstract
{

    public function preDispatch()
    {
        $bootstrap = $this->getActionController()
                         ->getInvokeArg('bootstrap');
        $config = $bootstrap->getOptions();
        $module = $this->getRequest()->getModuleName();
        
        if (isset($config[$module]['resources']['layout']['layout'])) {
            $layoutScript = $config[$module]['resources']['layout']['layout'];
            $this->getActionController()
                 ->getHelper('layout')
                 ->setLayout($layoutScript);
        }
    }
    
}

Quelqu'un aurait-il une piste ?

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