335 lines
10 KiB
Plaintext
335 lines
10 KiB
Plaintext
<page xmlns="http://projectmallard.org/1.0/"
|
||
type="topic" id="misc-substvars" xml:lang="fr">
|
||
|
||
<info>
|
||
<link type="seealso" xref="misc-ezt" />
|
||
<revision docversion="0.1" date="2013-07-06" status="draft"/>
|
||
<credit type="author">
|
||
<name>Frédéric Péters</name>
|
||
<email>fpeters@entrouvert.com</email>
|
||
</credit>
|
||
|
||
</info>
|
||
|
||
<title>Variables de substitution</title>
|
||
|
||
<p>
|
||
<app>w.c.s.</app> 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.
|
||
</p>
|
||
|
||
<p>
|
||
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.
|
||
</p>
|
||
|
||
<section id="system-variables">
|
||
<title>Variables système</title>
|
||
|
||
<p>
|
||
Ces variables sont accessibles à tout endroit du site.
|
||
</p>
|
||
|
||
<table shade="rows">
|
||
<tr>
|
||
<td><p><code>site_name</code></p></td>
|
||
<td><p>Le titre du site</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>site_theme</code></p></td>
|
||
<td><p>L'identifiant du thème en cours</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>site_url</code></p></td>
|
||
<td><p>L'adresse du site</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>site_url_backoffice</code></p></td>
|
||
<td><p>L'adresse vers le backoffice du site</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>site_lang</code></p></td>
|
||
<td><p>Le code de la langue utilisée par le site</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>today</code></p></td>
|
||
<td><p>La date du jour</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>now</code></p></td>
|
||
<td><p>La date et l'heure du jour</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>session_user_display_name</code></p></td>
|
||
<td><p>Le nom de l'utilisateur connecté</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>session_user_email</code></p></td>
|
||
<td><p>L'adresse électronique de l'utilisateur connecté</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>is_in_backoffice</code></p></td>
|
||
<td><p>Vrai si la requête en cours a lieu dans le backoffice</p></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>
|
||
À l'intérieur d'une catégorie, les variables suivantes sont également
|
||
définies :
|
||
</p>
|
||
|
||
<table shade="rows">
|
||
<tr>
|
||
<td><p><code>category_name</code></p></td>
|
||
<td><p>L'intitulé de la catégorie</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>category_description</code></p></td>
|
||
<td><p>La description de la catégorie</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>category_id</code></p></td>
|
||
<td><p>L'identifiant de la catégorie</p></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<note><p>
|
||
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.
|
||
</p></note>
|
||
|
||
</section>
|
||
|
||
<section id="form-variables">
|
||
<title>Variables de formulaire</title>
|
||
|
||
<section id="general-info">
|
||
<title>Informations générales</title>
|
||
|
||
<table shade="rows">
|
||
<tr>
|
||
<td><p><code>form_receipt_date</code></p></td>
|
||
<td><p>La date de réception du formulaire</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_receipt_time</code></p></td>
|
||
<td><p>La date et l'heure de réception du formulaire</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_name</code></p></td>
|
||
<td><p>Le titre du formulaire</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_number</code></p></td>
|
||
<td><p>Le numéro attribué au formulaire</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_slug</code></p></td>
|
||
<td><p>Le « slug » (partie d'adresse) du formulaire</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_url</code></p></td>
|
||
<td><p>L'adresse vers la vue du formulaire</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_url_backoffice</code></p></td>
|
||
<td><p>L'adresse vers le formulaire dans le backoffice</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_tracking_code</code></p></td>
|
||
<td><p>Le code de suivi du formulaire, s'il existe</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_criticality_level</code></p></td>
|
||
<td><p>Le niveau de criticité, 0 pour le niveau le plus bas, 101, 102, 103, etc. pour les suivants.</p></td>
|
||
</tr>
|
||
</table>
|
||
</section>
|
||
|
||
<section id="user-info">
|
||
<title>Informations sur l'utilisateur (demandeur)</title>
|
||
|
||
<p>
|
||
Les données contiennent aussi des informations sur l'utilisateur ayant
|
||
complété le formulaire.
|
||
</p>
|
||
|
||
<table shade="rows">
|
||
<tr>
|
||
<td><p><code>form_user_display_name</code></p></td>
|
||
<td><p>Le nom de l'utilisateur</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_user_email</code></p></td>
|
||
<td><p>L'adresse électronique de l'utilisateur</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_user_name_identifier_<var>n</var></code></p></td>
|
||
<td><p>Identifiant SAML de l'utilisateur (NameID), pour le fournisseur
|
||
d'identités numéro n (n commençant à 0)</p></td> </tr>
|
||
</table>
|
||
|
||
<p>
|
||
Si un champ utilisateur personnalisé dispose d'un nom de variable, alors
|
||
il est accessible sous la forme <code>form_user_var_<var>variable du
|
||
champ</var></code>, par exemple <code>form_user_var_prenom</code>.
|
||
</p>
|
||
|
||
</section>
|
||
|
||
<section id="form-data">
|
||
<title>Données du formulaire</title>
|
||
|
||
<table shade="rows">
|
||
<tr>
|
||
<td><p><code>form_details</code></p></td>
|
||
<td><p>L'ensemble des champs et de leur valeurs</p></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>
|
||
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 <code>form_var_<var>variable du
|
||
champ</var></code> (par exemple : <code>form_var_courriel</code>).
|
||
</p>
|
||
|
||
<p>
|
||
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 <code>form_var_<var>variable
|
||
du champ</var></code> et l'identifiant dans <code>form_var_<var>variable du
|
||
champ</var>_raw</code>.
|
||
</p>
|
||
|
||
<p>
|
||
Aussi, si la source de données contient des clés supplémentaires, elles
|
||
se trouveront dans <code>form_var_<var>variable du champ</var>_<var>clé
|
||
supplémentaire</var></code>, par exemple pour une clé <code>cout</code>,
|
||
<code>form_var_document_cout</code>.
|
||
</p>
|
||
|
||
</section>
|
||
|
||
<section id="workflow-data">
|
||
<title>Statut et données relatives au traitement</title>
|
||
|
||
<table shade="rows">
|
||
<tr>
|
||
<td><p><code>form_status</code></p></td>
|
||
<td><p>Le statut actuel du formulaire</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_previous_status</code></p></td>
|
||
<td><p>Le statut précédent du formulaire</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_status_changed</code></p></td>
|
||
<td><p>Un booléen précisant que le formulaire vient de changer de statut</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_evolution</code></p></td>
|
||
<td><p>L'ensemble de l'historique du traitement</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_role_receiver_name</code></p></td>
|
||
<td><p>Le nom du rôle en charge du traitement</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_role_receiver_emails</code></p></td>
|
||
<td><p>Les adresses électroniques associées au rôle en charge du traitement</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_role_receiver_details</code></p></td>
|
||
<td><p>La description (« détail du rôle ») associée au rôle en charge du traitement</p></td>
|
||
</tr>
|
||
</table>
|
||
</section>
|
||
|
||
<section id="submission-info">
|
||
<title>Informations sur la saisie</title>
|
||
|
||
<p>
|
||
Les données contiennent aussi des informations sur le contexte de saisie de
|
||
la demande.
|
||
</p>
|
||
|
||
<table shade="rows">
|
||
<tr>
|
||
<td><p><code>form_submission_backoffice</code></p></td>
|
||
<td><p>Vrai si la saisie a eu lui depuis le backoffice</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_submission_channel</code></p></td>
|
||
<td><p>Identifiant du canal de saisie (ex: mail)</p></td>
|
||
</tr>
|
||
<tr>
|
||
<td><p><code>form_submission_channel_label</code></p></td>
|
||
<td><p>Libellé du canal de saisie (ex: Courrier)</p></td>
|
||
</tr>
|
||
</table>
|
||
|
||
<p>
|
||
Si d'autres informations ont été fournies sur le contexte de la saisie
|
||
elles sont disponibles dans des variables de la forme
|
||
<code>form_submission_context_<var>foobar</var></code>.
|
||
</p>
|
||
|
||
</section>
|
||
|
||
</section>
|
||
|
||
<section id="session-variables">
|
||
<title>Variables de session</title>
|
||
|
||
<p>
|
||
La session de l'usager contient une série d'informations fixes (par exemple
|
||
le <code>session_user_display_name</code> 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.
|
||
</p>
|
||
|
||
<p>
|
||
Le fonctionnement est simple, si le site reçoit une adresse avec des
|
||
paramètres de la forme <code>session_var_<var>nom</var></code>, une
|
||
variable du même nom (<code>session_var_<var>nom</var></code>) est rendue
|
||
disponible.
|
||
</p>
|
||
|
||
<p>
|
||
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
|
||
<code>https://www.example.net/?session_var_departement=42</code> et le
|
||
squelette du site pourrait avoir le code suivant :
|
||
</p>
|
||
|
||
<example>
|
||
<code>
|
||
[if-any session_var_departement]
|
||
<link rel="stylesheet" type="text/css" href="extra/[session_var_departement].css"/>
|
||
[end]
|
||
</code>
|
||
</example>
|
||
|
||
<note style="important">
|
||
<p>
|
||
Ce fonctionnement doit explicitement être autorisé par
|
||
l'administrateur système, la liste des variables permises doit être ajoutée
|
||
au fichier <code>site_options.cfg</code>, dans la section
|
||
<code>[options]</code>, par exemple :
|
||
</p>
|
||
<example>
|
||
<code>query_string_allowed_vars = departement,une_autre_variable</code>
|
||
</example>
|
||
</note>
|
||
|
||
</section>
|
||
|
||
</page>
|