Jump to content

Extension:CIForms

From mediawiki.org
This page is a translated version of the page Extension:CIForms and the translation is 99% complete.
Outdated translations are marked like this.
Manuel des extensions MediaWiki
CIForms
État de la version : stable
Implémentation Fonction d'analyseur , Accroche , Page spéciale
Description Formulaires et formulaires à plusieurs étapes avec auto-validation, questionnaires à choix multiple et textes à trous.
Auteur(s) thomas-topway-it (thomas-topway-itdiscussion)
Dernière version 1.3.2 (2024-12-06)
Politique de compatibilité Le master conserve la compatibilité arrière.
MediaWiki >= 1.35.0
Licence Licence publique générale GNU v2.0 ou supérieur
Téléchargement
Exemple exemples CIForms
  • $wgSenderEmail
  • $wgSuccessPage
  • $wgSubmissionGroups
  • $wgSubmitEmailGlobalMode
  • $wgMailer
  • $wgSubmitEmail
  • $wgDisableVersionCheck
  • $wgSMTPHost
  • $wgGoogleRecaptchaSecret
  • $wgSMTPPassword
  • $wgSuccessPageGlobalMode
  • $wgGoogleRecaptchaSiteKey
  • $wgErrorPageGlobalMode
  • $wgSubmissionGroupsGlobalMode
  • $wgSMTPPort
  • $wgErrorMessageGlobalMode
  • $wgErrorMessage
  • $wgSuccessMessageGlobalMode
  • $wgSuccessMessage
  • $wgSenderName
  • $wgErrorPage
  • $wgSMTPUsername
Traduire l’extension CIForms sur translatewiki.net si elle y est disponible

CIForms est une solution complète pour créer rapidement des formulaires de saisie et récupérer immédiatement les données des visiteurs, et ils incluent un large éventail de fonctionnalités, telles que la validation native, les sections imbriquées, le multi-étapes, les questionnaires à choix multiple avec des entrées arbitraires sur les lignes et prenant en charge tous les types de styles de liste standard, les tests avec texte à trous (cloze tests), Google recaptcha, les sélections et les listes déroulantes, les zones de texte avec un nombre de caractères donnés, l'accès aux données (utilisé pour restreindre l'accès à l'envoi des formulaires), et beaucoup plus !

L'envoi de formulaires peut de manière optionnelle, se faire à la fois comme document pdf vers les adresses courriel fournies, et comme stockage dans un tableau dédié accessible par les utilisateurs autorisés via une Page spéciale. (de où chaque envoi peut être également téléchargé individuellement en tant que document pdf)

