Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-04-2008 09:55:58

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

boucle sur le 'content layout' avec l'aide de vue action

Dans mon layout, je fait ceci :

Code:

<?php echo $this->action('menu','index', 'nav'); ?>

Mais, j'ai un probleme.
Lorsque j'ouvre l'action user/index (ou n'importe quelle autre action)
L'action nav/index/menu me regénère la vue de user/index une deuxième fois ! Elle ne devrait que générer mon menu...

Ou est l'erreur ?

Merci


----
Gruiiik !

Hors ligne

 

#2 22-04-2008 10:05:10

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

Re: boucle sur le 'content layout' avec l'aide de vue action

En fait, j'ai trouvé le pourquoi (mais pas comment le résoudre)

nav/index/menu fait le rendu de la vue de l'action appelé (donc user/index)
pourquoi ? viewrender par défaut sélectionne la vue de l'action, et non pas la vue de la requete ...


----
Gruiiik !

Hors ligne

 

#3 22-04-2008 10:35:24

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: boucle sur le 'content layout' avec l'aide de vue action

En effet c'est le comportemetn par defaut.

Je suppose que nav est un module, index le controller et menu l'action?
Envoye ton code à la limite on y vera peut être plus clair.

Hors ligne

 

#4 22-04-2008 10:40:46

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

Re: boucle sur le 'content layout' avec l'aide de vue action

oui, c'est une hiérarchie modulaire
mon layout

Code:

<?php $this->headLink()->prependStylesheet('/style/default.css') ?>

<?php echo $this->doctype('XHTML1_STRICT') ?>

<html>
<head>

<?php echo $this->headTitle() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headScript() ?>
<?php echo $this->headStyle() ?>

</head>

<body id="<?php echo $this->moduleName; ?>">


  <?php echo $this->partial('header.phtml') ?>

  <?php echo $this->action('menu','index', 'nav'); ?>

  <div id="containerCols">
      <div id="left">

      <?php //echo $this->action('status','index', 'nav'); ?>

      <?php //echo $this->action('sidebar','index', 'nav'); ?>
      
      </div>
    <div id="content">
    <?php echo $this->layout()->content; ?>
    </div>

  <div class="clear">&nbsp;</div>
  </div>
</div>

<?php echo $this->partial('footer.phtml') ?>

</body>
</html>

mon nav/index/menu

Code:

    public function menuAction()
    {
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity())
        {
            $user = $auth->getIdentity();
            $menu = array();
            $acl =  $this->_acl;
            if ($acl->isAllowed($user->gacl, 'domain')) {
                $menu['Domaine'] = 'domain';
            }
            if ($acl->isAllowed($user->gacl, 'user')) {
                $menu['Utilisateurs'] = 'user';
            }
            if ($acl->isAllowed($user->gacl, 'hotspot')) {
                $menu['Hotspots'] = 'hotspot';
            }
            if ($acl->isAllowed($user->gacl, 'group')) {
                $menu['Groupes'] = 'group';
            }
            $this->view->menu = $menu;
            
        }
        else {
             $this->_helper->viewRenderer->setNoRender();
        }
    }

----
Gruiiik !

Hors ligne

 

#5 22-04-2008 10:49:36

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: boucle sur le 'content layout' avec l'aide de vue action

c'est vrai que comme ça là... C'est dure de voir ce qui cloche...
T'as essayé de debugger avec un debuggeur (xdebug par exemple)?

Hors ligne

 

#6 22-04-2008 10:55:39

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

Re: boucle sur le 'content layout' avec l'aide de vue action

mais,  je fais quoi avec xdebug exactement ? je l'ai et il il est chargé dans mon php.ini


----
Gruiiik !

Hors ligne

 

#7 22-04-2008 10:59:56

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

Re: boucle sur le 'content layout' avec l'aide de vue action

j'ai rajouté cela dans mon action :
return ($this->view->render('index/menu.phtml'));

Mais, ca ne change rien
par contre, si je debug comme ca :
var_dump ($this->view->render('index/menu.phtml')); die();

Je constate bien que la vue rendue de mon menu est correcte !
Je n'y comprends plus rien

Ca doit venir du viewrenderer...

Dernière modification par nORKy (22-04-2008 11:00:55)


----
Gruiiik !

Hors ligne

 

#8 22-04-2008 11:01:30

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: boucle sur le 'content layout' avec l'aide de vue action

ça devrait t'aider: http://www.z-f.fr/forum/viewtopic.php?pid=2894#p2894
En fait le principe c'est de débugger ton url courante pour avancé au pas à pas dans le code. Tu peux voir l'état des variables à chaque ligne et ainsi trouver beaucoup plus facilement ce qui plante wink

Hors ligne

 

#9 22-04-2008 11:02:46

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: boucle sur le 'content layout' avec l'aide de vue action

met plutot ça

Code:

echo $this->view->render('index/menu.phtml');
return;

Mais je sui curieux de savoir pourquoi par defaut le comportement est si étrange...

Hors ligne

 

#10 22-04-2008 11:05:30

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

Re: boucle sur le 'content layout' avec l'aide de vue action

j'ai mis ca dans mon action menu : $this->_helper->viewRenderer('menu');
et la, ca marche, (il trouve quand même le bon chemin, à savoir nav/views/script/index/menu.phtml)

bizarre


----
Gruiiik !

Hors ligne

 

#11 22-04-2008 11:24:52

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

Re: boucle sur le 'content layout' avec l'aide de vue action

Raté, finallement, ca marche pas. C'est un hasard.
Dès que je vais dans le controlleur account du module user, il cherche mon menu.phtml dans nav/views/script/account/menu.phtml

donc, ca ne va pas


----
Gruiiik !

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