L'en-tête

L'en-tête est constitué par une succession de lignes dont la syntaxe est généralement clef=valeur précisant de quelle manière le questionnaire doit être exploité. Si plusieurs valeurs sont mentionnées pour une même clef, ces valeurs seront séparées par des virgules, sauf indication contraire dans la définition de la clef. Les clefs utilisables pour la version 2.19 sont ici répertoriées dans l'ordre alphabétique mais pour la rédaction de l'en-tête, l'ordre d'écriture est sans importance.

Toute ligne débutant par un dièse ou un point virgule ( # ou ; ) sera considérée comme un commentaire et donc ignorée. De ce fait, pour désactiver une clef, il est préférable de la commenter avec # ou ; plutôt que de la supprimer. Aucune de ces clefs est obligatoire. Toutefois les supprimer ou les commenter toutes, conduira la classe à l'impossibilité de fonctionner.

Dans les syntaxes, le caractère | représente une alternative. 0|1 signifie (selon de contexte) non ou oui, faux ou vrai, inactif ou actif et les paramètres placées entre crochets [] représentent des valeurs optionnelles. largeur,hauteur[,couleur] signifie par exemple que largeur et hauteur doivent obligatoirement être indiquées alors que couleur peut être ou ne pas être mentionnée.

La valeur qui sera utilisée pour la clef si celle-ci est supprimée ou commentée est précisée par la "Valeur par défaut".

alert

Syntaxe :
alert=0|1

Cette clef indique si oui (1) ou non (0) une boîte d’alerte doit être affichée à la fin du test lors de l’envoi des résultats à la personne testée

Exemples :
alert=0
alert=1
Valeur par défaut : alert=0

askfor

Syntaxe :
askfor=none|supplied|[name[,mail[,phone]]]

Cette clef précise les renseignements qu’il faudra demander à la personne interrogée. S’il s’agit d’un test ou d’une interrogation anonyme, cette clef pourra être positionnée à none, être absente ou être commentée. Dans le cas contraire, cette clef pourra contenir l’élément ou les éléments demandés séparés par des virgules. L’ordre des éléments cités est sans importance.

S’il est mentionné, l’élément name provoquera l’affichage de deux zones de saisies (l’une pour la saisie du nom et l’autre pour la saisie du prénom), à moins que la clef userlist ne soit utilisée pour ne pas afficher de zones de saisie mais une liste déroulante de noms de personne dans laquelle l’utilisateur pourra choisir le sien.

Dans cette version du script, si l’élément mail est mentionné, il signifie que l’adresse mail devra être demandée parce que si cette zone a été renseignée, le résultat sera expédié par mail à la personne interrogée. Cet envoi est totalement indépendant de la clef mailto. L'envoi de mails nécessite que la fonction mail() de PHP soit active sur le serveur. Dans ce cas, cet élément mail pourra être utilisé pour envoyer le résultat à l’adresse mail que la personne interrogée aura saisie dans le formulaire (résultat global, résumé ou complet selon le paramétrage de la clef details).

Dans cette version du script, si l’élément phone est mentionné, il signifie que le numéro de téléphone devra être demandé parce que si cette zone a été renseignée, le résultat sera expédié par SMS au numéro de téléphone indiqué par la personne interrogée. Cet envoi est indépendant de la clef smsto. Cette possibilité d’envoi de SMS (et donc d’utiliser cet élément) n’était valable que sur l’intranet de mon entreprise et non sur Internet. C'était seulement le résultat global au test qui était envoyé et non un résumé ou le résultat complet.

NOTA: La classe QCM possède des méthodes pour créer le contenu du SMS et une méthode pour l’expédier. Dans cette version distribuée sur Internet la méthode d’envoi du SMS ne contient aucune instruction car le code d’envoi était spécifique à mon intranet professionnel. Le SMS sera donc préparé mais ne pourra pas être envoyé. Si vous souhaitez bénéficier de cette fonctionnalité sur Internet ou sur votre propre intranet, il vous faudra rédiger vous-même le code d’envoi du SMS dans la methode sendSMS().

Si les renseignements concernant la personne interrogée (noms, prenom, mail) ne lui sont pas demandés, ils peuvent être extraits d’une base de données. Ils peuvent alors être fournis à la classe lors de son instanciation sous la forme d’un tableau. Le tableau aura la structure suivante :

array(idpersonne, nom, prenom, genre, adresse mail, téléphone)
NB : Les informations fournies doivent l’être dans cet ordre. Le numéro de téléphone, non utilisé sur Internet peut être omis. S’il était fourni, il se serait pas utilisé mais ne générerait pas d’erreur.

Exemple :

$etudiant = array(146, "KERMAREC", "Aziliz", "Mlle", "aziliz.kermarec@wanadoo.fr");
$test = new qcm(3, $etudiant);

Dans ce cas, la clef askfor sera inititalisée avec la valeur supplied pour indiquer que les renseignements concernant la personne interrogée ne seront pas demandés mais fournis.

Si la clef askfor est initialisée avec une valeur différente de none ou de supplied, les informations demandées devront être soit saisies, soit choisies si la clef userlist a été définie. Il vous appartiendra pour éviter des erreurs ou des absences de saisie (ou de choix) d’écrire le code javascript de vérification. La production du javascript correspondant sera automatisée dans une prochaine version de cette classe. En attendant, pour vous permettre de rédiger ce code, les noms des contrôles du formulaire de saisie sont les suivants :

Nom : ………………………………………………lname
Prénom :   …………………………………………fname
Téléphone :   ………………………………………tel
Adresse mail :  ……………………………………mail
Liste déroulante (Nom, Prénom) : ………………user

Si cette clef est absente ou est commentée la valeur qui sera attribuée au paramètre askfor sera none.

L’élément phone, s’il a été défini dans cette clef, sera d’office supprimé si la clef goal a pour valeur opinion.

Exemples :
askfor=none
askfor=supplied
askfor=mail
askfor=name,mail
askfor= mail,name
askfor=phone
askfor=name,phone
askfor=name,mail,phone
Valeur par défaut : askfor=none

author

Syntaxe :
author=Prénom NOM,mail@fournisseur.tld

Cette clef précise deux informations séparées par une virgule. Le prénom et le nom de l’auteur du questionnaire d’une part et son adresse mail d’autre part qui seront affichés en bas du questionnaire.

Exemples :
author=John DOE,john.doe@hotmail.com
Valeur par défaut : ;author=

bgcolor

Syntaxe :
bgcolor=#RRVVBB

Cette clef définit la couleur qui sera utilisée pour le fond de page (bgcolor = background-color). Elle est à préciser au format HTML en valeur hexadécimales de rouge (RR), vert (VV), bleu (BB).

Exemples :
bgcolor=#FFFF80
Valeur par défaut : bgcolor=#D0D0D0

categories

Syntaxe :
categories=catégorie1[,catégorie2[,catégorie3[,etc...]]]

Si l'objectif du test est de faire ressortir les domaines les mieux assimilés, les interrogations peuvent être rangées dans différentes catégories. Dans ce cas, les catégories de questions seront listées et séparées les unes des autres par des virgules. Les items feront référence à leur catégorie par leur numéro d'ordre, la numérotation commençant à 1. Dans l'exemple cité, la géographie est la catégorie numéro 2 et les mathématiques la catégorie de question numéro 4.

Cette clef n'a de sens que s'il y a au moins deux catégories. Si les résultats doivent être représentés sous forme graphique (camembert, lignes ou histogrammes. voir clef drawchart), il ne pourra pas y avoir de graphique histogramme ou ligne si aucune catégorie n'a été définie ou s'il n'y en a qu'une. En cas d'absence de catégorie et d'une demande de graphique inadapté, la classe corrigera la demande et utilisera le graphique camembert.

Exemples :
categories=Histoire,Géographie,Sciences,Mathématiques
Valeur par défaut : ;categories=

charset

Syntaxe :
charset=jeu de caractères

Définit le jeu de caractère qui sera utilisé pour l’écriture des mails qui seront éventuellement expédiés.

Si cette clef est absente ou commentée, la valeur par défaut sera iso-8859-1.

Exemples :
charset=iso-8859-1
charset=iso-8859-15
charset=utf-8
Valeur par défaut : charset=iso-8859-1

checkvers

Syntaxe :
checkvers=0|1

La clef checkvers précise s’il faut (1) ou ne faut pas (0) vérifier l’existence d’une nouvelle version de la classe QCM.

Si une version plus récente est disponible au téléchargement sur le site original de distribution de cette classe QCM, le (ou les) caractère(s) définis par la clef flagnew, sera affiché sur la page de test (en pied de page) avec le style new défini dans le fichier de style ou dans la page.

Par ailleurs, si la clef mailto a été définie et décommentée, la mention de l’existence d’une nouvelle version sera aussi mentionnée aussi dans le mail qui sera exépédié à cette l’adresse et non dans le mail envoyé au testé si on lui a laissé la possibilité de recevoir le résultat du test (askfor=mail,…) et qu’il a renseigné son adresse électronique.

Le texte ci-dessous (si language=fr) sera écrit en signature du message :

Une nouvelle version de la classe QCM existe à:
http://www.qcmclass.fr/download.php

Exemples :
checkvers=0
checkvers=1
Valeur par défaut : checkvers=0

dailymotion

Syntaxe :
dailymotion=largeur,hauteur

Il est possible dans un item d’insérer une vidéo se trouvant sur Dailymotion. Ce paramètre permet de fixer les dimensions qui devront être utilisées pour afficher toutes vidéos Dailymotion définies dans le questionnaire. Il ne modifie pas les dimensions des vidéos diffusées avec le lecteur de vidéo flv définies à la clef dewtube ni celles définies pour les vidéos YouTube.

Les dimensions définies par défaut sont au ratio 4:3

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 384,288.

Pour la rédaction d'items multimédia, consulter : / Les items > Les items multimédia

Exemples :
dailymotion=384,288
dailymotion=512,384
Valeur par défaut : dailymotion=384,288

details

Syntaxe :
details=short|medium|large|full

Si le questionnaire contient des questions réparties en différents thèmes et qu’il convient d’évaluer les réponses dans chacun de ces thèmes, la clef categories devra exister (voir cette clef). La clef details peut prendre, au choix, plusieurs valeurs selon la restitution souhaitée et ne porte que sur l’envoi des résultats par mail et/ou l’enregistrement dans une base de données si ces actions ont été définies par les clefs appropriées.

  Questionnaire sans catégorie Questionnaire avec catégories
short - score global - score global
medium - score global - score global
- score par catégorie
large - score global
- questions posées et réponses faites
- score global
- score par catégorie
- questions posées et réponses faites
full - score global
- questions posées et réponses faites
- correction (au testé seulement)
- score global
- score par catégorie
- questions posées et réponses faites
- correction (au testé seulement)

Pour ce qui concerne l’expédition des résultats, l’effet des paramétrages medium et large ne s’appliquera qu’aux mails (clefs mailto et/ou askfor=mail) et non aux SMS pour lesquels cette clef sera d’office positionnée à short. En effet, compte tenu de l’importance du volume que pourraient prendre ces résultats par rapport à la mémoire d’un téléphone mobile, ce paramétrage n’aura d’effet que sur les mails.

Pareillement, pour ce qui concerne l’enregistrement des résultats, le paramétrage large ne pourra s’appliquer pour les mêmes raisons que si l’enregistrement s’effectue dans une base de données (MySQL ou PostgreSQL avec la clef save=mysql|postgresql,…) et non pas dans un fichier texte (voir clef save=file,…).

La valeur de la clef details sera d’office positionnée à large si la clef goal a pour valeur opinion.

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera medium.

Exemples :
details=short
details=medium
details=large
details=full
Valeur par défaut : details=medium

dewplayer

Syntaxe :
dewplayer=#RRVVBB

Si l’item contient des documents multimédia tels que fichiers audio mp3, il sera nécessaire d’utiliser le lecteur mp3 dewplayer (dewplayer.swf) proposé pour une utilisation libre par la société Alsacréations et qui est en téléchargement sur leur site. Jusqu'à la version 2.18 de QCM Class, il était possible de paramétrer largeur, hauteur et couleur de ce player audio. A compter de la version 2.19, le seul paramètre que cette clef autorise est la couleur de fond du lecteur mp3 qui sera affiché et les dimensions qui seront appliquées sont 200 pixels de large sur 20 pixels de haut.

Le lecteur mp3 dewplayer (dewplayer.swf) devra se trouver dans le même répertoire que les autres fichiers du test. Le fichier audio à jouer sera mentionné à l’item utilisant ce document sonore dans le fichier QCM de la manière indiquée plus loin. Ce fichier mp3 pourra se trouver aussi bien dans le même répertoire que les autres fichiers du test ou sur une autre machine du réseau. Dans ce cas, au lieu de mentionner son nom dans le fichier QCM à l’item concerné, on mentionnera son URL.

Pour plus d’informations sur l’utilisation de dewplayer, consultez la documentation fournie par Alsacréations.

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera #424A5B.

Pour la rédaction d'items multimédia, consulter : / Les items > Les items multimédia

Exemples :
dewplayer=#0000FF
Valeur par défaut : dewplayer=#424A5B

dewtube

Syntaxe :
dewtube=largeur,hauteur

Si l’item contient des documents multimédia tels que fichiers video flv, il sera nécessaire d’utiliser le lecteur flv dewtube (dewtube.swf) proposé pour une utilisation libre par la société Alsacréations et qui est en téléchargement sur leur site. Cette clef indique les dimensions du lecteur video qui sera affiché pour toutes les vidéos flv.

L’utilisateur choisira les dimensions qu’il estime utiles en fonction de la question posée et de la qualité de la vidéo mais celles définies par défaut semblent correctes pour la plupart des situations. D’une manière générale, il sera bon de préciser des dimensions qui correspondent au ratio video 4:3

Le paramétrage de cette clef n’a aucune influence sur les dimensions définies aux clefs dailymotion et youtube. Les dimensions définies par défaut sont au ratio 4:3

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 384,288.

Pour la rédaction d'items multimédia, consulter : / Les items > Les items multimédia

Exemples :
dewtube=384,288
dewtube=512,384
Valeur par défaut : dewtube=384,288

drawchart

Syntaxe :
drawchart=none|pie|lines|histo

Cette clef indique s’il faut ou pas représenter les résultats sous forme graphique en fin de test. S’il ne faut pas en faire, il faudra donner la valeur none à cette clef ; s’il faut en faire, il faudra choisir le type de graphique en précisant pie (camembert), lines (lignes) ou histo (histogrammes). Naturellement, un graphique n’aura de sens que si des catégories ont été définies. D’ailleurs, s’il n’y en a pas (clef categories absente de l’en-tête ou commentée), la clef drawchart sera d’office positionnée à none. En revanche, s’il n’y a qu’une seule catégorie définie et qu’un graphique a été demandé, la clef drawchart sera initialisée à pie (camembert) même s’il avait été demandé des histogrammes ou des lignes.

Si des graphiques sont demandés et que les scripts sont placés sur une machine de type Unix/Linux, le répertoire contenant les fichiers du questionnaire et dans lequel les graphiques seront créés devra posséder les droits en écriture (chmod 777 sur le répertoire : drwxrwxrwx).

La valeur de la clef drawchart sera d’office égale à none si la clef goal a pour valeur opinion.

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera none.

Exemples :
drawchart=none
drawchart=pie
drawchart=histo
drawchart=lines
Valeur par défaut : drawchart=none

drawsheet

Syntaxe :
drawsheet=0|1

La clef drawsheet précise s’il faut (1) ou pas (0) faire un tableau textuel, chiffré et récapitulatif des résultats. Durée, nombre de questions, bonnes réponses, mauvaises réponses, non réponses, résultat général ainsi que la répartition dans les différents thèmes si différentes catégories ont été définies et qu’il y en a au minimum deux.

La valeur de la clef drawsheet sera d’office positionnée à 0 si la clef goal a pour valeur opinion.

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 0.

Exemples :
drawsheet=0
drawsheet=1
Valeur par défaut : drawsheet=0

flagnew

Syntaxe :
flagnew=charactère|texte

La clef flagnew précise le caractère ou la chaîne de caractères à écrire en pied de page de test pour indiquer qu’il existe une nouvelle version de la classe QCM.

Cette mention ne sera effectuée que si la clef checkvers a été positionnée à 1. La finalité de cette mention écrite sur la page est de prévenir l’organisateur du test qu’une nouvelle version de la classe QCM existe tout en restant discrète à la personne effectuant le test. Le style de cette mention écrite peut être changé en modifiant le style new.

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera le caractère *.

Exemples :
flagnew=*
flagnew=a new version exists
Valeur par défaut : flagnew=*

goal

Syntaxe :
goal=test|opinion|learn

La classe QCM a été essentiellement conçue pour des tests de compétence ou d'acquisition de connaissances. Toutefois, un léger paramétrage, tel cette clef goal qui lui permet d'être utilisée aussi pour des sondages ou cette clef learn qui permet d'afficher un questionnaire destiné à l'apprentissage.

La clef goal précise si le questionnaire est un test de vérification, d’évaluation de connaissances (test), un questionnaire d’enquête (opinion) ou un questionnaire d'apprentissage (test). Ce paramétrage est destiné à corriger éventuellement certaines valeurs de clef inadaptées. En effet, si le questionnaire a pour but de réaliser une enquête (en vue d’un sondage, par exemple) demander à totaliser les scores des "bonnes réponses", faire un tableau des résultats ou faire un graphique de niveau de compétence n’a pas de sens. Par ailleurs, dans ce cas, si les résultats ont été demandés par mail (clef mailto et/ou askfor contenant l’élément mail), au lieu d’envoyer les scores ce seront les questions posées et les réponses faites qui seront expédiées.

Toujours dans ce cas (goal=opinion), les questions et les réponses faites ne seront pas envoyées par SMS même si la clef smsto a été définie et/ou si la clef askfor contient l’élément phone. En effet, la taille du SMS pourrait dans ce cas être trop importante par rapport à la taille mémoire d’un téléphone mobile. Ces clefs seront donc automatiquement réajustées.

Le paramétrage goal=opinion positionne d’office les clefs suivantes aux valeurs ci-dessous :

Dans le cas d'un questionnaire d'apprentissage (goal=learn), un bouton sera affiché sous chaque question (bouton "Apprendre" si la clef language a été définie avec fr). Un clic sur ce bouton affichera la page qui aura été précisée dans les propriétés de l'item, page explicative ou documentaire en rapport avec la question posée et dans laquelle l'utilisateur trouvera la réponse à celle-ci.

Le paramétrage goal=learn (a/c version 2.19) positionne d’office les clefs suivantes aux valeurs ci-dessous :

Remarque: Si goal=learn, le questionnaire ne comportera pas de bouton de validation pour soumettre les réponses à la correction. C'est un questionnaire destiné à l'apprentissage et non à la vérification des acquis.

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera test.

Exemples :
goal=test
goal=opinion
goal=learn
Valeur par défaut : goal=test

imgtype

Syntaxe :
imgtype=png|jpg|jpeg|gif

Cette clef détermine le type d’image qui sera produite pour les graphiques. Il conviendra de s’assurer que le module PHP installé avec le serveur web a été compilé pour permettre la production de tel ou tel type de graphique. Pour s’en assurer, utilisez la fonction phpinfo().

NOTA : Il est utile, pour vérifier la configuration et la manière dont PHP a été installé ou compilé, de placer dans son espace web un fichier (nommé par exemple phpconfig.php) et contenant juste une ligne :
<?php phpinfo(); ?>
Vous pourrez ensuite appeler cette page phpconfig.php chaque fois que vous aurez besoin de vérifier le paramétrage de PHP et notamment, dans ce cas qui nous intéresse, pour vérifier dans le paragraphe gd si PNG Support, JPG Support ou GIF Support sont marqués comme étant enabled (permis) ou non (disabled).

Notez au passage que si phpinfo(); précise JPG Support, la valeur à utiliser pour la clef imgtype peut indifféremment être jpeg ou jpg.

Si cette clef est absente ou commentée, le type d’image sera, par défaut, png.

Exemples :
imgtype=png
imgtype=jpg
imgtype=jpeg
imgtype=gif
Valeur par défaut : imgtype=png

indentsize

Syntaxe :
indentsize=nombre

Si les questions posées commencent sur le bord gauche de la fenêtre du navigateur, les propositions faites sont écrites avec un léger décalage vers la droite. Cette clef définit le nombre d’espaces insécables (&nbsp;) à utiliser entre le bord gauche de la fenêtre et le début de l’écriture des propositions. En quelque sorte, il définit la dimension de la marge gauche à utiliser pour les propositions.

Si cette clef n’est pas présente ou est commentée, indentsize sera égal à 8.

Exemples :
indentsize=10
Valeur par défaut : indentsize=8

insertpoint

Syntaxe :
insertpoint=caractère

Dans les questions de type 4 (sélection d’un élément dans une liste pour compléter une proposition), un caractère défini par la clef insertpoint marque l’endroit précis où la liste doit être insérée dans la proposition.

Dans les questions de type 5 (QROC) il y aura deux caractères d’insertion entre lesquels se trouvera un nombre représentant la longueur de la zone de saisie. Exemple : " ……… |5| ……… "

Dans les questions de type 5, il y a possibilité d'écrire une proposition qui sera effacée automatiquement lorsque le curseur sera positionné dans la zone de saisie. Il suffit d'écrire cette proposition entre les deux caractères d'insertion et derrière le nombre exprimant la largeur de cette zone de saisie, les deux informations étant séparées par une virgule : "... certains |6,geindre| comme ..."

Exemples :
insertpoint=
insertpoint=^
Valeur par défaut : insertpoint=| ("Alt-124" ou "Alt Gr-6")

language

Syntaxe :
language=code pays

En dehors du texte des questions qui sont rédigées dans une langue quelconque, quelques textes (boutons, tableaux de résultats, mails) sont exprimés en français. Si une autre langue doit être utilisée, il conviendra d’utiliser un fichier de langue en le précisant par cette clef.

Le nom du ficher de langue sera texts. suivi du code internet du pays suivi de .php ; exemple pour l’espagnol, le nom du fichier sera texts.es.php et pour l’italien texts.it.php. Pour réaliser un tel fichier, ouvrez le fichier texts.language.php fourni dans le package et traduisez les chaînes de caractères dans la langue de votre choix. Sauvegardez ensuite la traduction dans un fichier dont le nom respecte cette règle de nommage des fichiers de langue. (ex : texts.de.php pour l’allemand). Ce fichier devra être présent dans le répertoire du fichier questionnaire. Si une langue est définie par cette clef et que le fichier correspondant est manquant, le français sera utilisé.

Si cette clef n’est pas présente ou est commentée, language sera égal à fr.

Exemples :
language=en
language=it
Valeur par défaut : language=fr

logo

Syntaxe :
logo=none|(top[,bottom],|top|center|right,filename|url)

La clef logo permet l’affichage d’un logo ou d’une bannière dans la page de test.

Cette image peut être affichée avant, après ou avant et après le test. Les paramères top et bottom peuvent donc être mentionnés alternativement ou simultanément dans cette clef. En revanche, la position horizontale (gauche, centre et droite) ne peut être qu’alternative. Le nom de fichier ou l’URL du fichier image peut indifféremment être mentionné. L’ordre des paramètres est indifférent.

Si l’affichage d’une image a été demandé avant et après le test, les paramètres seront les mêmes pour les deux affichages (même image, même position horizontale).

Si cette clef n’est pas présente ou est commentée, logo sera égal à none et il n’y aura pas d’affichage.

Exemples :
logo=none
logo=top,right,http://www.qcmclass.fr/img/qcmbanner.png
logo=qcmbanner.png,top,bottom,center
Valeur par défaut : logo=none

mailto

Syntaxe :
mailto=adresse mail

Cette clef précise l’adresse mail à laquelle doivent être systématiquement expédiés tous les résultats générés et/ou les réponses faites à l’issue de l’utilisation du questionnaire (en général, le responsable centralisateur : professeur, formateur, chef de service ou enquêteur). Cette clef ne peut être utilisée que si la fonction mail() de PHP est opérante et si la machine sur laquelle le script est implanté peut envoyer de la messagerie SMTP.

Si cette ligne n’est pas présente ou est commentée, les résultats ne seront pas expédiés par mail au responsable centralisateur mais ils pourront cependant l’être au testé si la clef askfor contient l’élément mail.

Exemples :
mailto=pierre@fauque.net
Valeur par défaut : ;mailto=

maxtime

Syntaxe :
maxtime=HH:MM:SS

Cette clef définit la durée maximale considérée comme normale pour le questionnaire. Pour un questionnaire dont la durée considérée raisonnable par le concepteur pour y répondre est comprise entre 20 et 30 minutes, maxtime sera égal à 00:30:00. Cette clef n’est pas utilisée pour le test lui-même mais peut être utilisée lors de l’exploitation des résultats.

Si la durée mise pour renseigner le questionnaire est comprise entre mintime (clef ci-dessous) et maxtime, ces limites étant comprises, l’attribut outtime de la classe QCM restera positionné à 0. Si la durée est supérieure à maxtime, outtime sera positif (1).

$test = new qcm(17);
$test->correction();
echo $test->outtime; ⇒ -1
                     ⇒  0
                     ⇒  1

Exemples :
maxtime=00:30:00
maxtime=01:00:00
Valeur par défaut : ;maxtime=

mintime

Syntaxe :
mintime=HH:MM:SS

Cette clef définit la durée minimale considérée comme normale pour le questionnaire. Pour un questionnaire dont la durée considérée raisonnable par le concepteur pour y répondre est comprise entre 20 et 30 minutes, mintime sera égal à 00:20:00. Cette clef n’est pas utilisée pour le test lui-même mais peut être utilisée lors de l’exploitation des résultats.

Si la durée mise pour renseigner le questionnaire est comprise entre mintime et maxtime (clef ci-dessus), ces limites étant comprises, l’attribut outtime de la classe QCM restera positionné à 0. Si la durée est inférieure à mintime, outtime sera négatif (-1). Voir croquis au paragraphe maxtime.

Exemples :
mintime=00:20:00
Valeur par défaut : ;mintime=

org

Syntaxe :
org=texte

Cette clef définit le nom de l’organisation qui met en place le questionnaire. Cette information sera marquée dans la signature des mails qui seront éventuellement envoyés.

Exemples :
org=Ecole des Grands-Bois
Valeur par défaut : ;org=

ponderation

Syntaxe :
ponderation=0|1

On peut, lors d’un test, considérer que toutes les questions ont la même importance. Auquel cas, on comptera le nombre de bonnes réponses ou ce qui revient au même, on accordera 1 point à chaque bonne réponse. C’est le cas lorsque cette clef est égale à 0.

En revanche, si l’on veut donner des poids différents aux questions, pondérer les résultats, la clef ponderation devra être positionnée à 1. Dans ce cas, il faudra concevoir les questions en donnant à chacune d’elles un nombre de points correspondant au poids qu’on souhaite leur accorder (consulter le paragraphe / Les items > Les propriétés de l'item).

La valeur de la clef ponderation sera d’office positionnée à 0 si la clef goal a pour valeur opinion. Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 0.

Exemples :
ponderation=0
ponderation=1
Valeur par défaut : ponderation=0

release

Syntaxe :
release=mois année

Cette clef indique le mois et l’année de réalisation, de conception du questionnaire. Cette information sera affichée en bas du questionnaire.

Exemples :
release=sep 2004
Valeur par défaut : ;release=

save

Syntaxe :
save=none|file,fichier|serveur(mysql|postgresql),database,table,login,password

Les résultats aux tests peuvent ne pas être sauvegardés (save=none), ou être sauvegardés dans un fichier texte (save=file,filename) ; auquel cas il faudra indiquer le nom du fichier résultat. Dans cette éventualité, le fichier texte résultat (fichier dit "plat") devra être accessible en écriture. Ceci veut dire que si le script est placé sur une machine de type Unix/Linux, le répertoire contenant le fichier texte résultant et le fichier texte lui-même devront avoir les droits en écriture : chmod 777 sur le répertoire (drwxrwxrwx) ; chmod 666 sur le fichier (-rw-rw-rw-).

Il est possible aussi d’enregistrer les résultats dans une base de données (au choix : MySQL ou PostgreSQL). Dans ce cas, outre le type de serveur de base de données, il faudra indiquer le nom de la base de données, la table dans laquelle ranger les résultats ainsi que les login et password d’un utilisateur ayant accès en écriture à cette table de données. La structure de cette table est la suivante (commande de création MySQL) :

drop table if exists RTests;                       # Rtests = Résultats aux Tests
create table RTests (
  idtest   integer not null auto_increment,        # Identifiant du test
  date     datetime default '0000-00-00 00:00:00', # Date et heure du test
  lname    varchar(25) default '',                 # Nom du testé
  fname    varchar(30) default '',                 # Prénom du testé
  email    varchar(50) default '',                 # Email du testé
  tel      varchar(10) default '',                 # Téléphone du testé
  raddr    varchar(15) default '0.0.0.0',          # Adresse IP du testé
  idqcm    mediumint default '0',                  # Identifiant du QCM
  version  varchar(6) default '',                  # Version du QCM
  duration varchar(8) default '00:00:00',          # Durée du test en ligne
  nbq      tinyint default '0',                    # Nombre de questions dans le QCM
  nbca     tinyint default '0',                    # Nombre de réponses correctes
  nbia     tinyint default '0',                    # Nombre de réponses incorrectes
  nbna     tinyint default '0',                    # Nombre de non réponse
  skills   decimal(6,2) default 0.00,              # résultat global du testé
  detail   mediumtext default '',                  # Detail du résultat par catégorie
  fdetails mediumtext default '',                  # Questions et réponses faites
  primary  key(idtest)
) type=MyISAM comment='Table of online tests results';

Dans la définition de cette table, il faut bien faire la distinction entre idtest et idqcm :

idqcm est l’identifiant du qcm, du fichier questionnaire (exemple : questionnaire n° 17, contenant telle et telle question ⇒ nom du fichier qcm = qcm17.txt) alors que idtest est l’identifiant du test, de l’interrogation (exemple : résultat n° 318 correspondant à l’interrogation de telle personne ayant répondu à l'ensemble du questionnaire n° 17 tel jour à telle heure à partir de telle adresse IP).

Exemples :
save=none
save=file,resultats.txt
save=mysql,testsonline,resultats,webmaster,Jk3ZBs8A
save=postgresql,testsonline,resultats,webmaster,Jk3ZBs8A
Valeur par défaut : save=none

shownum

Syntaxe :
shownum=0|1

Cette clef indique s’il faut (1) ou s’il ne faut pas (0) afficher le numéro de la question lors de la présentation du questionnaire, la numérotation débutant à partir de 1.

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 0.

Exemples :
shownum=0
shownum=1
Valeur par défaut : shownum=0

showsender

Syntaxe :
showsender=0|1

Cette clef indique s’il faut (1) ou s’il ne faut pas (0) afficher le nom d’hôte de la machine à partir de laquelle le questionnaire est renseigné. Ce nom d’hôte viendra s’ajouter au numéro IP de la machine en question qui sera, dans tous les cas, affiché même si showsender est positionné à 0.

Ce nom d’hôte ne sera mentionné que s’il a pu être déterminé. Et il ne le sera que dans les en-têtes des mails envoyés et non dans les SMS.

Exemple de lignes d’en-tête de message :
From-IP : 90.2.247.80 (toujours affiché)
From-Host : atuileries-152-1-96-80-w90-2.abo.wanadoo.fr (si showsender=1)
 

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 0.

Exemples :
showsender=0
showsender=1
Valeur par défaut : showsender=0

showserver

Syntaxe :
showserver=0|1

Cette clef indique s’il faut (1) ou s’il ne faut pas (0) afficher le nom d’hôte et le numéro IP du serveur sur lequel le test est proposé.

Ces informations ne seront mentionnées que dans les en-têtes des mails envoyés.

Elle peut être intéressante quand un même test est proposé sur plusieurs serveurs. La personne centralisatrice des réponses pourra savoir que telle ou telle test a été faite sur tel ou tel serveur.

Exemple de lignes d’en-tête de message :
Server: www.qcmclass.fr (62.193.209.90)
 

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 0.

Exemples :
showserver=0
showserver=1
Valeur par défaut : showserver=0

showtitle

Syntaxe :
showtitle=0|1

Cette clef indique s’il faut (1) ou s’il ne faut pas (0) afficher le titre du questionnaire (voir la clef title), avant le questionnaire lui-même, en début de page. Même si showtitle est positionné à 0, il sera mentionné en pied de page après les boutons de validation.

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 0.

Exemples :
showtitle=0
showtitle=1
Valeur par défaut : showtitle=0

site

Syntaxe :
site=url du questionnaire

Cette clef définit l’URL du site à laquelle on trouvera le questionnaire. Elle sera probablement abandonnée dans les versions futures du script pour être remplacée par showurl=0|1. Lorsque l’exploitation de cette clef aura été abandonnée (si elle l’est), sa présence dans un en-tête ne sera pas génératrice d’erreur, elle sera tout simplement ignorée.

Exemples :
site=http://www.qcmclass.fr/demos
Valeur par défaut : ;site=

smsto

Syntaxe :
smsto=numéro de téléphone

Cette classe était initialement utilisée sur mon intranet professionnel, intranet qui servait de support à l'envoi de SMS. La possibilité d'envoi des résultats par SMS est désactivée et cette clef ne doit pas être utilisée sur Internet tout au moins avec cette version 2.19 de la classe QCM. Cette clef sera donc supprimée ou restera commentée.

Exemples :
smsto=0683485270
Valeur par défaut : ;smsto=

sqlserver

Syntaxe :
sqlserver=serveur:port

Voir la clef save. Si celle-ci précise qu’il faut sauvegarder les résultats dans une base de données, les serveurs de bases de données par défaut seront utilisés, en fonction du type de base de données choisi.

Pour le serveur de base de données MySQL, ce sera localhost sur le port 3306 ; pour le serveur PostgreSQL, ce sera localhost sur le port 5432. Si ces valeurs par défaut ne vous conviennent pas, il est possible de rajouter cette clef qui précisera ces deux informations adaptées à votre configuration séparées non pas par une virgule mais par par deux-points c’est à dire, la machine qui héberge le serveur de base de données (localhost, nom FQDN ou numéro IP) et le port sur lequel ce serveur attend les requêtes (host.domain.fr:port ne doit pas comprendre d’espace).

Si les valeurs par défaut conviennent (localhost:3306 pour le serveur MySQL ou localhost:5432 pour le serveur PostgreSQL), cette clef pourra ne pas être présente dans l’en-tête ou être commentée ou encore indiquer à nouveau ces mêmes valeurs par défaut ce qui ne provoquerait pas d’erreur mais serait inutile.

Si cette clef est absente ou est commentée les valeurs qui seront attribuées à ce paramètre dépendra du type de serveur SQL indiqué par la clef save. Si la clef save est définie comme save=mysql,... les valeurs de serveur seront positionnées à localhost:3306. Si la clef save et définie comme save=postgresql,... les valeurs de serveur seront positionnées à localhost:5432.

Exemples :
sqlserver=localhost:9013
sqlserver=sql.truc.com:7001
sqlserver=193.248.25.32:8003
Valeur par défaut : sqlserver=localhost:3306|localhost:5432 (dépend de la clef save)

starton

Syntaxe :
starton=JJ/MM/AAAA HH:MN

Il est possible de mettre en ligne à l’avance un questionnaire mais de ne le rendre accessible qu’à partir d’un moment donné. La clef starton définit le jour et l’heure à laquelle le questionnaire deviendra accessible. Il est recommandé de respecter la syntaxe indiquée car aucun test ne sera effectué pour la vérifier et la valeur indiquée sera directement exploitée. Si cette ligne n’est pas présente ou est commentée, il n’y aura pas de début d’accessibilité et le questionnaire sera toujours accessible à moins qu’il n’y ait une date et heure de fin et que celles-ci soient dépassées (clef stopon).

Les dates et heures utilisées sont celles du serveur sur lequel se trouve le questionnaire.

Exemples :
starton=16/09/2013 09:00
Valeur par défaut : ;starton=

stopon

Syntaxe :
stopon=JJ/MM/AAAA HH:MN

En vue de savoir quand commencer l’exploitation des résultats, il est possible de définir une date de fin pour l’utilisation du questionnaire. La clef stopon définit le jour et l’heure à laquelle le questionnaire cessera d’être accessible. Il est recommandé de respecter la syntaxe indiquée car aucun test ne sera effectué pour la vérifier et la valeur indiquée sera directement exploitée. Si cette ligne n’est pas présente ou est commentée, il n’y aura pas de fin d’accessibilité et le questionnaire sera toujours accessible à moins qu’il y ait une date et heure de début et que celles-ci soient futures (clef starton).

Les dates et heures utilisées sont celles du serveur sur lequel se trouve le questionnaire.

Exemples :
stopon=16/09/2013 12:00
Valeur par défaut : ;stopon=

threshold

Syntaxe :
threshold=nombre décimal

Cette clef définit le seuil à atteindre ou à dépasser pour réussir le test. Par exemple, si threshold=75, le test sera considéré comme réussi si le résultat général est supérieur ou égal à 75%. Si cette ligne n’est pas présente, il n’y aura pas de seuil de réussite défini ou, ce qui revient au même, sa valeur sera égale à 0.

Définir une compétence au centième près paraît complètement irréaliste. Aussi, bien que pour cette raison un seuil de 75.83% ne semble pas véritablement réaliste mais néanmoins techniquement applicable, s’il était nécessaire d’utiliser des décimales pour la définition du seuil, le séparateur décimal à utiliser devra être le point et non la virgule.

La valeur de la clef threshold sera d’office positionnée à 0 si la clef goal a pour valeur opinion.

Exemples :
threshold=75
threshold=75.50
Valeur par défaut : threshold=0

title

Syntaxe :
title=texte

Cette clef définit le titre du questionnaire. C’est ce titre de questionnaire qui sera utilisé dans la page (si la clef showtitle a été définie à 1) ainsi que dans les éventuels mails et/ou les graphiques.

A propos de graphique, la largeur de ceux-ci est calculée en pixels de la manière suivante :

Exemple : 5 catégories définies, graphique histogrammes demandé : 250 + (50 x 5) = 500 pixels

Cette information est fournie pour attirer l’attention afin d’éviter de choisir des titres trop longs pour les questionnaires comportant peu de catégories. Dans ce cas (texte trop long par rapport à la largeur de l’image), le titre sera tronqué.

Exemple :
title=Test d’accès à la formation de developpeur
Valeur par défaut : ;title=

urlback

Syntaxe :
urlback=url

Après qu’une personne ait répondu au questionnaire, si vous souhaitez afficher un bouton [Quitter] permettant d’envoyer celle-ci à une adresse déterminée, il vous faudra définir cette adresse de retour grâce à la clef urlback.

Exemples :
urlback=http://www.qcmclass.fr
Valeur par défaut : urlback=#

userlist

Syntaxe :
userlist=none|file,nom de fichier

Selon les contextes d’utilisation, les personnes interrogées ne sont pas toujours volontaires pour "subir" un test et l’on a déjà vu, lors de tests, des gens guère enthousiastes à l’idée de se faire évaluer s’identifier comme étant "Bill GATES". Pour éviter des saisies fantaisistes, on a la possibilité de ne pas afficher de zones de saisie mais d’afficher une liste déroulante dans laquelle la personne interrogée ne peut pas saisir un nom (parfois farfelu) mais en choisir un, le sien de préférence. Il est toutefois difficile de vérifier le bien fondé d’un choix dans une liste. Les risques liés à ce dernier point seront toutefois diminués dans une future version dans la mesure où le nom de la personne ayant répondu au questionnaire disparaîtra de la liste.

Si l’on veut afficher les zones de saisie d’identité, la clef userlist devra être absente, commentée ou égale à none et la clef askfor devra au moins contenir l’élément name. S’il faut afficher une liste déroulante, la clef userlist sera égale à file suivi et séparé par une virgule du nom du fichier contenant la liste à afficher.

Le fichier en question sera un ficher texte situé dans le même répertoire que le fichier qcm, chaque personne sera écrite sur une ligne distincte et chaque ligne comprendra trois champs (nom;prénom;genre) séparés par un point virgule. Exemple de fichier :

DUPONT;Jean;M.
DUPONT;Marc;M.
DUBROVNICK;Ildiko;Mme
DUVAL;Aliénor;Mlle;
HOAREAU;Marianne;Mme
MOREAU;Isabelle;Mlle
etc...
 

Si la clef userlist est paramétrée avec la valeur file, la clef askfor sera vérifiée. Dans ce cas, si cette dernière ne contient pas l’élément name, ce dernier sera automatiquement rajouté ou remplacera l’élément none.

Exemples :
userlist=none
userlist=file,eleves6b.txt
Valeur par défaut : userlist=none

version

Syntaxe :
version=nombre decimal

Un questionnaire peut évoluer. La clef version indique le numéro de version de ce questionnaire. La plupart du temps, ce sera 1 ou 1.0 mais au fil du temps les questions pourront être précisées, reformulées et les numéros de versions du questionnaire pourront évoluer en 1.1, 1.2, 2.0, 2.1, etc… On ne peut, en effet, comparer des résultats que s’ils portent rigoureusement sur la même interrogation. Cette information sera affichée en bas du questionnaire.

Exemple :
version=1.2
Valeur par défaut : ;version=

youtube

Syntaxe :
youtube=largeur,hauteur

Il est possible dans un item d’insérer une vidéo se trouvant sur YouTube. Ce paramètre permet de fixer les dimensions qui devront être utilisées pour afficher toutes vidéos YouTube définies dans le questionnaire. Il ne modifie pas les dimensions des vidéos diffusées avec le lecteur de vidéo flv définies à la clef
dewtube ni celles définies pour les vidéos Dailymotion.

Les dimensions définies par défaut sont au ratio 4:3

Si cette clef est absente ou est commentée la valeur qui sera attribuée à ce paramètre sera 384,288.

Pour la rédaction d'items multimédia, consulter : / Les items > Les items multimédia

Exemples :
youtube=384,288
youtube=512,384
Valeur par défaut : youtube=384,288
Mise à jour le 10/09/2015 à 10:45:50