- 1
[Opened] jcommunity action et zone
Posted by dantahoua on 02/08/2011 16:07
Bonjour. Je me pose la question suivante:
- Comment rediriger vers une page bien précise de mon site qui contient par exemple la zone d'édition de mon profil ? Par défaut, jcommunity pointe vers account:show, mais dans mon système, c'est un autre module qui génère les pages en passant en paramètre l'id de la page. Ensuite la page va chercher toutes les zones dont elle à besoin en leur passant les paramètres dont ils ont besoins.
Donc j'ai besoin de renseigner dans mon système d'admin qu'elle page du site va servir à jcommunity pour le login, l'édition de compte, etc.
Donc, suis-je mieux de rediriger vers les bonnes pages au niveau des "listeners" ou ailleurs (url ou controlleur)? exemple: L'utilisateur s'identifie avec le formulaire de jcommunity, lorsqu'il clic sur ok, au niveau du event "onAuthLogin" je vérifie si il y a un "auth_url_return" présent, sinon j'interroge la BD pour savoir vers qu'elle page de mon site je doit aller maintenant et si il n'y a rien, je redirige vers le controlleur spécifier dans le fichier de conf. Je pourrais utiliser la même méthode pour l'édition de compte, etc...
[Opened] jcommunity action et zone
Posted by foxmask on 02/08/2011 18:04
Pourquoi ne pas simplement surcharger. Le template jcommunity concerne?
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] jcommunity action et zone
Posted by dantahoua on 02/08/2011 18:12
Hum c'est dynamique, la page vers laquelle je veux pointer peut changer, on la définie dans le cms... J'ai déjà surcharger le template mais pour le design.
update: zut, avec les events ça fonctionne mais le problème, quand je me connecte dans master admin, ben le "event" est aussi appelé, forcément... Faut que je trouve un autre moyen...
[Opened] jcommunity action et zone
Posted by dantahoua on 02/08/2011 22:57
Bon, au final je me suis créé un nouveau contrôleur 'vincent_account.classic.php' qui hérite de 'account.classic.php'. Je peux ainsi redéfinir par exemple la méthode show et lui dire d'utiliser une page bien précise plutôt que la réponse par défaut. En fait j'ai rajouté ça au début de la méthode 'show':
$conf = $GLOBALS[['gJCoord']]->getPlugin('auth')->config; <code> if($conf['after_login_jalias']!=''){//Je crée des nouvelle variable à partir du cms dans ce fichier ini $jalias = $conf['after_login_jalias']; $rep = $this->getResponse('redirect'); $rep->action='ejcryopublic~default:index'; $rep->params = array('jalias'=>$jalias,'lang'=>$GLOBALS['gJConfig']->locale); return $rep; }</code>
J'ai ensuite créé une nouvelle zone qui fait en fait la même chose que ce que fait la méthode show originale et qui sera appelée par ma page. Ainsi je peux inclure le formulaire de gestion dans mon design. Vous me direz, rendu là, je pourrais presque me faire un module complet copié sur jcommunity mais basé juste sur des zones...
Update: Je pense que je vais effectivement me faire le même module mais avec toutes les méthodes gérant les zones, comme dans 'login.classic.php' qui peut être utiliser dans une zone (c'est génial!). Je vais faire la même chose pour les méthodes de account, registration et password.
- 1