SelfRegistration : redirection dynamique après inscription -
didjeko - 12/11/2012
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.2.1
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour bonjour
Sur mon site, on peut écrire des commentaires (sur certaines pages, pas toutes) et pour cela il faut être enregistré. bon. Jusque là, j'ai su faire avec feu, selfregistration et customContent :
Sur une page contenant des commentaires, j'affiche de commentaires suivis soit du formulaire de saisie d'un nouveau commentaire, soit du formulaire de connexion si l'utilisateur n'est pas connecté.
Tant qu'à faire, j'ai ajouté un lien dans le formulaire de connexion, qui permet de se rendre directement sur la page d'inscription (je fais les inscriptions sur une page séparée, cettre page est accessible depuis le menu).
Et voilà mon souci :
Un internaute non enregistré veut commenter la page, il va cliquer sur le lien "s'inscrire" qui le mène à la page d'inscription, puis, au bout du processus (avec validation par email et tout le toutim standard), je voudrais que cet utilisateur désormais inscrit soit redirigé sur la page
d'origine, et là je cale : je peux pas utiliser la fonction standard de SelfRegistration puisque on ne peut indiquer qu'un alias de page fixe.
Affecter une variable avec l'url de retour dans les pages avec commentaires ne suffit pas, puiqu'il faudrait que j'affecte cette variable si et seulement si on vient de cliquer sur le lien "S'inscrire".
Je vois bien une solution hyper lourde qui m'obligerait à dupliquer le template de connexion et la page d'inscription, mais c'est tout.
SelfRegistration : redirection dynamique après inscription -
jissey - 12/11/2012
Salut,
réponse vite faite: tu pourrais ajouter un champ dans feu qui serait caché dans le formulaire d’inscription et dans lequel tu mettrais la page d'origine.
Lorsque l'internaute confirme par mail, tu rediriges vers une page qui exécute une udt dans laquelle tu interroges ce champ et fait la redirection.
SelfRegistration : redirection dynamique après inscription -
didjeko - 12/11/2012
Ben justement, le problème c'est que dans la page d'inscription, je ne connais pas la page d'origine
SelfRegistration : redirection dynamique après inscription -
jissey - 12/11/2012
ben, je dirais encore une fois une udt qui renseigne une variable de session qui continet la page d'origine que tu récupères pour remplir ton champ caché.
SelfRegistration : redirection dynamique après inscription -
didjeko - 12/11/2012
J'y avais pensé, mais ça m'oblige à renseigner cette variable sur toutes les pages : page a avec commentaire, je stocke la page d'origine a. Puis je vais sur la page b puis c puis d (sans commentaires). Je vais alors de oi-mêmesur la page d'inscription, et j'ai toujours a comme origine...
J'ai presque trouvé une autre solution mais j'ignore si elle est bonne ou pourrie ;-) :
le lien sur la page source vers la page de connexion :
Code :
[== Indéfini ==]
{cms_selflink page="inscription" urlparam="#$page_alias"}
génère un lien
Code :
[== XHTML ==]
<a href="http://localhost/cmsms/inscription#home" title="Inscription" >Inscription</a></p>
(je suis sur la page "home", s'entend).
urlparam est ajouté en paramètre à l'url (comme son nom l'indique
), le # permet de considérer le nom de page comme une ancre donc le lien fonctionne ; mais je ne sais pas le décoder dans la page inscription :
Code :
[== Indéfini ==]
{$cgsimple->self_url()}
ne le renvoie pas, bien sûr. suffirait que je puisse accéder à ce pramètre et hop c résolu, d'une manière peu orthodoxe je pense
SelfRegistration : redirection dynamique après inscription -
jissey - 12/11/2012
ben non, la page d'origine est dans la variable $_SERVER['HTTP_REFERER'] !
Si dans ta page d'inscription, tu executes une udt qui te récupère ça dans un variable de session, tu as bien la dernière page visitée avant d'arriver là!
SelfRegistration : redirection dynamique après inscription -
jissey - 12/11/2012
Ton udt est simple :
Code :
[== Indéfini ==]
$_SESSION['origine']=$_SERVER['HTTP_REFERER'];
SelfRegistration : redirection dynamique après inscription -
didjeko - 13/11/2012
six mers, j'y vois plus clair (chuis hyper-léger en PHP, ça, c'est sûr - et je note sur mes tablettes les infos de jissey pour creuser le sujet des vars de session...).
Je pense cependant et malgré tout rester sur la solution avec
Code :
{cms_selflink page="inscription" urlparam="?page_origine=$page_alias"}
sur la page source et décodée par un
Code :
{smarty.get.page_alias}
sur la page d'inscription, car cette solution me permet de définir l'url de retour à partir de la source et uniquement à partir d'elle - et ça ne pose pas de réel problème en termes de pretty urls car peu m'importe que la page d'inscription soit pretty-urlisée convenablement...
A tester lorsque SelfRegistration sera opérationnel, car la version 1.7 est buguée et plante sur la page de saisie de confirmation (les paramètres ne sont pas passés au formulaire - j'ai ouvert une fiche de bug sur le sujet).