Welcome to the LimeSurvey Community Forum

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

Récupérer une valeur depuis $_SESSION dans une question

More
3 weeks 17 hours ago - 3 weeks 17 hours ago #272587 by pasglop
Votre version de LimeSurvey : Version 5.6.11+230320
Votre propre serveur ou LimeSurvey Cloud : Sur Debian
Thème : Variables de session

==================
[Écrivez ici votre question/remarque]

Bonjour

J'aimerai afficher en pré-remplissage d'une réponse à une question texte court une valeur contenu dans les variables de session :
Exemple avec $_SESSION["nomCAS"] = "toto"
Quel est la syntaxe pour le récupérer et où l'indiquer ?

J'ai essayé plusieurs méthode mais je sèche :-((

Merci beaucoup



 
Last edit: 3 weeks 17 hours ago by pasglop.

Please Log in to join the conversation.

More
3 weeks 10 minutes ago #272593 by DenisChenu
A part créer un plugin, je ne vois pas comment.
D'ou vient cette donnée de session ?

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

More
2 weeks 6 days ago - 2 weeks 6 days ago #272594 by pasglop
Bonjour

Dans le contexte, on force le passage par le CAS pour certaines enquêtes sans tables d'invitations.

Puis depuis un plugin perso :

class RecupCasAttr extends LimeSurvey\PluginManager\PluginBase
{
...

public function init()
{   $this->subscribe('beforeSurveyPage');}

private function setVarSession()
{
   // Lecture des headers CAS
   $headers = getallheaders();

   $nom = $headers["CAS-Sn"] ?? null;
   $prenom = $headers["CAS-givenName"] ?? null;
   $mel = $headers["CAS-mail"] ?? null;

   $_SESSION["nomCAS"] = $nom;
   $_SESSION["prenomCAS"] = $prenom;
   $_SESSION["melCAS"] = $mel;
}


public function beforeSurveyPage()
{
if (!isset($_SESSION["nomCAS"])) {
$this->setVarSession();
}
if (!empty($_SESSION["nomCAS"])) {
...
}
}

Mais après je ne sais plus quoi faire...
J'ai tenté pleins de solution et j'en suis a essayer celle-ci :

public function beforeTwigRenderTemplate()
{
if (!isset($_SESSION["nomCAS"])) {
$this->setVarSession();
}
if (!empty($_SESSION["nomCAS"])) {
$event = $this->getEvent();
$twigVars = $event->get("aAdditionalVars");
$twigVars["nomCAS"] = $_SESSION["nomCAS"] ?? null;
$event->set("aAdditionalVars", $twigVars);
}
}

pour une vaine tentative de le récupérer par JS.

Dans l'idéal, il faudrait comme pour {FIRSTNAME} avoir un {nomCAS}.

Peut-être que ce n'est pas réalisable.
Last edit: 2 weeks 6 days ago by pasglop.

Please Log in to join the conversation.

More
2 weeks 6 days ago - 2 weeks 6 days ago #272595 by DenisChenu
OK !

Dans ce cas : je fais de l'authentification par participant et donc rempli les attributs

gitlab.com/SondagesPro/TokenManagement/LdapTokenAuthenticate
gitlab.com/SondagesPro/TokenManagement/W...verTokenAuthenticate

Sinon, sans passer par les token : github.com/LimeSurvey/LimeSurvey/blob/e4...ger_helper.php#L4651 tenter de remplir la session 
Code:
$_SESSION['survey_1234']['startingValues']['1234X123X123'] = 'value'
 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.
Last edit: 2 weeks 6 days ago by DenisChenu.

Please Log in to join the conversation.

More
2 weeks 6 days ago #272596 by pasglop
Extensions > Envoyer et installer > Envoyer > Installer :
Le plugin n'a pas pu être installé ou mis à jour: Impossible d'analyser le fichier config.xml.

Pour les 2 plugins.

Please Log in to join the conversation.

More
2 weeks 6 days ago #272597 by DenisChenu
L'idée est de donner des exemples.
Et sinon : si tu prends le zip sur gitlab : ca ne passera pas.

extensions.sondages.pro/about/article/in...lugin-for-limesurvey

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

More
2 weeks 6 days ago #272598 by pasglop
Là ça devient trop compliqué pour moi...
Mais j'ai une idée qui va plus me correspondre : passé par un site qui va peupler la table d'invitations puis rediriger l'utilisateur vers le bon url avec un token. Ca devrait fonctionner.

Merci pour le temps consacré.

Please Log in to join the conversation.

More
2 weeks 6 days ago #272599 by DenisChenu
Comme tu avais déjà ton plugin perso :)
 

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.

Please Log in to join the conversation.

Moderators: Nickkoholchtpartner

Lime-years ahead

Online-surveys for every purse and purpose