Raccourcis : Contenu - rubriques - sous rubriques
FR

Piste :

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
fr:tutoriels:modules:jevent [2009/09/22 12:24] – créée foxmaskfr:tutoriels:modules:jevent [2012/01/31 12:31] – [le contrôleur] foxmask
Ligne 1: Ligne 1:
 ====== Jelix et la Communication inter modules ====== ====== Jelix et la Communication inter modules ======
 +
 +//(version de Jelix supportée 1.1.x)//
  
 Une //pépite// parmi tant d'autres que renferme Jelix, est //la communication inter module//. Une //pépite// parmi tant d'autres que renferme Jelix, est //la communication inter module//.
Ligne 26: Ligne 28:
 Donc pour cela je défini un contrôleur "modules" avec une action "index" par défaut : Donc pour cela je défini un contrôleur "modules" avec une action "index" par défaut :
  
-===== le contrôleur =====+A nugget among so many others contained Jelix, is  the internal communication between modules. 
 + 
 +But what is this? 
 + 
 +Sometimes modules may need to communicate with each other or whether they need information from each other. 
 + 
 +Imagine a simple case, an administrative interface that lists the modules (articles, wiki, news), present on his favorite site. 
 + 
 +The "Jelixian" solution is to make the administration module communicate with all the others. 
 + 
 +The administration module will send a message and retrieve the responses of the modules. 
 + 
 + 
 +This page will be made of one template and the responses of modules will be made with the help of Zones (Remind : the Zones are part of page) 
 + 
 +So for that, I define a controller "modules" with one action index by default  
 + 
 + 
 +===== the controller =====
  
 <code php> <code php>
Ligne 41: Ligne 61:
 </code> </code>
  
-la ligne intéressante ici est :+the interesting line of code  here is 
 <code php> <code php>
 $tpl->assign('modules',jEvent::notify('HfnuAboutModule')->getResponse());  $tpl->assign('modules',jEvent::notify('HfnuAboutModule')->getResponse()); 
 </code> </code>
  
-cette ligne fait choses en même temps : +This line makes things in same time :
- +
-  - elle émet un message nommé **HfnuAboutModule** +
-  - elle récupère les données du message émis +
-  - elle assigne ses données à la variable "modules" du template.+
  
 +  - it sends a message named **HfnuAboutModule**
 +  - it get the data returned by the sent message
 +  - it assigns the data to the variable "modules" of the template.
  
-la ligne suivante indique à Jelix, le nom du template "module"qui affichera les données+the following line tell to Jelix, the name of the module, which will display the data :
 <code php> <code php>
 $rep->body->assign('MAIN',$tpl->fetch('modules')); $rep->body->assign('MAIN',$tpl->fetch('modules'));
Ligne 105: Ligne 124:
 </code> </code>
  
-lorsque **HfnuAboutModule* est déclenché, alors **onHfnuAboutModule** entre en oeuvre et répond à l'event (via $event->add())+lorsque **HfnuAboutModule** est déclenché, alors **onHfnuAboutModule** entre en oeuvre et répond à l'event (via $event->add())
  
 $event->add() peut recevoir tout type de données. Ici nous lui retournons une zone ([[fr:tutoriels:modules:generic1|que nous avons précédemment abordés dans mes 2 précédants articles]]) nommée "about" $event->add() peut recevoir tout type de données. Ici nous lui retournons une zone ([[fr:tutoriels:modules:generic1|que nous avons précédemment abordés dans mes 2 précédants articles]]) nommée "about"

fr/tutoriels/modules/jevent.txt · Dernière modification : 2012/01/31 12:34 de foxmask

Fils rss des changements récents dans le wiki Creative Commons License