Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Persistence du paramètre d'URL dans le cas d'1 questionnaire avec enregistrement

  • YannDBDI
  • YannDBDI's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 weeks 2 days ago #265132 by YannDBDI
Bonjour à tou-te-s

CONTEXTE  :
Je désire maximiser la diffusion de mon questionnaire et trace l'origine de cette diffusion.
Dans cette optique, j'ai prévu de publier l'URL du questionnaire sur plusieurs plateformes :  X, Facebook, LinkedIn, sites spécialisés...
Afin de savoir sur quelle plateforme cela a été le plus efficace, j'ai prévu un paramètre d'URL, associé à une question de type texte court qui va recevoir justement la source de diffusion : 
exemples :
monserveurlime.com/index.php/281323?newtest=Y&lang=fr281323 &source=twitter
monserveurlime.com/index.php/281323?newtest=Y&lang=fr281323 &source=facebook
monserveurlime.com/index.php/281323?newtest=Y&lang=fr281323 &source=linkedin
Ainsi, sur chaque plateforme, je fais un post avec le lien adéquat contenant source=<identifiant de la plateforme>

PROBLEME
J'ai autorisé l'enregistrement public sur mon questionnaire
Or une fois le formulaire d'enregistrement rempli, le lien unique que reçoit le répondant dans son mail ne contient plus le paramètre d'URL, donc je perds la source de diffusion.

QUESTION : 
Hormis  activer l'option "Sauvegarder l’URL de provenance " dans les réponses qui risque d'être insuffisante car elle est parfois masquée
ai-je une solution SANS SCRIPT pour maintenir la persistence du paramètre d'URL dans le lien généré pour un nouveau répondant ?

IDEE :
> mettre un attribut dans la table des participants
> le mettre "afficher à l'enregistrement"
> puis, dans le modèle de mon questionnaire, mettre un bout de script pour
a ) le cacher
b ) récupérer le parametre source de l'URL et la transférer dans la valeur de mon attribut caché
Y'a pas plus facile ?

Bonne journée

Yann
==================
Edition : LimeSurvey Community Edition
Version : 5.6.8+230227
Serveur : dédié
Thème : 
skelvanilla customisé
 

Yann D BDI

> LimeSurvey Community Edition
> V 5.6.8+230227
> Serveur : dédié
> Thème : skelvanilla customisé

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 weeks 2 days ago #265133 by DenisChenu
Pas de solution directe, le remplissage d'url ne commence que lors du démarrage du questionnaire

À tester : gitlab.com/SondagesPro/TokenManagement/R...erFillAttributeByGet
 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

  • YannDBDI
  • YannDBDI's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 weeks 1 day ago #265158 by YannDBDI
Merci Denis pour ta réponse rapide.
Cela semble répondre à mes besoins. A voir comment, concrètement l'exploiter. Est ce que le seul fait d'avoir un attribut dans la table des participants et un paramètre d'url de même nom, instancié par une valeur suffira ?).

Mais avant tout il me faut trouver une solution pour installer l'extension. lors de l'install, mon serveur m'alerte sur le fait qu'il ne peut pas décoder le config.xml

Yann D BDI

> LimeSurvey Community Edition
> V 5.6.8+230227
> Serveur : dédié
> Thème : skelvanilla customisé

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 weeks 1 day ago #265162 by DenisChenu
Il faut refaire le zip en enlevant _master

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

  • YannDBDI
  • YannDBDI's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 weeks 1 day ago #265164 by YannDBDI
Synchrones.J'ai topé un peut tardivement.Merci
J'en ai profité pour faire la maj de la balise "description"
et du libellé de la balise lastUpdate qui devient last_update ?

Plugin Installé avec succès mais impossible de l'exploiter :
1. j'ai crée un attribut "source" dans ma table des participants
2. j'ai créé un paramètre d'url "source "
3. j'ai également créé une question "source" afin de voir si cela était transmis
Malheureusement l'appel du questionnaire avec le paramètre source instancié arrive bien sur le formulaire d'enregistrement mais ne remplit pas l'attribut. et le lien unique généré renvoyé au participant ne contient pas ce paramètre non plus.
Faut-il que j'appelle une fonction particulière dans mon modèle de formulaire d'enregistrement ?

Yann D BDI

> LimeSurvey Community Edition
> V 5.6.8+230227
> Serveur : dédié
> Thème : skelvanilla customisé

Please Log in to join the conversation.

  • YannDBDI
  • YannDBDI's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 weeks 1 day ago #265171 by YannDBDI
J'ai finalement résolu le prb en modifiant le script associé au formulaire d'enregistrement
Je gère le fait que les attributs qui sont affichés dans le formulaire d'enregistrement peuvent également être cachés via l'utilisation du suffixe "cache_" dans le code du champ.
ci-joint le code JS si ca interesse certains :


var parametres,href,reg;

/* reg est la regex qui permet d'extaire les parametres de l'URL */
var reg = /[?&]+([^=&]+)=?([^&]*)/gi,

/* href contient les requetes de paraemtres de l'URL */
href = window.location.search;

/* getUrlVars : mappe les parametres de l'URL dans un obje map [libellé du parametre] => [valeur] */
function getUrlVars() {
/* map est l'objet qu icontiendra les parametres d'URL */
var map = {};
href.replace(reg, function(match, key, value) {
key = decodeURIComponent(key);
value = value ? decodeURIComponent(value) : true;
map[key] ? map[key] instanceof Array ? map[key].push(value) : map[key] = [map[key], value] : map[key] = value;
});
return map;
}

$(document).on('ready pjax:scriptcomplete',function(){
/**
* Code included inside this will only run once the page Document Object Model (DOM) is ready for JavaScript code to execute
* @see learn.jquery.com/using-jquery-core/document-ready/
*/
parametres = getUrlVars();

/* on cache tous les blocs d'attributs supplémentaires dont le libellé contient cache_*/
$("label[for^='register_attribute']:contains('cache_')").parent("div").hide() ;

AttributsSupplementaires=$("input[type='text'][name^='register_attribute']");
if (AttributsSupplementaires) {
for (IndexAttribut=0;IndexAttribut<AttributsSupplementaires.length;IndexAttribut++) {
InputAttribut=AttributsSupplementaires[IndexAttribut];
Objetlabel = InputAttribut.parentElement.previousElementSibling;
if (Objetlabel) {
TextelabelTotal = Objetlabel.innerText.trim();
Textelabel=TextelabelTotal;
if (TextelabelTotal.indexOf("cache_")>=0) Textelabel=TextelabelTotal.substring(6,TextelabelTotal.length);

/* si on a un parametre qui correspond au label (sans le cache_ devant) alors on le préremplit avec la valeurs du parametres */
if (parametres[Textelabel]) InputAttribut.value=parametres[Textelabel]
}
}
}

});

Yann D BDI

> LimeSurvey Community Edition
> V 5.6.8+230227
> Serveur : dédié
> Thème : skelvanilla customisé

Please Log in to join the conversation.

  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 weeks 1 day ago #265173 by DenisChenu

Faut-il que j'appelle une fonction particulière dans mon modèle de formulaire d'enregistrement ?
 
J'ai créé la version sur une ancienne version 5.
Cela fonctionnait sans problème à l'époque. Bizarre que cela ne foinctoine plus.

La solution JavaScript est une bonne idée aussi.

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.

Please Log in to join the conversation.

Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose