web-dev-qa-db-fra.com

Comment passer des paramètres par email à composant?

Je suis nouveau à Joomla! développement. J'ai un composant de gestion d'événements que je modifie. L'une des vues du composant concerne l'enregistrement d'un événement. Je souhaite que mon inscription soit privée et que je puisse envoyer un courrier électronique aux invités afin qu'ils cliquent sur une URL figurant dans le courrier électronique et que celui-ci les conduise à la page d'inscription. Ma compréhension actuelle est que cela ne fonctionnera pas car la page d'inscription commence par

defined('_JEXEC') or die();

L’auteur du composant a suggéré que je puisse créer un compte administrateur, avec l’utilisateur $ user et pw $ pw, et que dans le courrier électronique invitant des personnes à s’inscrire, je puisse utiliser une URL du formulaire.

http://url-to-the-event/registration?u=username&p=password

Si je fais cela, semble quelque part je devrais ajouter ce qui suit:

$jinput = JFactory::getApplication()->input;
$params= $jinput->getArray(array('u' => '', 'p' => ''));
$result = JFactory::getApplication()->login($params)); 

Est-ce exact? Où dans une structure de composant ferais-je cela? Je vois ceci dans le contrôleur du composant

$safeurlparams =     array('catid'=>'INT','id'=>'INT','Itemid'=>'INT','cid'=>'ARRAY','year'=>'INT','month'=>'INT','limit'=>'INT','limitstart'=>'INT',           'showall'=>'INT','return'=>'BASE64','filter'=>'STRING','filter_order'=>'CMD','filter_order_Dir'=>'CMD','filter-search'=>'STRING','print'=>'BOOLEAN','lang'=>'CMD');

parent::display($cachable,$safeurlparams);

Il semble donc y avoir un certain Joomla existant! structure pour faciliter ce que je veux faire, mais je ne sais pas exactement où apporter des changements. Et je sais que cette approche n’est peut-être pas idéale, avoir des informations de connexion dans une url ... Je suis donc également ouvert aux suggestions sur la meilleure façon de procéder.

Toute aide est appréciée! Brian

2
Brian

La plupart des composants permettant l'enregistrement d'un utilisateur prennent en charge l'envoi d'un courrier électronique d'activation à l'utilisateur. En procédant ainsi, vous enregistrez l'utilisateur avec les données nécessaires, le composant envoie un courrier électronique d'activation à l'adresse que vous avez indiquée à l'utilisateur et l'enregistrement ne devient actif que lorsque l'utilisateur utilise le lien d'activation figurant dans l'e-mail.

Vous ne faites aucune mention du composant que vous utilisez, donc je ne peux même pas deviner s'il supporte cela directement ou si vous devez utiliser quelque chose de séparé. Dans tous les cas, vous pouvez vérifier un composant qui ne le supporte pour voir comment le gérer.

1
Ville Niemi

J'ai fini par implémenter ceci en ajoutant un identifiant d'événement à l'URL pour l'enregistrement d'événement dans le composant iCagenda joomla. Et dans la vue d'enregistrement, je fais les vérifications nécessaires pour que l'enregistrement ne fonctionne que lorsque l'identifiant est présent. Merci!

0
Brian