Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-08-2010 09:52:31

gmifsud
Membre
Date d'inscription: 29-04-2010
Messages: 75

Conception modulaire : utiliser plusieurs modules pour une page ?

Bonjour à tous,


Je désirerais, dans une application MVC, savoir s'il est possible d'afficher plusieurs modules sur une seule page.
Je crois que les aides de vues servent à cela mais je n'ai pas vraiment trouvé d'exemple sur le net permettant de faire ce que je désirerais.

Exemple concret : Ma page contient :
- une vidéo en haut, avec description, et tout le toutim.
- des commentaires sur cette vidéo en bas.

Et j'aurais aimé pouvoir découper mon applications en modules :
- admin
- video
- commentaire

Est-ce que la page principale en question peut utiliser les deux modules "video" et "commentaire" ?
Je suppose qu'il me faut mettre cette page principale dans le module par défaut, mais après je sèche.
Comment son contrôleur peut-il interagir avec les contrôleurs des deux modules ?



Deuxième question, si la première est possible.
Je voudrais que, dans la page, les deux parties soient relativement "indépendantes".
C'est à dire que si, par exemple, j'affiche 5 commentaires alors qu'il y en a 8 disponibles, je puisse passer à la seconde "page" des commentaires, sans recharger la page principale.


Merci d'avance pour vos conseils.

Hors ligne

 

#2 25-08-2010 16:44:29

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Conception modulaire : utiliser plusieurs modules pour une page ?

Bonjour,
Oui, on peut le faire. Il faut un layout et un mécanisme qui indique au framework les actions et vues à traiter et afficher en plus de la vue par défaut.

Personnellement j'ai choisit de faire un plugin qui me rajoute les actions correspondants au menu des différents modules et qui regarde les relations entre les éléments du site pour afficher automatiquement les éléments directement liés (par exemple les groupes auquel appartient un utilisateur)

Pour rajouter un plugin, il suffit de faire un

Code:

Zend_Controller_Front::getInstance()->registerPlugin(new monPlugin());

Pour le code d'un plugin qui rajoute des vues à la page, il faut dans la méthode "dispatchLoopStartup" du plugin :
- récupérer la pile des actions restant à traiter

Code:

$stack = $this->getStack();

- créer un nouveau controller_request

Code:

$MenuUserRequest = new Zend_Controller_Request_Simple();

- indiquer le module et la vue à ce controller

Code:

$MenuUserRequest->setControllerName('Utilisateur')
                ->setActionName('menu');

- éventuellement Rajouter des paramètres supplémentaires

Code:

$MenuUserRequest->setParam('monParam', 'maValeur');

-enfin le rajouter à la pile récupéré plus haut

Code:

$stack->pushStack($MenuUserRequest);

C'est une méthode, il en existe d'autres avec ce framework. smile

Hors ligne

 

#3 26-08-2010 10:14:18

gmifsud
Membre
Date d'inscription: 29-04-2010
Messages: 75

Re: Conception modulaire : utiliser plusieurs modules pour une page ?

Merci pour cette piste.

Si j'ai bien compris, on utilise un plug-in à qui l'on va donner la liste des actions des divers contrôleurs qui impactent la page ; et c'est ce plug-in qui va lancer ces actions.

Je ne suis pas encore très à l'aise avec les plug-in, je vais donc faire quelques tests pour voir si je m'en sors avec cette méthode.  smile

Hors ligne

 

#4 26-08-2010 13:32:55

omega2
Membre
Lieu: Boisbriand, quebec, canada
Date d'inscription: 01-04-2009
Messages: 85
Site web

Re: Conception modulaire : utiliser plusieurs modules pour une page ?

En fait le plugin ne va pas lancer les actions, il se contente de dire au Zend_Controller_Front quelles sont les actions que le contrôleur devra appeler. Le framework se chargera du reste.

En dehors de ça, oui c'est bien ça, le plugin doit savoir quelles actions doivent être appellé pour prévenir le contrôleur grâce au code ci-dessus. A chacun de choisir sa méthode pour ça : base de donnée, fichier de config, autre.

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