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

  [Opened] réception donnée jEvent dans un module

Posted by zitoun on 04/20/2010 16:29

Bonjour,

Débutant sur le framework Jelix, je suis confronté à une problématique que je n'arrive à résoudre.

Je souhaite pouvoir afficher des messages d'alerte (mauvais login/password) sur une page contenant un formulaire d'identification (module login~index). L'action de ce formulaire est un autre module (general), ce module étant précédé d'un coordinateur qui vérifie le login/password, et éventuellement recharge le module login. J'ai placé dans le coordinateur une notification par :

<code>
 $ev = jEvent::notify("ErrorLogin", array("error_msg" => 

jLocale::get("login~text.login.badlogin")));

</code>

et je charge le module de retour à l'accueil:

<code>
 $selector = new jSelectorAct('login~index'); 
</code>

Voici simplement comment se présente le listener (placé dans un module tiers nommé common) :

<code>
 function onErrorLogin($event) {
 $err = $event->getParam("error_msg");
 $event->Add(array('error_msg' => $err));
 }
</code>

Enfin, sur l'action login~index, je souhaiterais récupérer la donnée levée par l'event:

<code>
 $ev = jEvent::notify("ErrorLogin");
 $responses = $ev->getResponse();
</code>

$responses est vide...

Un support me serait grandement utile sur le sujet, et m'aiderais surement à la mauvaise compréhension que j'ai des jEvents.

Merci.

edité par foxmask pour mise en page


Olivier

  [Opened] réception donnée jEvent dans un module

Reply #1 Posted by Yann1ck on 04/20/2010 16:41

Salut,

Je suis pas sûr d'avoir tout compris. Mais si c'est le cas, il me semble que tu devrais vérifier si l'authentification a réussie non pas dans le module "general", mais dans le module "login", non ?

Et si l'authentification réussie, tu rediriges vers le module "general". Mais tout cela peut se faire automatiquement, en paramétrant jAuth. Ensuite, dans ton module "general", tu pourras utiliser le plugin coordinateur de jAuth pour n'accepter que les visiteurs authentifiés.

  [Opened] Re: réception donnée jEvent dans un module

Reply #2 Posted by zitoun on 04/20/2010 16:50

Je pense que tu as bien compris le problème au contraire ;) Effectivement c'est une solution qui fonctionnerait, cependant je souhaiterais savoir, de manière plus générale, comme récupérer dans un controller un event notifié au préalable dans un coordinateur. Est-ce possible ?

Merci.


Olivier

  [Opened] réception donnée jEvent dans un module

Reply #3 Posted by foxmask on 04/20/2010 17:20

Bonjour,

  • le coordinateur entre en action avant la moindre action d'un contrôleur
  • les réponses aux Events ne sont récupérables que par celui qui a émis l'Event.

donc le cas détaillé par Yann1ck est tout à fait approprié.

cordialement.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] réception donnée jEvent dans un module

Reply #4 Posted by zitoun on 04/21/2010 10:02

Merci bcp pour ces infos. Je vais donc revoir ma méthode d'approche.

Cordialement,


Olivier

 
Page
  1. réception donnée jEvent dans un module