Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Utilisation d'un module

Posted by Mindiell on 05/16/2011 10:44

Bonjour,

Me revoilà avec mes questions après un week-end de repos :)

Je souhaite utiliser un module fonctionnel dans mon module principal. Comment je fais ?

La question peut paraitre bizarre, mais j'ai un souci, ma page principale s'affiche grâce au module principal. Mon module "secondaire" gère des fonctionnalités bien spécifiques (les news par exemple). Comment intégrer une news dans ma page principale ?

J'ai utilisé une zone, mais je ne vois alors pas où un controleur de mon second module est appelé. Je ne vois pas dans la doc où se situe ce genre d'infos.


Mindiell

  [Opened] Utilisation d'un module

Reply #1 Posted by laurentj on 05/16/2011 12:48

ma page principale s'affiche grâce au module principal.

à priori non. ton module principal contient peut être le template principal, peut être aussi la page d'accueil, mais ce n'est pas lui qui affiche les pages du site. Ça c'est le rôle d'un objet réponse, en particulier celui qui est défini par l'application dans ton répertoire response.

Bref, dans n'importe quel contrôleur, tu récupères cet objet response (getResponse()) et tu lui injecte les données nécessaires (contenu de la news avec son template etc) pour afficher la page.

  [Opened] Utilisation d'un module

Reply #2 Posted by laurentj on 05/16/2011 12:49

Je ne vois pas dans la doc où se situe ce genre d'infos.

tout est expliqué dans ce chapitre

  [Opened] Utilisation d'un module

Reply #3 Posted by Mindiell on 05/16/2011 13:47

Oui, ça j'avais compris. J'ai trouvé un truc qui en parle dans la doc

Mais je ne comprends pas comment intégrer le rendu de mon module secondaire dans le premier. J'utilise un template:

      //Affichage de la news
<code>
      $tplNews = new jTpl();
      $tplNews->assign('News~view_News');
      $response->body->assign('NEWS', $tplNews);
</code>

Mindiell

  [Opened] Utilisation d'un module

Reply #4 Posted by laurentj on 05/16/2011 16:32

il faut d'abord que tu génère le contenu de ton $tplNews, avec la méthode fetch. et ce contenu, tu l'assignes à une variable du template principale pour qu'il soit affiché quelque part.

assign, c'est pour créer une variable de template, pas pour générer du contenu. ton $tplNews->assign est totalement faux.

$tplNews = new jTpl();

$contenuHtmlDeLaNews = $tplNews->fetch('News~view_News');

$response->body->assign('NEWS', $contenuHtmlDeLaNews);

  [Opened] Utilisation d'un module

Reply #5 Posted by Mindiell on 05/17/2011 11:04

Effectivement, ça marche mieux. Mais, comment puis-je inclure l'action d'édition de la news ?

Je m'explique : j'ai la page principale et dedans, quelque part, je veux éditer ma news. Je clique sur un bouton et je veux ma page principale avec l'éditeur de news quelque part. News est un objet fonctionnel à part que je veux pouvoir ré-utiliser sur d'autres sites/applications (donc un module si j'ai bien suivi) . Je veux donc, à l'endroit voulu, afficher la zone d'édition de la news via l'action news_edition par exemple. Comment je lie ce template à mon objet news ?

Désolé si je ne suis pas clair... :o)


Mindiell

  [Opened] Utilisation d'un module

Reply #6 Posted by laurentj on 05/17/2011 11:50

Mais, comment puis-je inclure l'action d'édition de la news ?

De la même façon que tu as inclus ta partie visualisation de news, dans une autre action dédiée à l'edition.

  [Opened] Utilisation d'un module

Reply #7 Posted by Mindiell on 05/17/2011 13:51

Euh non :o) Là j'ai juste afficher un template situé dans un autre module. Mais ce code est situé dans l'action index du module principal...


Mindiell

 
Page
  1. Utilisation d'un module