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 :

Exécuter plusieurs actions dans une vue


Sujet :

MVC PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut Exécuter plusieurs actions dans une vue
    Bonjour à tous,

    Je souhaite faire remonter dans ma page d'accueil différents blocs (menu dynamique, contenu, top 5...)
    Pour ça j'ai créé un layout adapté ou j'utilise les partials. Niveaux affichage statique tout est ok.
    J'arrive bien avec mon contrôleur index a faire remonter le contenu de mon "corps de page" avec $this->layout()->content;
    Mais je n'arrive pas à utiliser les autres controllers et actions que j'ai créé pour faire remonter le contenu des autres blocs. J'ai essayé _forward dans le contrôleur index et action dans mon index.phtml mais rien ne marche.
    Avez vous une idée ?

    Romain

  2. #2
    Membre expérimenté Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Par défaut
    Bonjour,

    tu dois pouvoir utiliser "Action View Helper" comme expliqué dans la doc http://framework.zend.com/manual/en/...w.helpers.html

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 118
    Par défaut
    Bonjour,

    Personnellement, pour la plupart de mes applications, j'utilise une trame principale trame.phtml dont je vais lui injecter les informations de mes différentes parties de la page du site (menu, entête, pied de page et contenu).

    exemple d'une trame simplifié trame.phtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <html>
       <?php  echo $this->action('head', 'page' )?>
     
    <body>
       <div id="menu">
           <?php  echo $this->action('menu', 'page' )?>
       </div>
     
      <div id="contenu">
          <?php echo $this->layout()->content?>
      </div>
     
       <div id="footer">
           <?php  echo $this->action('footer', 'page' )?>
       </div>
     
    </body>
    </html>
    $this->action(monAction, monController, monModule (optionnelle) ) permet de réaliser des actions supplémentaires en parallèle de l'action de la requête client.

    Dans notre cas nous faisons appel à pageController et ses 3 actions headAction, menuAction, footerAction.

    Mais pour que cela fonctionne il faut utiliser l'aide d'action actionStack, que nous allons définir dans le bootstrap.

    8.4.1. ActionStack (Documentation officielle)

    L'aide ActionStack vous permet d'empiler les requêtes dans le plugin de contrôleur frontal ActionStack, vous aidant effectivement à créer une liste d'actions à exécuter durant la requête. Cette aide vous permet d'ajouter des actions, soit en spécifiant de nouveaux objets de requêtes, soit en paramétrant action / controller / module.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // Utilisation par défault d'une trame commune conteneur des mes différentes vues
    Zend_Layout::startMvc(array(
    	  'layoutPath' => $applicationPath . DIRECTORY_SEPARATOR . 'layouts'
            , 'layout' => 'trame'
    	));
     
    // Appel automatique de différentes vues secondaire pour la trame commune 
    $actionStack = Zend_Controller_Action_HelperBroker::getStaticHelper('actionStack');
    $actionStack->actionToStack('menu','page');
    $actionStack->actionToStack('head','page');
    $actionStack->actionToStack('footer','page');
    Bien entendu il faut implementer le pageContoller, ses actions et ses vues associées.

Discussions similaires

  1. Plusieurs instances dans une vue
    Par JM12345 dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 06/08/2009, 18h52
  2. Plusieurs actions dans une seule classe Action
    Par hamza_bba dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/03/2009, 16h14
  3. Griser des actions dans une vue particulière
    Par stouky dans le forum W4 Express
    Réponses: 1
    Dernier message: 04/03/2008, 08h08
  4. Sous-requête excutée plusieurs fois dans une requête
    Par sheridan31 dans le forum Oracle
    Réponses: 8
    Dernier message: 03/07/2006, 16h18
  5. [STRUTS] Plusieurs actions dans une meme page
    Par DarkWark dans le forum Struts 1
    Réponses: 22
    Dernier message: 10/01/2006, 16h18

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