Check out the LimeSurvey source code on GitHub!
Welcome, Guest
Username: Password:

TOPIC: Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111724

  • tamacheq
  • tamacheq's Avatar
  • Offline
  • Senior Lime
  • Posts: 43
  • Karma: 0
Bonjour
Nous utilisons un questionnaire comme formulaire de candidature à notre plateforme de blogs multi-lingue. Certains utilisateurs peuvent candidater plusieurs fois. Actuellement, le message d'erreur est "L'adresse de courriel utilisée a déjà été enregistrée."
Nous voudrions indiquer à l'utilisateur qu'il doit contacter l'administrateur pour qu'il lui génère un nouveau jeton avec la même adresse mail.

Si nous l'indiquons systématiquement dans le template register.pstpl, cela risque de perturber l'utilisateur qui n'a pas rencontré ce type de problème. De plus, je ne sais pas afficher un message différent selon la langue dans ce template.

Je pourrais également modifier les fichiers po pour le texte "The email you used has already been registered.", mais alors le message d'erreur serait modifié pour tous les questionnaires de l'installation limesurvey et pas seulement pour le questionnaire d'inscription à la plateforme de blogs. De plus, je devrais refaire la modification de cet intitulé à chaque nouvelle installation de limesurvey.

Avez-vous des suggestions?
S'il était possible de tester au niveau d'un template la langue et le fait qu'une variable est vide ou non (ici {REGISTERERROR} dans register.pstpl), cela serait déjà un plus.

Merci d'avance
Anne
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111725

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2789
  • Thank you received: 365
  • Karma: 78
Pourquoi obliger les gens à demander un nouveau jetons ?
Est-ce qu'il serait envisageable de ne pas limiter le nombre de jetons ?
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.
The following user(s) said Thank You: tamacheq

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111726

  • tamacheq
  • tamacheq's Avatar
  • Offline
  • Senior Lime
  • Posts: 43
  • Karma: 0
oui, pourquoi pas, mais je ne connais pas cette possibilité.
Je ne vois pas comment le paramétrer.
Merci
Anne
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111727

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2789
  • Thank you received: 365
  • Karma: 78
Je pense qu'on peut faire tourner une procédure stockée dans MySQL pour remonter tous les tokens à un certain niveau chaque jour.

Sinon, avec un trigger déclenché par l'ajout d'un nouvel utilisateur à la table des invitations. Dans les 2 cas, ça nécessite un peu de connaissance en SQL et un accès à la base de données.
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.
The following user(s) said Thank You: tamacheq

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111728

  • tamacheq
  • tamacheq's Avatar
  • Offline
  • Senior Lime
  • Posts: 43
  • Karma: 0
Merci Nickko, j'ai les accès et des connaissances SQL mais cela me semble compliqué à implémenter. Je préfèrerais pouvoir personnaliser le template en fonction de la langue et de l'existence d'une erreur, mais je ne sais pas faire de test dans le template, j'imagine qu'en javascript on a accès à ces variables?
Merci
Anne
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111733

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2789
  • Thank you received: 365
  • Karma: 78
Quelles variables précisément ?

Je me demande si on doit obligatoirement passer par du JS, j'aurais machinalement opté pour du PHP mais il semble que ce ne soit pas conseillé, j'ai fait une rapide recherche avant de te répondre.
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111734

  • tamacheq
  • tamacheq's Avatar
  • Offline
  • Senior Lime
  • Posts: 43
  • Karma: 0
En PHP, ce serait super, mais je n'ai jamais vu d'inclusion de php dans les templates. J'ai essayé de mettre <?php echo "toto";?> dans le template register.pstpl mais ce n'est pas parsé.

Je voudrais tester la variable de langue utilisée par l'utilisateur et la variable $register_errormsg qui donne {REGISTERERROR} dans le template.

Merci
Anne
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111736

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2789
  • Thank you received: 365
  • Karma: 78
Pour la langue, pas besoin de variable, ça peut se gérer en CSS.
En gros, tu as les deux messages dans la page et seul celui qui correspond à la langue de l'utilisateur est affiché.

Je dois chercher mais j'ai des exemples, on s'en sert parfois dans des templates au bureau.
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111750

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2789
  • Thank you received: 365
  • Karma: 78
Pour la partie CSS, voici comment je m'en sort avec les langues :
.lang-fr #header-top, .lang-fr-informal #header-top {background:url(bg_citizen_fr.gif) left -3px no-repeat; margin:0 auto; text-align:right;}
.lang-nl #header-top, .lang-nl-informal #header-top {background:url(bg_citizen_nl.gif)

