Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-04-2008 14:45:12

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

[1.5][Zend_Layout]Decouper la vue principale de mon controleur

Bonjour,

Bon, j'ai enfin réussi à mettre en place le Zend_Layout en utilisant ce tuto :
http://akrabat.com/2007/12/11/simple-ze … t-example/
J'ai donc un layout :

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title><?php echo $this->escape($this->title); ?></title>
</head>
<body >
<table border="1" width="100%" >
    <tr>
        <td colspan="2">
            <div id="header"><?php echo $this->layout()->header; ?></div>
        </td>
    </tr>
    <tr >
        <td valign="top">
            <table>
                <tr>
                    <td width="20%" align="left" valign="top" height="">
                        <div id="infoclient"><?php echo $this->layout()->infoclient; ?></div>
                    </td>
                </tr>
                <tr>
                    <td width="20%" align="left" valign="top">
                        <div id="menu"><?php echo $this->layout()->menu; ?></div>
                    </td>
                </tr>
            </table>
        </td>
        <td width="80%" align="left" valign="top">
            <div id="content"><?php echo $this->layout()->content ?></div>
        </td>
    </tr>
    <tr>
        <td colspan="2">
            <div id="footer"><?php echo $this->layout()->footer; ?></div>
        </td>
    </tr>
</table>
</body>
</html>

et un controleur :

Code:

function init()
    {
        $this->view->baseUrl = $this->_request->getBaseUrl();
        $response = $this->getResponse();
        $response->insert('header', $this->view->render('header.phtml')); 
        $response->insert('infoclient', $this->view->render('infoClient.phtml'));
        $response->insert('menu', $this->view->render('menu.phtml'));
        $response->insert('footer', $this->view->render('footer.phtml'));

donc j'enregistre les différents éléments sur mon layout, et le contenu de la vue de mon controleur est affiché par content.
Maintenant, je voudrais diviser la vue de mon contrôleur (le content) en plusieurs sous parties (petites vues qui serait liées a d'autres contrôleurs), je ne sais pas trop comment m'y prendre. Des idées, ou retours ?

Hors ligne

 

#2 10-04-2008 15:46:12

or4cle
Membre
Date d'inscription: 18-02-2008
Messages: 70

Re: [1.5][Zend_Layout]Decouper la vue principale de mon controleur

Salut

Pour rendre qqchose dans un des segment de mon layout, j'utilise très simplement dans une action :
$this->render('lire','center');
pour rendre la vue de l'action "lire" dans le segment "center" que j'ai défini.
Est-ce que çà t'aide ?

Hors ligne

 

#3 10-04-2008 16:02:36

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5][Zend_Layout]Decouper la vue principale de mon controleur

Salut,
En fait le segment "center", tu l'as défini dans ton layout si je comprend ?
Je pense que je fais l'équivalent avec menu en faisant :

Code:

$response->insert('menu', $this->view->render('menu.phtml'));

Ce que je cherche a faire, c'est découper la section qui correspond a mon contrôleur ("content" ici) pour y afficher plusieurs vues.
Par exemple mon contrôleur accueil pourrait afficher plusieurs petites vues d'information.
Ce serait je pense a mon contrôleur de gérer ces vues et pas au Layout ?
Je ne sais pas si je suis clair smile

Hors ligne

 

#4 10-04-2008 16:18:26

lethak
Membre
Lieu: France
Date d'inscription: 05-04-2008
Messages: 168

Re: [1.5][Zend_Layout]Decouper la vue principale de mon controleur

J'ai un peux de mal a bien saisir la problématique, j'avoue :p

http://framework.zend.com/manual/fr/zen … al.partial ce ne serait pas cela que tu cherche ?

Dernière modification par lethak (10-04-2008 16:20:28)


IT Dev @Twitter

Hors ligne

 

#5 10-04-2008 16:22:30

or4cle
Membre
Date d'inscription: 18-02-2008
Messages: 70

Re: [1.5][Zend_Layout]Decouper la vue principale de mon controleur

oui, j'ai un segment 'center' défini dans le layout (en fait, j'ai 3 segment correspondant à 3 colonnes ds mon design)
mais tu peux en mettre autant que tu veux pour découper ton "content"
et dans tes contrôleur, tu fais des: $this->render( vue , nomSegment ); et comme çà tu auras ce que tu veux là où tu le veux.
à moins que j'ai mal pigé ce que tu souhaites

Hors ligne

 

#6 10-04-2008 17:47:27

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5][Zend_Layout]Decouper la vue principale de mon controleur

@lethak : merci pour ton lien, je vais regarder ca smile
@or4cle : je pense que ce que je cherche a faire c'est gérer un layout dans un layout...
En fait j'ai un premier layout dans lequel je défini un menu, un header, un footer et une section qui correspond a la vue des différents contrôleur.
C'est cette section que je voudrais découper en plusieurs sous sections , mais le découpage dans cette section sera différent en fonction des contrôleurs.
Un contrôleurs pourrait afficher 2 sous sections en haut et une en bas.
Un autre contrôleur pourrait afficher 1 grande sous section en haut et une autre petite en bas...).
J'espère que je suis clair smile c'est pas évident wink

Dernière modification par bertra (10-04-2008 17:48:28)

Hors ligne

 

#7 10-04-2008 22:03:40

or4cle
Membre
Date d'inscription: 18-02-2008
Messages: 70

Re: [1.5][Zend_Layout]Decouper la vue principale de mon controleur

Ah oki
j'avais essayé de faire pareil au début mais j'ai rien vu que le permette dans zend_layout alors j'avais fait un truc assez moyen, ds le bootstrap, je n'affichais pas auto le dispatching mais je récupérais le rendu pour le réinjecter dans un autre layout 'en gros' mais j'aimais pas cette soluce.
Alors ce que je fait maintenant c'est dans mes différents layout, tout comme toi (une grand section ou 2-3 colonnes etc), j'ai des include du header, footer
Comme çà, j'ai pas besoin de modifier x fois mes parties communes et quand j'ai besoin d'un nouveau layout, j'ai juste besoin d'y inclure les parties communes.
C'est ce qui m'a semblé le + pratique.

Dernière modification par or4cle (11-04-2008 09:33:17)

Hors ligne

 

#8 11-04-2008 09:24:57

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [1.5][Zend_Layout]Decouper la vue principale de mon controleur

ok.
Merci pour l'info. smile

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