Documentation #3599

ajout d’un paramètre $retour pour #FORMULAIRE_INSCRIPTION

Ajouté par Peet du il y a plus de 2 ans. Mis à jour il y a 3 mois.

Statut:En coursDébut:20/11/2015
Priorité:NormalEchéance:
Assigné à:-% réalisé:

0%

Catégorie:-Temps estimé:1.00 heure
Version cible:3.2

Description

Objectif

à la validation de l’inscription d’un auteur, pouvoir rediriger celui-ci vers une page au choix.

Syntaxe voulue

[(#FORMULAIRE_INSCRITPION{6forum,0,#URL_PAGE{suite}})]
Cette demande a été discutée ici : http://comments.gmane.org/gmane.comp.web.spip.devel/66633

Roadmap

testé sur une SPIP 3.1 RC

#1 modifier la ligne ecrire/balise/formulaire_inscription.php
function balise_FORMULAIRE_INSCRIPTION_stat($args, $context_compil) {
list($mode, $id, $retour) = array_pad($args, 3, null);
include_spip('action/inscrire_auteur');
$mode = tester_statut_inscription($mode, $id);
return $mode ? array($mode, $id, $retour) : '';
}

#2 Modifier le fichier squelettes-dist/formulaires/inscription.php
formulaires_inscription_xxxx_dist($mode='', $id=0, $retour='') {…}

#2 bis modifier la ligne squelettes-dist/formulaires/inscription.php#141
$desc = $inscrire_auteur($mode, $mail_complet, $nom, array('id'=>$id, 'redirect'=> $retour));

#3 modifier le modèle prive/modeles/mail_inscription.html
#SET{url_confirm, [(#ENV{url_confirm}|parametre_url{redirect,#ENV{redirect}})] }

puis

<:form_forum_confirmer_email{url_confirm=#GET{url_confirm}}:>

#4 mettre à jour la doc
...sur http://www.spip.net/fr_article4590.html#FORMULAIRE_INSCRIPTION

3599-squelettes-dist.patch Magnifier (1,408 ko) Peet du, 17/04/2016 12:15

3599.patch Magnifier (1,365 ko) Peet du, 17/04/2016 12:15

Historique

#1 Mis à jour par b b il y a environ 2 ans

Salut et merci pour la proposition, peux-tu attacher un patch qui récap tout ça stp ?

#2 Mis à jour par Peet du il y a environ 2 ans

J'ai dû te faire deux patchs, /dist étant en external.

#3 Mis à jour par Peet du il y a environ 2 ans

je précise que j'ai re-testé les codes proposés.
Je propose de refaire des tests une fois les patchs appliqués, ainsi que de mettre à jour http://www.spip.net/fr_article4590.html#FORMULAIRE_INSCRIPTION

#4 Mis à jour par b b il y a environ 2 ans

  • Statut changé de Nouveau à En cours
  • Resolution mis à fixed

Patchs intégrés par r22986 et http://zone.spip.org/trac/spip-zone/changeset/96656

À tester dans le trunk, pour la mise à jour de la doc, il faudra le faire lors de la release de la 3.2.

Merci :)

PS : je laisse le ticket ouvert pour l'instant, on le fermera après avoir eu tes retours.

#5 Mis à jour par Peet du il y a environ 2 ans

Test fait avec avec revision 22986 (spip 3.1.2).
C'est Ok pour moi

#6 Mis à jour par Peet du il y a environ 2 ans

rahhhh je les enchaîne aujourd'hui
Testé sur SPIP 3.2.0-dev (R22986)

#7 Mis à jour par b b il y a environ 2 ans

  • Tracker changé de Evolution à Documentation

Nickel, je bascule le ticket sur le tracker documentation pour ne pas oublier de le faire avant la sortie de la 3.2.

#8 Mis à jour par RastaPopoulos ♥ il y a 3 mois

Je découvre ce ticket, et je trouve qu'il y a une incohérence avec l'ensemble des autres formulaires CVT de SPIP. Ça fausse l'apprentissage et l'utilisation au quotidien quand un truc n'a pas le même comportement que ce qui est partout ailleurs.

Dans quasiment tous les formulaires CVT fournis par le noyau de SPIP, il y a un argument $retour optionnel que l'on peut fournir. Et cet argument génère ce comportement :
- s'il est vide, à la fin des traitements on boucle sur la même page
- s'il est remplit, à la fin des traitements, si tout s'est bien passé sans erreur, on redirige le visiteur sur la page demandée

Là ce ticket ajoute un argument similaire MAIS qui n'aboutit pas du tout au même comportement. C'est une autre fonctionnalité différente, qui est : ajouter une redirection à la fin de l'URL de confirmation du compte. C'est utile aussi, mais ce n'est clairement pas la même chose.

Mon avis est que l'argument $retour doit toujours servir à la même chose : proposer optionnellement aux devs de pouvoir rediriger les visiteurs ailleurs à la fin du traitement.

Le fait d'ajouter une redirection (peut-être la même mais pas forcément) dans l'URL de confirmation devrait se faire par un autre moyen. J'ai noté que le deuxième argument $id n'est jamais utilisé et surtout que normalement dans la suite on est censé pouvoir avoir un tableau d'options. Cela pourrait donc être dans ce tableau d'options que l'on défini la redirection ajoutée à l'URL de confirmation. Mais pas pour la redirection immédiate après traitement, car là dans tous les autres CVT de SPIP c'est toujours en argument direct.

Donc :
#FORMULAIRE_INSCRIPTION{6visiteur, #ARRAY{redirect_confirmation, #URL_TRUC}, #URL_MACHIN}

#9 Mis à jour par RastaPopoulos ♥ il y a 3 mois

Pour préciser plus explicitement encore : je pense que cet ajout est récent, et qu'il est largement préférable de s'en apercevoir maintenant et de privilégier la cohérence avec les autres CVT de SPIP.

On se traine déjà de très nombreuses incohérences mais qui datent de 15 ans, donc souvent beaucoup plus difficile à corriger sans tout péter, et donc cela m'embête que l'on rajoute un comportement incohérent de manière récente. Profitons que ça ne fasse pas si longtemps pour unifier au plus vite avant que ce ne soit trop utilisé.

Formats disponibles : Atom PDF

Ajouter une image à partir du presse-papier (Taille maximale: 1,25 Mo)