En effet, si tu regardes dans le code source de la page généré, on peut voir qu'il y a des classes qui correspondent à la langue choisie.

Et sinon, je pense que le trigger dasn MySQL reste plus simple que la solution JS. En effet, tu vas devoir jongler avec plusieurs variables, un peu de JS et un peu de CSS, tout ça dans des fichiers différents, tandis que le Trigger SQL ça n'est qu'une requête à taper.

Voici un peu d'info en français sur l'implémentation des triggers : dev.mysql.com/doc/refman/5.0/fr/using-triggers.html

Il suffit de connaitre la bonne table d'invitation, ensuite le nom des champs est assez explicite de mémoire.

Les tables de token ont des noms du type : lime_tokens_369498 ou lime_ est le préfixe que tu as choisis à l'installation (par défaut "lime_") et le chiffre à la fin, le numéro de ton sondage.

Ensuite, à l'intérieur de cette table, il y a une "colonne" usesleft qui correspond au nombre de jetons restants.

Si je me prête à l'exercice ça doit donner un truc du genre :
CREATE TRIGGER ins_sum AFTER INSERT ON lime_tokens_369498
FOR EACH ROW UPDATE lime_tokens_369498 SET usesleft = 9999 WHERE tid = NEW.tid ;
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111761

  • tamacheq
  • tamacheq's Avatar
  • Offline
  • Senior Lime
  • Posts: 43
  • Karma: 0
Encore merci pour cette réponse précise mais cela ne correspond pas à ce que je cherche.
Pour la langue, c'est le contenu du message affiché que je veux modifier dans le template, pas le style.
Pour les tokens, sans passer par le trigger, si j'indique useleft=9999 à un token et que je tente d'utiliser la même adresse mail pour m'inscrire à nouveau au questionnaire, cela ne fonctionne pas.
Merci
Je continue de chercher...
Anne
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111763

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2789
  • Thank you received: 365
  • Karma: 78
Tu peux aussi modifier le contenu en utilisant la classe, ça ne se limite pas au style même si ce n'est pas le plus orthodoxe, c'est possible.

Pour l'histoire de ton token, au départ tu demandais comment : "indiquer à l'utilisateur qu'il doit contacter l'administrateur pour qu'il lui génère un nouveau jeton avec la même adresse mail."

J'ai donc proposé une solution pour ajouter automatiquement un jetons (en fait presque une infinité).

En fait je pense que la logique de ton sondage est un peu tordue, pourquoi faire s'inscrire les gens une seconde fois s'il sont déjà inscrit ?

Un petit texte d'explication avec l'inscription serait sans doute suffisant.
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111766

  • tamacheq
  • tamacheq's Avatar
  • Offline
  • Senior Lime
  • Posts: 43
  • Karma: 0
Finalement, j'utilise du javascript inclus dans le template register.pstpl
<script type="text/javascript" charset="utf-8">
var registererror = "{REGISTERERROR}";
var sid = "{SID}";
var lang = "{LANG}";
jQuery(document).ready(
 
function(){
 
		if ((registererror != '') && (sid==51981)) 
			{ 
			var message ;
			if (lang == 'fr') { message = "Veuillez contacter hypotheses@openedition.org pour pouvoir à nouveau candidater avec la même adresse mail.\nMerci d'indiquer vos nom et prénom." ; }
				else { message = "Please contact hypotheses@openedition.org to get a new token with same email address: give also your name and your firstname. Thanks." ; }
			alert(message); 
			}
}
);
</script>
<span class="warning-text">{REGISTERERROR}</span>
<p class="register-message-1">{REGISTERMESSAGE1}</p>
<p class="register-message-2">{REGISTERMESSAGE2}</p>
<div class="register-form">{REGISTERFORM}</div>
The administrator has disabled public write access.

Personnaliser message d'erreur lors de l'enregistrement avec même adresse mail 2 years 1 week ago #111767

  • Nickko
  • Nickko's Avatar
  • Offline
  • LimeSurvey Team
  • Posts: 2789
  • Thank you received: 365
  • Karma: 78
Bien joué, merci d'avoir partagé ta solution.

Juste une petite remarque de français. Le terme candidater n'existe pas, on doit plutôt dire postuler ou se porter candidat.

Nickko
Nickko
Ergonome / Usability expert
The administrator has disabled public write access.
Moderators: Nickko
Time to create page: 0.217 seconds
Imprint                   Data Protection Statement                  Revocation information and revocation form