IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Problème Zend_Layout Double Affichage


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Par défaut Problème Zend_Layout Double Affichage
    Salut !

    Je bricole avec Zend et j'essaye d'utiliser correctement le Zend_Layout pour afficher mes pages.

    Le voici (j'ai défini un actionstack dans mon bootstrap):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <body>
    <?php echo $this->action('header', 'index');?> 
     
    <div id="content" class="content">
    	<?php echo $this->layout()->content; ?>
    </div>
     
     <?php echo $this->action('footer', 'index');?> 
     
    </body>
    Malheureusement l'appel du content me réappelle les actions header et footer ce qui a pour effet de les réafficher dans le contenu de ma page.

    Selon la doc' il faut jouer avec cette action pour éviter les doublons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $this->_helper->viewRenderer->setNoRender(true);
    Malheureusement lorsque je la place dans l'init de mon controlleur, seul le corps de ma page est affiché sans aucun header ni footer.

  2. #2
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    euh, j'ai pas tout compris, mais je vais essayer de t'aider.

    Pour le Zend_Layout:
    tu a un fichier layout.phtml comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <html><head></head> 
    <body>
    <?php echo $this->action('header', 'index');?> 
    <div id="content" class="content">
    <?php echo $this->layout()->content; ?>
    </div>
    <?php echo $this->action('footer', 'index');?> 
    </body>
    </html>
    ensuite pour les vue de tes actions tu fait comme d'ab.
    Pourquoi as tu défini un actionstack, il me semble que tu n'en as pas besoin

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 96
    Par défaut
    J'ai défini un action stack car mes header et footer sont dans :
    application/default/view/script/index
    et quand j'appelle un autre module par exemple administration,
    mon controlleur et mes vues sont dans:
    application/administration/controllers
    et application/administration/views

    C'est le seul moyen que j'ai trouvé pour appeler mes header et footer dans mon module administration sans recopier les vues dans application/administration/views.

    après dans l'init du controlleur administration j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     function init()
        {
            $response = $this->getResponse();
    	 $this->_helper->actionStack('header', 'index', array(
          'mod'  => $this->_request->getModuleName(),
          'ctrl' => $this->_request->getControllerName(),
          'act'  => $this->_request->getActionName(),
        ));
     
     
        }
    EDIT : Mais tu as raisons ils sont surement de trop, ça marche aussi en les enlevant !

  4. #4
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    l'aide de vue action prend plus de 2 paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action($action, $controller, $module = null, array $params = array())
    donc tu doit juste avoir a appeler action en renseignant le nom du module

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/11/2012, 15h50
  2. Réponses: 0
    Dernier message: 24/01/2012, 10h29
  3. Problème du double affichage avec excel
    Par Roddy8 dans le forum Excel
    Réponses: 2
    Dernier message: 06/03/2009, 15h09
  4. Réponses: 3
    Dernier message: 02/03/2008, 10h45
  5. Problème a l'affichage dans la console (printf)
    Par PhoneKilleR dans le forum C
    Réponses: 21
    Dernier message: 23/09/2003, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo