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

MVC PHP Discussion :

ActionStack & Layout [ZF 1.8]


Sujet :

MVC PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Par défaut ActionStack & Layout
    Bonjour,

    Aujourd'hui je me pose la question du stack des actions.

    En prenant un exemple, vous comprendrez la problématique :

    Une page d'accueil qui comprend : un bloc "news", un bloc "dernier ajouts".
    Dans cet exemple simple, on voit tout de suite l'utilité de l'ActionStack.

    Cependant, je me pose la question suivante :

    Comment les vues sont gérées ?

    L'action A et la B, ont chacun une vue. Si j'appel l'action A et que je stack l'action B, la vue générée c'est quoi ?

    Je suppose que Zend offre plusieurs issues, mais je voudrais que mon layout reste simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $this->layout()->content;
    Voilà pour le contenu, rien d'autre. Pour la page d'index qui a un actionStack, comment faire ?

    Une vue : index.phtml qui contiendrait (exemple grossier) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div>echo $this->actionA;</div>
    <div>echo $this->actionB;</div>
    Et le rendu de actionA dans la vue "classique" : actionA.phtml ; idem pour l'actionB

    How to ?

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    je ne sais pas si l'ActionStack est ce qu'il y a de mieux adapté à ton cas.

    Si tu veux l'utiliser, il faut modifier ton layout pour ajouter d'autres "blocs", par exemple ajouter un "bloc" news :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $this->layout()->news;
    Ensuite, dans ton action, tu peux préciser l'endroit de ton layout où elle doit s'afficher en utilisant l'aide d'action viewRenderer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->getHelper('viewRenderer')->setResponseSegment('news');
    Si tu ne veux pas modifier ton layout et afficher directement le résultat d'une autre action dans ta vue, alors le plus simple est probablement l'aide de vue Action : http://framework.zend.com/manual/fr/...initial.action

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Par défaut
    Pour l'utilisation de l'ActionStack, j'avais vu ça dans la doc, et je confirme que ce n'est pas ce que je veux.

    J'ai lu ce tuto, et je vois pas du tout comment ça peut m'aider !

    EDIT : es-ce que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $this->action('list', 'comment', null, array('count' => 10)); ?>
    Va afficher la vue de cette action dans la vue de l'action appelée ?

    J'appel l'action A du contrôleur X. Dans la vue de l'action A (a.phtml donc) je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $this->action('B', 'Y');
    Es-ce que ça va afficher le contenu de b.phtml du contrôleur Y ??

    Si oui alors j'ai compris sinon va falloir du soutien :p

  4. #4
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Citation Envoyé par Feng-Huang Voir le message
    Pour l'utilisation de l'ActionStack, j'avais vu ça dans la doc, et je confirme que ce n'est pas ce que je veux.

    J'ai lu ce tuto, et je vois pas du tout comment ça peut m'aider !
    Ca ne t'aidera pas pour ça...

    Je te parlais de l'aide de vue Action, et pas d'une aide d'action
    A utiliser dans ta vue comme indiqué sur le lien que j'ai donné dans mon dernier message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $this->action('action', 'contrôleur', 'module', array('parametre1' => 'valeur1')); ?>
    EDIT :
    Citation Envoyé par Feng-Huang Voir le message
    Es-ce que ça va afficher le contenu de b.phtml du contrôleur Y ??
    Oui, ça va afficher le résultat de l'action b du contrôleur Y

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Par défaut
    GENIAL.

    J'suis amoureux de Zend

    Trop facile :p

    Merci encore une fois l'amis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JScrollPane non actif (layout)
    Par Oliveuh dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 21/07/2004, 10h50
  2. [struts]Documentation Struts-layout
    Par GreenJay dans le forum Struts 1
    Réponses: 5
    Dernier message: 14/06/2004, 11h51
  3. panel, layout et frame
    Par beLz dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 24/04/2004, 23h45
  4. [Débutant][swt][layout]
    Par Stessy dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 28/07/2003, 18h21

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