Variables de substitution

w.c.s. dispose d'un système générique appelé « variables de substitutions » qui permet de faire référence à des données internes, provenant du système, d'un formulaire, d'un champ, etc.

Ce système est particulièrement utile dans le paramétrage du contenu d'un courriel ou dans la définition d'une logique de traitement d'un formulaire, mais est également accessible depuis le thème, pour le préremplissage de champs, etc.

Variables système

Ces variables sont accessibles à tout endroit du site.

site_name

Le titre du site

site_theme

L'identifiant du thème en cours

site_url

L'adresse du site

site_url_backoffice

L'adresse vers le backoffice du site

site_lang

Le code de la langue utilisée par le site

today

La date du jour

now

La date et l'heure du jour

session_user_display_name

Le nom de l'utilisateur connecté

session_user_email

L'adresse électronique de l'utilisateur connecté

is_in_backoffice

Vrai si la requête en cours a lieu dans le backoffice

À l'intérieur d'une catégorie, les variables suivantes sont également définies :

category_name

L'intitulé de la catégorie

category_description

La description de la catégorie

category_id

L'identifiant de la catégorie

Des variables supplémentaires peuvent également être définies par l'administrateur système, via des variables d'environnement ou la configuration de l'instance de w.c.s.

Variables de formulaire

Informations générales

form_receipt_date

La date de réception du formulaire

form_receipt_time

La date et l'heure de réception du formulaire

form_name

Le titre du formulaire

form_number

Le numéro attribué au formulaire

form_slug

Le « slug » (partie d'adresse) du formulaire

form_url

L'adresse vers la vue du formulaire

form_url_backoffice

L'adresse vers le formulaire dans le backoffice

form_tracking_code

Le code de suivi du formulaire, s'il existe

form_criticality_level

Le niveau de criticité, 0 pour le niveau le plus bas, 101, 102, 103, etc. pour les suivants.

Informations sur l'utilisateur (demandeur)

Les données contiennent aussi des informations sur l'utilisateur ayant complété le formulaire.

form_user_display_name

Le nom de l'utilisateur

form_user_email

L'adresse électronique de l'utilisateur

form_user_name_identifier_n

Identifiant SAML de l'utilisateur (NameID), pour le fournisseur d'identités numéro n (n commençant à 0)

Si un champ utilisateur personnalisé dispose d'un nom de variable, alors il est accessible sous la forme form_user_var_variable du champ, par exemple form_user_var_prenom.

Données du formulaire

form_details

L'ensemble des champs et de leur valeurs

Il est également possible au moment de la définition d'un champ, de lui affecter un nom de variable, cela rendra la valeur associée à ce champ accessible via une variable de la forme form_var_variable du champ (par exemple : form_var_courriel).

Pour les champs de type « Liste » dont les éléments contiendraient à la fois un libellé et un identifiant (ce qui arrive pour les champs alimentés depuis une source de données), le libellé se trouvera dans form_var_variable du champ et l'identifiant dans form_var_variable du champ_raw.

Aussi, si la source de données contient des clés supplémentaires, elles se trouveront dans form_var_variable du champ_clé supplémentaire, par exemple pour une clé cout, form_var_document_cout.

Statut et données relatives au traitement

form_status

Le statut actuel du formulaire

form_previous_status

Le statut précédent du formulaire

form_status_changed

Un booléen précisant que le formulaire vient de changer de statut

form_evolution

Informations sur le dernier statut

form_role_receiver_name

Le nom du rôle en charge du traitement

form_role_receiver_emails

Les adresses électroniques associées au rôle en charge du traitement

form_role_receiver_details

La description (« détail du rôle ») associée au rôle en charge du traitement

Informations sur la saisie

Les données contiennent aussi des informations sur le contexte de saisie de la demande.

form_submission_backoffice

Vrai si la saisie a eu lui depuis le backoffice

form_submission_channel

Identifiant du canal de saisie (ex: mail)

form_submission_channel_label

Libellé du canal de saisie (ex: Courrier)

Si d'autres informations ont été fournies sur le contexte de la saisie elles sont disponibles dans des variables de la forme form_submission_context_foobar.

Variables de session

La session de l'usager contient une série d'informations fixes (par exemple le session_user_display_name décrit en haut de page), il est aussi possible d'y ajouter de nouvelles données par l'intermédiaire de liens contenant des paramètres. Cela permet par exemple d'inclure une URL personnalisée dans un courriel vers l'usager qui assurera le préremplissage automatique de champs.

Le fonctionnement est simple, si le site reçoit une adresse avec des paramètres de la forme session_var_nom, une variable du même nom (session_var_nom) est rendue disponible.

Un autre exemple pourrait être de faire varier le thème en fonction du site extérieur ayant pointé vers le formulaire, une URL serait par exemple https://www.example.net/?session_var_departement=42 et le squelette du site pourrait avoir le code suivant :

   {% if session_var_departement %}
     <link rel="stylesheet" type="text/css" href="extra/{{session_var_departement}}.css"/>
   {% endif %}
   

Ce fonctionnement doit explicitement être autorisé par l'administrateur système, la liste des variables permises doit être ajoutée au fichier site_options.cfg, dans la section [options], par exemple :

query_string_allowed_vars = departement,une_autre_variable