Installation

  • Télécharger et placer les fichiers dans le dossier CIForms du répertoire extensions/ .
  • Exécuter composer update --no-dev dans le répertoire extensions/CIForms (pour installer les dépendances phpmailer et dompdf nécessaires pour envoyer le pdf et les résultats du formulaire à l'adresse courriel fournie, ou pour télécharger ces résultats en tant que pdf)
  • Ajouter le code suivant à la fin du fichier LocalSettings.php :
    wfLoadExtension( 'CIForms' );
    
  • Exécuter php maintenance/run.php update (pour installer les tables nécessaires)
  • Yes Fait – Aller sur Special:Version de votre wiki pour vérifier que l'extension est installée avec succès.

Nouvelles fonctionnalités

Version 1.3.2

Version 1.3.1

  • données du formulaires au format xlsx/excel export
  • chargement du module JS corrigé
  • prise en charge améliorée pour les wikis traduits dans d'autres langues que l'anglais
  • vue adaptative des symboles requis quand aucune étiquette ou joker est initialisé
  • le titre des données de formulaire correspondent désormais aux noms des champs ou des étiquettes plutôt qu'aux noms génériques des entrées (voir cette image pour référence)
  • traitement plus robuste des données de formulaire après la modification du descripteur (par exemple dans les versions précédentes une modification d'une étiquette de champ pouvait rendre inaccessibles les données entrées sous l'ancienne étiquette, ceci est maintenant résolu tant que le type d'entrée reste le même)
  • nouvelle API pour s'assurer que l'extension est mise à jour avec la dernière version disponible

Version 1.3

  • données du formulaire au format csv export
  • prise en charge du multi-étapes et la pagination
  • nouveaux paramètres locaux et globaux success page et error page (pour rediriger l'utilisateur sur une page du wiki une fois le formulaire envoyé)
  • liste mise à jour des paramètres globaux et locaux, avec compatibilité arrière
  • support pour postgres et table prefix
  • username est toujours sauvegardé dans les données du formulaires
  • étiquettes modifiables des boutons (envoyer, page précédente et suivante)

Exemples

Forme de base sur une colonne

C'est la forme la plus simple (de type inputs par défaut, sur une colonne)

Les crochets représentent une entrée, il peuvent imposer facultativement le type de la valeur, l'étoile indique un champ obligatoire

{{#CI form: title = Contact form
| type = inputs
| first and last name [] *
| email [email] *
| your message [textarea]  *
}}

ce qui donne :

(exemple opérationnel)


Jokers

Formulaire avec des jokers. Les crochets entourent le joker avec le type (facultatif) de la valeur suivant le symbole égal :

{{#CI form: title = Contact form
| [first and last name] *
| [email=email] *
| [phone=tel]
| [your message=textarea]  *
}}

ce qui donne :

(exemple opérationnel)


Sur deux colonnes

Entrées réactives (sur deux colonnes), les crochets représentent le type de la valeur, les lignes du formulaire contiennent le HTML (l'étiquette de l'adresse courriel est en gras)

{{#CI form: title = Contact form
| type = inputs responsive
| email-to = abc@test.com
| first name [] *
| last name [] *
| <b>email</b> [email] *
| phone [tel]
| your message [textarea]  *
}}

(exemple opérationnel)


Choix multiple

Choix multiple avec des entrées de texte arbitraire entre les réponses (dernière ligne de l'exemple). Par défaut l'entrée est générée sous forme de boutons radio (une seule réponse est autorisée). Pour afficher les cases à cocher permettant les réponses multiples, initialiser le paramètre max answers à une valeur supérieure à 1.

{{#CI form: title = Why are you applying to this job?
| type = multiple choice 
| I send bulk applications, even if I will be selected I'm not sure to confirm
| I ran out of money, I have to find whatever job quickly
| I want to learn something new 
| The job fits my background and I'm very skilled, I look forward to join your team!
| Let me explain [] 
}}

(exemple opérationnel)


Sélection

Sélection avec des options pour joker et valeurs codées en dur. Si les options contiennent des virgules il suffit d'échapper ces dernières !

{{#CI form: title = Select your preferred IT course
| type = inputs
| [Please chose one=select=PHP and Mysql, Node.js\, Vue.js\, React, Mediawiki and Gerrit ] *
}}

(exemple opérationnel)


Sélection dans une liste déroulante

Sélection remplie par wikicode (si la sélection contient plus de 20 options, CIForms l'affichera automatiquement sous forme de liste déroulante select2)

{{#CI form: title = Country and city
| type = inputs
| country [select={{#replace:{{Template:Countries}}|*|,}}] *
| city [] *
}}

Attention : pour que cet exemple fonctionne, $wgPFEnableStringFunctions et $wgPFStringLengthLimit doivent être initialisé respectivement à true et à une grande valeur (par exemple 10 000) dans votre fichier LocalSettings.php, et Template:Countries doit exister

(exemple opérationnel)


Sections imbriquées

Formulaire avec des sections imbriquées. Le choix multiple accepte jusqu'à 3 réponses ("max answers=3"). La zone de texte a un attribut concernant la longueur maximale ("[textarea=1000]")

{{#CI form: title = Job application
| data-access = sysop
|
{{#CI form section: type = inputs 
| name [] *
| email [] *
}}
|
{{#CI form section: type = inputs
| title = What about your motivation?
| type = multiple choice
| I send bulk application, even if I will be selected I'm not sure to confirm
| I ran out of money, I have to find whatever job quickly
| I want to learn something new 
| The job fits my background and I'm very skilled, I look forward to join your team!
| Let me explain [] 
}}

{{#CI form section: type = multiple choice
| title = If you will be selected (on the basis of the answer above), how will you undertake your work? (up to 3 answers allowed)
| type = multiple choice
| max answers=3
| I will work scrupulously
| I will work meticulously
| I will pretend to work
| I will delegate all my work to my sister
| I will work seriously 
}}

{{#CI form section: type = inputs
|title = Please describe yourself (1000 characters max)
| [textarea=1000] *
}}

}}

(exemple opérationnel)


Multi-étapes et mise en page

Depuis la version 1.3 (juillet 2022) CIForms prend en charge la création de formulaires en plusieurs étapes, simplement en divisant les sections des formulaires en étapes ou en pages, plutôt que de les afficher, par défaut, toutes ensemble. Pour obtenir un formulaire composé de plusieurs étapes, utilisez le paramètre paging combiné avec des sections de formulaire (voir ci-dessus).

Pour convertir le formulaire précédent en formulaire multi-étapes, ajouter le descripteur de formulaire :

| paging = 2

Chaque étape contiendra 2 sections. Vous pouvez définir le nombre de sections pour pour chaque étape en utilisant une valeur telle que : 1, 1, 2 (qui affichera 1 section dans les 2 premières étapes, et 2 sections dans la dernière)

Voici un exemple complet opérationnel de https://wikisphere.org/wiki/CIForms_multi-step CIForms_multi-étapes

La démonstration esssaie d'émuler la liste complète des entrées offertes par LimeSurvey néanmoins, CIForms fournit la validation native partout où c'est possible et ignore actuellement certains types d'entrées, particulièrement les entrées QArray* et l'affichage conditionnel.


Test avec texte à trous

Les tests avec un texte à trous sont principalement utilisés pour traiter les questionnaires et les tests.

Les crochets représentent une entrée, s'ils incluent un texte, il s'agit d'une suggestion. L'étoile représente une phrase d'exemple. Chaque ligne peut contenir un nombre arbitraire d'entrées.

{{#CI form: type = cloze test 
| title = Put the verbs between parentheses in the proper tense
| * I (to be) [have been] proud to win the match
| I (to do) [] a wonderful work
| I (to drink) [] too much at the last party
| I (to eat) [] 3 pizzas and 4 portions of french fries, and now I don't perform really well in intimate situations
| (to make) We are such stuff as dreams are [] on; and our little life ...
}}


(exemple opérationnel)


Test avec texte à trous et suggestions

La liste des suggestions est mélangée automatiquement et la suggestion en ligne est automatiquement retirée de la liste. (passage en ligne) (line-through)

{{#CI form: type = cloze test 
| title = Put the right word in each sentence
| suggestions = pencils, cats, dogs, car, house, pizzas
| * There are three [pencils] on my table
| My [] is pretty fast
| My [] barks a lot but welcomes thieves equipped with sausages
| I love [] because they say "meeeooow"
| I'm able to eat 4 [] at any time
| My [] has 3 swimming pools and a bowling lane, are you envious?
}}


(exemple opérationnel)

... et plus ! voir ici pour davantage d'exemples !!

Page et sortie spéciale

CIForms stocke tous les envois dans un tableau et tous les formulaires disponibles peuvent être consultés et explorés sur une page spéciale, et même téléchargés en pdf. De plus, les résultats du formulaire peuvent être envoyés à l'adresse courriel qui a été fournie, comme expliqué ci-dessous.

Capture d'écran de la page spéciale d'envoi, avec la liste des envois de formulaires, groupés par titre et la page où le formulaire est placé, sur l'ensemble du wiki :

Ceci est la liste des envois pour un formulaire donné. La liste peut être explorée et si les dépendances associées sont installées (voir ci-dessus à la section Installation), les données du formulaire peuvent être immédiatement récupérées en pdf.


Sortie Pdf

Ceci est un exemple de sortie pdf du formulaire ci-dessus de Demande d'emploi, soit reçu par courriel si le paramètre email-to est utilisé (voir la section ci-dessous pour plus de détails) ou en cliquant sur le bouton de téléchargement dans la table des envois.

pdf output Voir le pdf

Configuration

Note Note : Afin de pouvoir envoyer un courriel à l'adresse fournie (habituellement celle de l'administrateur système) lors des envois de formulaires, $wgEnableEmail doit être activé et PHPMailer doit être installé conformément aux instructions de la section Installation.

Insérer le code suivant après wfLoadExtension( 'CIForms' ); dans LocalSettings.php (ceci facilite l'initialisation des variables globales listées ci-dessous)

define( 'CIFORMS_VALUE_IF_NULL', 0 );
define( 'CIFORMS_VALUE_OVERRIDE', 1 );
define( 'CIFORMS_VALUE_APPEND', 2 );

Les constantes ci-dessus indiquent la stratégie de fusion de la variable globale par rapport au paramètre correspondant déclaré dans le formulaire. CIFORMS_VALUE_IF_NULL signifie que la variable globale ne sera utilisée que si la variable locale correspondante (placée dans le descripteur du formulaire) est nulle, CIFORMS_VALUE_OVERRIDE signifie que la variables globale va redéfinir la variable locale et CIFORMS_VALUE_APPEND signifie que les deux seront fusionnées ensemble.

Paramètres globaux

Aucune des options suivantes est nécessaire, si $wgCIFormsDataAccess (global) ou data-access (local) sont nuls, les données du formulaire ne seront accessibles qu'aux opérateurs système. Si $wgCIFormsEmailTo (global) ou email-to (local) sont nuls, les données du frmulaire ne seront pas disponibles par courriel.

variable description
$wgCIFormsSenderEmail Emetteur dans le champ From lors de l'envoi du formulaire vers la ou les adresses courriel fournies.
$wgCIFormsSenderName Nom de l'émetteur du champ "From" ci-dessus
$wgCIFormsMailer "smtp", "sendmail" ou "emailnotifications"
$wgCIFormsSMTPHost hôte smtp (comme 'smtp.example.com')
$wgCIFormsSMTPUsername nom d'utilisateur smpt (comme 'user@example.com')
$wgCIFormsSMTPPassword mot de passe smpt
$wgCIFormsSMTPPort port smpt (comme 465)
$wgCIFormsEmailTo adresse(s) courriel par défaut où envoyer facultativement le formulaires
$wgCIFormsEmailToGlobalMode stratégie de fusion pour $wgCIFormsEmailTo, une des constantes ci-dessus (CIFORMS_VALUE_IF_NULL CIFORMS_VALUE_OVERRIDE ou CIFORMS_VALUE_APPEND)
$wgCIFormsDataAccess groupes ou utilisateurs par défaut pouvant accéder à l'envoi du formulaire (séparateur : virgule)
$wgCIFormsDataAccessGlobalMode stratégie de fusion pour $wgCIFormsDataAccess
$wgCIFormsSuccessPage page de succès par défaut après l'envoi du formulaire
$wgCIFormsSuccessPageGlobalMode stratégie de fusion pour $wgCIFormsSuccessPage
$wgCIFormsSuccessMessage message de succès par défaut après l'envoi du formulaire
$wgCIFormsSuccessMessageGlobalMode stratégie de fusion pour $wgCIFormsSuccessMessage
$wgCIFormsErrorPage message d'erreur par défaut après l'envoi du formulaire
$wgCIFormsErrorPageGlobalMode stratégie de fusion pour $wgCIFormsErrorPage
$wgCIFormsErrorMessage message d'erreur par défaut après l'envoi du formulaire
$wgCIFormsErrorMessageGlobalMode stratégie de fusion pour $wgCIFormsErrorMessage
$wgCIFormsGoogleRecaptchaSiteKey GoogleRecaptchaSiteKey pour sécuriser la validation avec Google Recaptcha
$wgCIFormsGoogleRecaptchaSecret GoogleRecaptchaSecret pour sécuriser la validation avec Google Recaptcha


Paramètres globaux vers locaux

global local
$wgCIFormsEmailTo email-to
$wgCIFormsDataAccess data-access
$wgCIFormsSuccessPage success-page
$wgCIFormsErrorPage error-page
$wgCIFormsSuccessMessage success-message
$wgCIFormsErrorMessage error-message

Exemple de configuration

$wgEnableUserEmail = true;
$wgEnableEmail = true;
$wgPasswordSender = $wgCIFormsSenderEmail = [your wiki email address];
$wgCIFormsGoogleRecaptchaSecret = [your google recaptcha secret];
$wgCIFormsGoogleRecaptchaSiteKey = [your google recaptcha site key];
$wgCIFormsSuccessMessage = 'The form has been sent, thank you!';
$wgCIFormsErrorMessage = 'We couldn\'t send your form, please try again or contact the support at <span class="ci_text_highlight">' . $wgCIFormsSenderEmail . '</span>';

Paramètres

Les paramètres suivants peuvent être utilisés par la fonction d'analyse {{#CI form: }} ou {{#CI form section: }}

attribut valeurs description {{#CI form: }} {{#CI form section: }} version
type inputs, inputs responsive, multiple choice, ou cloze test définit le type de formulaire. La valeur par défaut est "inputs"
v
x
1.1
data-access liste de groupes et de noms d'utilisateurs redéfinit la variable globale $wgCIFormsDataAccess dans le formulaire fourni
v
x
1.3
email-to liste d'adresses courriel redéfinit la variable globale $wgCIFormsEmailTo dans le formulaire fourni
v
x
1.3
title chaîne quelconque, peut contenir du HTML et du wikicode titre du formulaire ou section du formulaire
v
v
1.1
paging false ou liste de nombres de sections pour chaque page les sections de formulaire mises en forme, comme 4, 4, 2, pour afficher 4 sections dans les 2 premières étapes, et 2 sections de formulaire dans la dernière
v
x
1.3
list-type "none", "ordered", "unordered", "letters", "number", ou toute autre valeur listée ici le style de liste du questionnaire à choix multiple, ou du test avec texte à trous
v
v
1.1
suggestions liste de mots séparés par des virgules suggestions pour les tests avec texte à trous, tel que décrit dans les exemples ci-dessus
v
v
1.1
min-answers nombre nombre minimum de réponse pour les questionnaires à choix multiple ou les tests avec texte à trous
v
v
1.3
max-answers nombre nombre minimum de réponse pour les questionnaires à choix multiple
v
v
1.1
submit text chaîne chaîne de substitution pour le bouton d'envoi
v
v
1.3
navigation next chaîne chaîne de substitution pour le bouton avancer (uniquement si la mise en page est appliquée)
x
v
1.3
navigation back chaîne chaîne de remplacement pour le bouton de retour (uniquement si la mise en page est appliquée)
x
v
1.3
css class chaîne classe CSS supplémentaire appliquée au formulaire ou à la section du formulaire (pour la mise en forme alternative ou l'habillage)
v
v
1.2
success page chaîne page de destination suite à l'envoi avec succès du formulaire, redéfinit la variable globale $wgCIFormsSuccessPage pour un formulaire donné
v
x
1.3
error page chaîne page de destination suite à une erreur du formulaire envoyé, redéfinit la variable globale $wgCIFormsErrorPage pour un formulaire donné
v
x
1.3
success message chaîne redéfinit la variable globale $wgCIFormsSuccessMessage pour un formulaire donné
v
x
1.1
error message chaîne redéfinit la variable globale $wgCIFormsErrorMessage pour un formulaire donné
v
x
1.1

Support et bogues

Veuillez rapporter les messages d'erreur sur la page de discussion de l'extension. Les mises à jour seront postées sur mediawiki-l qui est la liste de diffusion principale de MediaWiki et nous vous conseillons de souscrire à cette liste pour rester informé.

Pour le support professionnel, veuillez écrire à l'adresse courriel fournie ici

Voir aussi