PHPSurveyor (V0.993)
Documentation

INDEX

- Installation

  - FAQ de l'installation

  - Manuel d'installation avec OS/2 Warp

- Notes concernant la sécurité

- Création et structure d'un questionnaire

- Création de questionnaires

  - Créer un nouveau questionnaire

  - Importer un questionnaire

  - Créer un nouveau groupe

  - Ajouter une question

    - Attributs des questions
    - Validation

  - Créer des conditions

  - Ajouter des réponses

  - Exporter un questionnaire

- Modèles

  - L'éditeur de modèles de PHPSurveyor

- Traduction

- Activation d'un questionnaire

- Mettre en ligne un questionnaire de manière sécurisée

- Parcourir les résultats d'un questionnaire

- Invitations

- Entrée de données

- Exportation des résultats

- Statistiques

- Licence

Installation

1. Vous assurez que vous pouvez installer PHPSurveyor sur votre site web
Vous avez besoin d'un accès à votre serveur web, avec PHP 4.1.0 ou supérieur et un accès à une base de données MySQL. Vous aurez besoin d'environ 2 à 2.5 Mo de place sur le disque pour les fichiers.

2. Téléchargez le paquetage PHPSurveyor
Visitez le site SourceForge pour télécharger la dernière version de PHPSurveyor : http://sourceforge.net/projects/phpsurveyor/
Le paquetage a une taille de 300 à 400 ko. Téléchargez le fichier ZIP et sauvegardez-le sur votre disque local.

3. Décompressez le paquetage PHPSurveyor
Décompressez le fichier ZIP dans un répertoire/dossier dédié en utilisant votre programme de décompression préféré. Assurez-vous que ce programme décompresse en recréant la structure des dossiers avec les fichiers (c'est le comportement par défaut de la plupart des programmes de décompression). Vous devez avoir la structure des dossiers suivante :

/phpsurveyor* | /templates | /default |
|  | /edgyblue |
|  | /bubblegum |
| /lang |  |
| /tmp |  |
| /admin | /images |
|  | /lang | /english
|  | /classes |
*le nom de dossier dédié choisi

Permissions des dossiers
Les scripts nécessitent des droits d'écriture dans le dossier admin pour pouvoir importer des questionnaires. Le dossier "/phpsurveyor/tmp" est utilisé pour les téléchargements et doit être en lecture/écriture/exécution pour tous. Dans Linux ou Unix il doit être "chmodé" en 777. Si vous voulez utiliser PHPSurveyor pour contrôler la sécurisation de dossiers d'Apache (HTACCESS), le dossier /phpsurveyor/admin doit être en lecture/écriture/exécution pour tous - sous Linux/Unix "chmod 777". Si vous envisagez de mettre en place la sécurisation de dossiers d'Apache en utilisant une autre méthode (exemple : manuellement ou en utilisant un outil d'administration de site web) vous pouvez laisser ce dossier en lecture/écriture - chmod 755. Les autres dossiers peuvent être en lecture seule - sous Linux/Unix chmod 755. Vous devrez changer les permissions de chaque fichier dans le dossier /phpsurveyor/admin en 755.

4. Récupérez les informations sur votre serveur web
Vous devez connaître les informations suivantes pour installer correctement PHPSurveyor sur votre serveur web.

- L'adresse du serveur web sur lequel seront installés les fichiers du programme (exemple : 'http://mon.domaine.com/phpsurveyor').

- L'emplacement physique des fichiers du programme sur votre serveur web (exemple : '/home/usr/htdocs/phpsurveyor').

- L'adresse de votre serveur de base de données MySQL (exemple : 'localhost').

- Le port de votre serveur MySQL s'il n'utilise pas le port standard.

- Votre nom d'utilisateur et votre mot de passe sur le serveur MySQL.

- Si votre serveur web est hébergé sur un système d'exploitation Windows, l'emplacement des exécutables MySQL (exemple : 'c:/mysql/bin').

5. Configurez PHPSurveyor
Editez le fichier config.php qui se trouve dans le dossier /phpsurveyor/admin avec votre éditeur texte préféré. Les paramètres suivants doivent être ajustés :

- $databaselocation : Défini l'adresse de votre serveur MySQL. Dans la plupart des cas "localhost" fonctionnera.

- $databaseport : Défini le port du serveur MySQL. Dans la plupart des cas, il s'agit de "3306" (valeur par défaut des serveurs MySQL).

- $databasename : Le nom de la base de données qui sera utilisée pour PHPSurveyor. Si vous avez les permissions suffisantes sur votre serveur MySQL, vous pouvez créer la base de données depuis PHPSurveyor. Dans ce cas, c'est ce nom qui sera utilisé. Ou bien, vous pouvez utilisez le nom d'une base de données créée au préalable sur le serveur MySQL.

- $databaseuser : Votre nom d'utilisateur pour le serveur MySQL

- $databasepass : Votre mot de passe pour le serveur MySQL

- $databasetabletype : Le type de tables à utiliser par défaut lors de leur création - Par défaut il s'agit de "MyISAM".

- $useidprefix : La valeur par défaut est 0 (zéro). Si vous mettez ce paramètre à 1 (un), les réponses à un questionnaire comprendront un préfixe, défini par le paramètre "$idprefix" ci-dessous, dans leur numéro unique d'identification. Vous pouvez utiliser ce paramètre si vous avez plusieurs copies de PHPSurveyor qui utilisent le même questionnaire et que vous voulez, plus tard, fusionner les résultats de ces différentes copies dans une table des réponses unique.

- $idprefix : Le préfixe à ajouter à l'identifiant unique de chaque réponse sur ce serveur.

- $rooturl : Défini l'adresse des fichiers de PHPSurveyor. La valeur par défaut essayera de la détecter pour vous. Dans la plupart des cas vous ne devrez rien changer ici (la section {$_SERVER['SERVER_NAME']} essaie de faire cela automatiquement). Si cela ne fonctionne pas, entrez manuellement l'adresse - par exemple "http://www.mydomain.com/phpsurveyor".

- $rootdir : Défini l'emplacement physique des fichiers de PHPSurveyor. La valeur par défaut essayera de le détecter pour vous. Dans la plupart des cas vous ne devrez rien changer ici (la section {$_SERVER['DOCUMENT_ROOT']} essaie de faire cela automatiquement). Si cela ne fonctionne pas, entrez manuellement l'emplacement physique des fichiers - par exemple "/home/public_html/phpsurveyor".

  - Les emplacements définis ci-après fonctionneront sans modification dans le cas d'une installation standard de PHPSurveyor (c'est à dire que vous utilisez la structure des dossiers par défaut de PHPSurveyor). Donc ne modifiez ces valeurs que si vous avez renommé certains dossiers.

  - $homeurl : Défini l'adresse de vos scripts d'administration. Ce sont les scripts qui se trouvent dans le dossier /phpsurveyor/admin. Il doit faire référence à l'adresse du site web - par exemple "http://www.mydomain.com/phpsurveyor/html/admin". N'ajoutez pas de slash (/) à la fin de cette adresse. La valeur par défaut dans config.php essaie de détecter automatiquement le nom de votre serveur web en utilisant la variable PHP {$_SERVER['SERVER_NAME']}. Dans la plupart des cas, vous pouvez laisser cette variable ainsi et ne modifier que le reste de cette adresse pour refléter le nom du dossier où se trouvent les fichiers de PHPSurveyor.

  - $publicurl : Défini l'adresse des "scripts généraux". Ces scripts généraux sont ceux placés dans le dossier "phpsurveyor" (à ajuster en fonction du choix fait pour le nom de dossier dédié à l'installation de PHPSurveyor et qui contient tous les autres dossiers et fichiers).

  - $tempurl : Défini l'adresse du dossier "/phpsurveyor/tmp" - ou un autre dossier qui sera utilisé par PHPSurveyor pour stocker les fichiers temporaires et ceux téléchargés. Ce dossier doit être en lecture/écriture/exécution pour tous (chmod 777)

  - $imagefiles : Défini l'adresse du dossier des images et icônes utilisés par PHPSurveyor - par exemple "/phpsurveyor/admin/images". Vous pouvez souhaiter déplacer ces images vers un autre emplacement ; dans ce cas indiquez ici l'adresse du dossier qui les contient.

  - $homedir : Défini l'emplacement physique sur le disque des scripts d'administration - par exemple "/home/usr/htdocs/phpsurveyor/admin". N'ajoutez pas de slash (/) à la fin de cet emplacement. La valeur par défaut dans config.php essaie de détecter automatiquement le dossier racine de vos documents en utilisant la variable PHP {$_SERVER['DOCUMENT_ROOT']}. Dans la plupart des cas, vous pouvez laisser cette variable ainsi et ne modifier que le reste de cet emplacement pour refléter le nom du dossier où se trouvent les fichiers de PHPSurveyor.

  - $publicdir : Défini l'emplacement physique sur le disque des "scripts généraux".

  - $tempdir : Défini l'emplacement physique du dossier temporaire "/phpsurveyor/tmp" dans lequel les scripts pourront lire et écrire des fichiers.

- $sitename : Défini le nom qui sera affiché dans les pages d'administration de votre site. Nommez le comme vous le souhaitez (exemple : "Mes questionnaires en ligne")

- $scriptname : Laissez la valeur "admin.php" tant que vous n'avez pas changé le nom du script principal d'administration. Si vous préférez que votre script principal d'administration s'appelle "index.php", vous pouvez renommer le fichier admin.php en index.php et mettre à jour ce paramètre avec la valeur "index.php" pour que PHPSurveyor le prenne en compte.

- $accesscontrol : Défini si PHPSurveyor essaie de gérer les paramètres de contrôle d'accès pour vous. La valeur "1" active cette fonctionnalité et la valeur "0" la désactive. Si vous désactivez cette fonctionnalité ici, cela ne vous empêche pas d'utiliser les possibilités de sécurisation offertes par votre serveur web ; cela signifie juste que PHPSurveyor n'essayera pas de les détecter et de les gérer. Si vous utilisez un serveur web différent d'Apache vous devez mettre cette valeur à "0".

- $defaultuser : Quand la fonctionnalité de contrôle est activée, cela défini le nom d'utilisateur par défaut que PHPSurveyor utilisera quand vous initialiserez la sécurité pour la première fois.

- $defaultpass : Quand la fonctionnalité de contrôle est activée, cela défini le mot de passe par défaut que PHPSurveyor utilisera quand vous initialiserez la sécurité pour la première fois.

- $siteadminemail : L'adresse mail de l'administrateur du site.

- $siteadminname : Le nom de l'administrateur du site.

- $surveyfaxnumber : Le numéro de fax utilisé pour les "questionnaires en version imprimable".

- $dropdowns: Les valeurs possibles sont "L" ou "R". Si vous mettez la valeur "R", les questions de type Liste seront affichées avec des boutons Radio, tandis qu'en mettant la valeur "L", les questions de type Listes seront affichées avec une liste déroulante.

- $lwcdropdowns : Cela fonctionne de la même façon que précédemment mais pour les questions de type "Listes avec commentaire".

- $dropdownthreshold : Si vous avez choisi la valeur "R" pour "$dropdowns", cette valeur vous permet de spécifier le nombre maximum de réponses à présenter sous forme de boutons radio avant d'utiliser des listes déroulantes. Si vous avez des questions avec de nombreux choix de réponses, les afficher sous forme de boutons radio peut alourdir l'affichage de votre questionnaire et perturber les personnes qui y répondront. En définissant ce maximum, par exemple, à 25 (qui est la valeur par défaut), les longues listes de réponses possibles seront plus faciles à utiliser par les participants à vos questionnaires.

- $repeatheaders : Avec les questions de type "Ligne de ...", vous pouvez avoir plusieurs réponses qui s'afficheront sur plusieurs pages. Le paramètre "$repeatheaders" vous permet de spécifier combien de réponses seront affichées avant de répéter les entêtes de la question. Une bonne valeur est autour de 15. Si vous ne souhaitez pas répéter les entêtes des colonnes, mettez "0" (valeur par défaut).

- $maxemails : Quand vous envoyez des mails d'invitation ou de rappel aux participants, ce paramètre définit le nombre de mails à envoyer en un lot. Les capacités de mailing des serveurs web diffèrent d'un logiciel à l'autre, et si vos scripts prennent trop de temps à envoyer un lot de mails, ils peuvent faire des "time out" et causer des erreurs. La plupart des serveurs web peuvent envoyer une centaine de mails dans le temps imparti pour l'exécution d'un script PHP (30 secondes par défaut). Si vous avez des erreurs de type "time out" quand vous générez des envois massifs de mails, réduisez cette valeur.

- $defaultlang : Défini la langue utilisée pour les pages d'administration de PHPSurveyor et la langue par défaut des questionnaires. Vous pouvez changer cette valeur pour les questionnaires dans la page d'administration du questionnaire.

- $OS : Ne touchez pas à ce paramètre. Il détecte le système d'exploitation de votre serveur web.

- $apachedir : Défini l'emplacement de l'exécutable “htpasswd”. Si votre serveur web est sous Linux/Unix et que vous laissez ce paramètre vide (“”;), PHPSurveyor essayera de le localiser automatiquement. Les serveurs web sous Windows ont besoin de cet emplacement pour que cela fonctionne (exemple : $apachedir = “c:/program files/apache group/apache/bin”;).

- $mysqldir : Défini l'emplacement des exécutables du serveur MySQL (en particulier, “mysqldump”). Si votre serveur web est sous Linux/Unix et que vous laissez ce paramètre vide (“”), PHPSurveyor essayera de le localiser automatiquement. Les serveurs web sous Windows ont besoin de cet emplacement pour que cela fonctionne (exemple : $mysqldir = “c:/mysql/bin”;)

- $timeadjust : Si vous serveur web est dans un fuseau horaire différent de celui d'où seront remplis vos questionnaires, indiquez ici la différence entre le fuseau horaire du serveur web et le vôtre. Par exemple, je vis en Australie mais j'utilise un serveur web aux Etats-Unis. Le fuseau horaire du serveur web est 14 heures derrière le mien. Ainsi, la valeur à mettre dans ce cas est "14". En d'autres termes, cela ajoute 14 heures aux heures renvoyées par le serveur web. Ce paramètre est particulièrement important quand les questionnaires utilisent des réponses datées.

- $dbprefix : Laissez ce paramètre vide ($dbprefix="";) si vous avez une base de données spécifique pour PHPSurveyor. Si vous voulez partager une base de données entre PHPSurveyor et une autre application, ajoutez un préfixe grâce à ce paramètre. Dans ce cas, le préfixe recommandé est "phpsv_", mais vous pouvez mettre ce que vous souhaitez.

- $allowmandbackwards : Si vous mettez la valeur "1" pour ce paramètre, cela permettra aux participants de retourner à une question précédente même s'ils n'ont pas répondu à une question obligatoire. Si vous mettez la valeur "0", les participants devront d'abord répondre à cette question obligatoire avant de retourner à une précédente question.

- $deletenonvalues : C'est un paramètre difficilement explicable. Avec la valeur "0" : si une question (appelons la question "b") est affichée de manière conditionnelle (exemple : basée sur la réponse à une précédente question - appelons la question "a"), et qu'un participant réponde à cette question (question "b"), puis revienne en arrière et change sa réponse à la précédente question (question "a") de telle façon que cette question (question "b") ne s'affiche plus, le programme se souviendra et enregistrera une réponse pour une question qui n'existe plus (question "b"). Je préfère généralement ce mode de fonctionnement car il est toujours intéressant de savoir ce qui aurait pu être répondu. Mais si vous souhaitez que le programme soit logique et ne stocke pas de réponses à des questions qui ne seraient pas affichées, changez ce paramètre à "1".

- $shownoanswer : Quand une question de type "boutons radio" ou sélection qui contient des réponses pré enregistrées (exemple : question de types "Liste", "Liste de ...") n'est pas obligatoire et que "$shownoanswer" vaut 1, une réponse supplémentaire - "N/A" - sera affichée pour que les participants puissent ne pas répondre à cette question. Certains ne souhaitent pas que cela soit possible. Mettez "0" pour désactiver cette fonctionnalité.

- $usejpgraph : Si vous avez correctement configuré la classe "jpgraph" (http://www.aditus.nu/jpgraph/) sur votre serveur, vous pouvez activer cette fonctionnalité (1=activé, 0=désactivé) et le script de statistiques affichera des graphiques de type camembert dans le résumé des statistiques. Cette fonctionnalité est toujours en développement donc attendez-vous parfois à des résultats bizarres.

- $jpgraphdir : L'emplacement physique sur le disque des fichiers de "jpgraph". Ce paramètre n'est nécessaire que si "$usejpgraph" vaut 1.

- $btstyle : Vous pouvez généralement laisser la valeur par défaut. Elle définit le style CSS par défaut des boutons dans les scripts d'administration.

- $slstyle: Vous pouvez généralement laisser la valeur par défaut. Elle définit le style CSS par défaut des entrées de texte.

6. Envoyez les fichiers sur votre serveur web.
En utilisant votre client FTP, connectez vous à votre serveur web et créez un dossier dans lequel vous placerez les fichiers du programme. Envoyez dans ce dossier les différents fichiers de PHPSurveyor en respectant la structure des dossiers.

7. Connectez-vous à la page d'administration pour la première fois.
Après avoir envoyé les fichiers, vous êtes prêt à utiliser PHPSurveyor depuis votre navigateur web. Ouvrez votre navigateur et entrez l'adresse vers le fichier "admin.php". En supposant que vous avez utilisé "phpsurveyor" comme nom de dossier dédié, cela ressemblera à "http://votre.domaine.com/phpsurveyor/admin/admin.php"
La première fois que vous utiliserez PHPSurveyor, le programme se connectera à la base mentionnée dans le fichier config.php. Si la structure des tables n'est pas encore conforme, PHPSurveyor affichera un bouton qui vous permettra de créer les tables nécessaires dans la base de données. Si vous avez des difficultés avec cela, vous devrez utiliser un gestionnaire de base de données (comme phpMyAdmin) et exécuter le fichier de script SQL "maketables.sql" inclus dans le paquetage. Une fois les tables créées, vous pourrez utiliser PHPSurveyor.

8. Que faire en cas de problèmes.
Comme tous les programmes, la plupart des choses fonctionneront comme décrites dans les instructions mais parfois ce ne sera pas le cas. Il y a trop de raisons possibles pour ne pas arriver au résultat décrit ici. Si vous avez des problèmes, postez sa description et les messages d'erreur renvoyés dans le forum de PHPSurveyor sur SourceForge.net en espérant que quelqu'un puisse vous aider.

FAQ DE L'INSTALLATION
Que faire si "safe_mode" est à "on" sur mon serveur ? Si "safe_mode" est à "on" sur votre serveur web (une option de sécurité sensible) vous ne pourrez pas utiliser certaines fonctionnalités incluses dans PHPSurveyor. Cela inclut, la possibilité de créer et gérer la sécurisation de dossiers sous Apache et la possibilité de faire un dump complet des réponses aux questionnaires. Aucune de ces fonctionnalités n'est indispensable au bon fonctionnement de PHPSurveyor mais elles sont là pour vous faciliter la vie : vous pouvez gérer manuellement la sécurisation des dossiers sous Apache et pouvez utiliser un outil de gestion de base de données comme phpMyAdmin pour dumper les réponses de la base MySQL. Que faire si je ne peux pas créer une base de données depuis un script ? Normalement, le script crée une nouvelle base de données et ensuite les différentes tables. Cependant, si votre administrateur du serveur web ou FAI ne vous a pas donné les droits pour créer une nouvelle base de données MySQL, vous devrez les contacter pour qu'ils créent la base de données nécessaire. Ils devront créer une base de données vierge et vous donner les droits d'accès appropriés pour cette base (exemple : read/write/create). Entrez le nom de la base de données, le nom d'utilisateur et le mot de passe pour s'y connecter dans le fichier "config.php", et lancez le script "admin.php". Le script va ainsi créer toutes les tables nécessaires dans la base de données. Quelles permissions faut-il définir ? Le dossier "/phpsurveyor/tmp" doit avoir des droits totaux en lecture/écriture/exécution (chmod 777) - ce dossier est l'endroit où seront placés les fichiers envoyés et les fichiers temporaires. Tous les autres dossiers et fichiers ne nécessitent que des droits en lecture/exécution (chmod 755) sauf si vous voulez utiliser la sécurisation de dossiers incluse dans PHPSurveyor (pour créer les fichiers htpasswd et htaccess) ; dans ce cas, le dossier "admin" doit avoir des droits en lecture/écriture/exécution (chmod 777). Cependant, les fichiers qui s'y trouvent ne nécessitent que des droits de lecture/exécution (chmod 755).

Notes concernant la sécurité

PHPSurveyor utilise le mécanisme de sécurisation des dossiers du serveur web Apache. Il n'y pas d'autre mécanisme de sécurité que celui-ci. Cette sécurité est souvent suffisante ; cependant si la sécurité est un élément important pour vous, vous devrez regarder la configuration du serveur web Apache sur leur site. L'auteur de ce programme ne pourra être tenu responsable des éventuels problèmes liés à la sécurité. En résumé, vous pouvez considérer ce programme peu sûr tant que vous n'avez pas pris d'autres mesures.

Si vous n'utilisez pas Apache (par exemple, vous utilisez Microsoft IIS) vous devrez désactiver le paramètre de sécurité ($accesscontrol = 0) dans le fichier "config.php" et mettre en place la sécurité désirée grâce à IIS.

Permissions de fichiers sous Linux
Si vous utilisez un serveur Linux vous devez utilisez les permissions de fichiers suivantes :

- pour le dossier "phpsurveyor" (ou ce que vous avez choisi) - chmod 755 (lecture, exécution pour tout le monde)

- pour les fichiers dans le dossier "phpsurveyor" - chmod 755 (lecture, exécution pour tout le monde)

- pour le dossier "tmp" - chmod 777 - ce dossier sera vide à la création et est utilisé pour conserver les fichiers envoyés, les images créées par jpgraph et les modèles temporaires du nouvel éditeur de modèles.

- pour le dossier "admin" - chmod 777 (lecture, écriture, exécution pour tout le monde) ou chmod 755 (lecture/exécution)
  Ce dossier a besoin d'une permission en écriture pour la création des fichiers .htpasswd et .htaccess. Si vous envisagez (ou avez besoin) de définir manuellement les paramètres de sécurité, vous pouvez mettre 755.

- pour les fichiers dans le dossier "admin" - chmod 755 (lecture, exécution pour tout le monde)
  Les fichiers standards de ce dossier ne nécessitent aucun droit en écriture ; en fait, ils ne devraient pas en avoir car il n'y a aucune raison de les changer durant l'utilisation du programme.

Permissions de fichiers sous Windows
Si vous utilisez un serveur Windows, vous devez vous assurer que les droits mis sur le dossier "admin" permettent à l'utilisateur qui lance le serveur web d'y créer des fichiers. Cependant les autres fichiers peuvent être mis en en lecture seule et exécution.

Autres notions autour de la sécurité
Le fichier config.php contient un nom d'utilisateur et un mot de passe pour vous connecter à la base MySQL. Cela peut poser quelques problèmes de sécurité, en particulier si cet utilisateur dispose de privilèges importants sur le serveur MySQL. Par conséquent, vous devez au minimum utiliser la fonctionnalité de sécurité de PHPSurveyor pour protéger par mot de passe le dossier "admin". Une autre chose envisageable pour réduire les risques est de créer une base de données séparée et un utilisateur avec des droits uniquement sur la base de données de PHPSurveyor.

La meilleure façon de sécuriser ces informations seraient de mettre le fichier "config.php" dans un dossier non affichable par le serveur web. Pour les utilisateurs d'Apache cela signifie de le mettre dans un dossier de niveau supérieur au dossier htdocs. Je n'ai pas testé le programme dans une telle configuration mais ne vois pas pourquoi cela ne fonctionnerait pas. Si vous faites ainsi, vous devrez modifier chaque fichier .php du programme pour changer la ligne (au début des fichiers) qui ressemble à `include ("config.php");` pour faire apparaître le chemin vers votre fichier "config.php" (exemple : `include("c:/program files/apache group/apache/phpsafe/config.php");`). Comme je l'ai dit, cela n'a pas été testé et si vous essayez, vous pouvez me faire part de vos remarques (mail à jason-chez-cleeland.org). Les prochaines versions de PHPSurveyor implémenteront un moyen plus simple pour désigner l'emplacement de ce fichier.

Création et structure d'un questionnaire

Un questionnaire dans PHPSurveyor a trois éléments essentiels. Chaque questionnaire doit avoir :

- un nom de questionnaire

- au moins un groupe

- au moins une question

Les éléments optionnels sont :

- une liste de réponses (pré enregistrées) pour certains types de questions

- des étiquettes modifiables

- des conditions qui déterminent si une question doit être affichée ou non.

Le paramètre nom du questionnaire est plus qu'explicite. C'est le nom du questionnaire et l'endroit où peuvent être définies diverses options générales relatives à ce questionnaire. Les options telles que le "message de bienvenue", la "description" du questionnaire, les informations sur l'administrateur du questionnaire, le format d'affichage du questionnaire apparaissent ici.

Chaque questionnaire est divisé en groupes. Cela permet d'avoir une organisation logique du questionnaire en groupant des questions similaires au sein d'un même groupe. Un groupe possède un titre et une description optionnelle. Vous devez avoir au moins un groupe dans chaque questionnaire même si vous ne souhaitez pas le diviser en plusieurs groupes.

Les questions forment le cœur de votre questionnaire et sont rassemblées dans des groupes comme expliqué ci-dessus. Il n'y a aucune limitation technique concernant le nombre de questions dans un questionnaire ou le nombre de questions par groupe. Les questions incluent le libellé de la question ainsi que d'autres paramètres qui détermineront le genre de réponse attendue. Vous pouvez aussi inclure une petite aide explicative pour chaque question et préciser si la réponse est obligatoire (c'est à dire qu'une réponse est obligatoire pour pouvoir continuer le questionnaire).

Types de questions
Les différents types de questions offertes par PHPSurveyor sont les suivantes :

- Alignement de 5 boutons radio :
  Permet d'évaluer la question de 1 à 5.
  Ex : Aimez-vous les oeufs au plat (1 pour pas du tout, 5 pour énormément)

- Date :
  Permet de demander une date.
  Ex : Quel est votre date d'anniversaire

- Genre :
  Permet de questionner le participant sur son genre.
  Ex : Etes-vous un homme ou une femme ?

- Bouton radio :
  Permet de définir une série de réponses/options parmi lesquelles le participant n'en choisira qu'une seule.
  Ex : Où dormez-vous ?
  Lit
  Divan
  Par terre

- Liste déroulante avec commentaire
  Permet de définir une série de réponses/options parmi lesquelles le participant n'en choisira qu'une seule. La question comprend une zone de commentaire pour que le participant explique son choix.
  Ex : Où dormez-vous ? Expliquez pourquoi vous dormez là.
  Lit
  Divan
  Par terre

  Commentaire :

- Case à cocher
  Permet de définir une série de réponses/options parmi lesquelles le participant choisira celles qui conviennent (exemple : aucune, une réponse ou plusieurs).
  Ex : Où pouvez-vous dormir ? (choisissez toutes les réponses qui vous conviennent)
  Lit
  Divan
  Par terre

- Case à cocher avec commentaire
  Permet de définir une série de réponses/options parmi lesquelles le participant choisira celles qui conviennent (exemple : aucune, une réponse ou plusieurs) et une zone de commentaire permettant d'expliquer son ou ses choix.
  Ex : Où pouvez-vous dormir ? (choisissez toutes les réponses qui vous conviennent). Expliquez chacun de vos choix.
  Lit
  Divan
  Par terre

  Commentaire :

- Zone de texte court multilignes
  Permet de demander plusieurs courtes réponses texte au participant à propos de sujets pré enregistrés.
  Ex : Quels sont vos 3 livres préférés ?
  Livre 1
  Livre 2
  Livre 3

- Entrée numérique
  Permet de définir une question dont la réponse sera un nombre. Ce genre de question n'accepte que les caractères suivants : 1 2 3 4 5 6 7 8 9 0 , .
  Ex : Quel âge avez-vous ?

- Classement
  Permet au participant de classer par ordre de préférence une série de réponses/options.
  Ex : Classer ces films par ordre de préférence

- Zone de texte court
  Permet d'enregistrer une réponse libre courte (100 caractères maximum).

- Zone de texte long
  Permet d'enregistrer une réponse libre longue.

- Oui/Non
  Permet de définir des questions dont la réponse ne peut être que oui ou non.

- Ligne de 5 boutons radio
  Permet de présenter au participant une liste de réponses/options pour qu'il les évalue de 1 à 5.
  Ex : Que pensez-vous de ces affirmations ? (1=Tout à fait d'accord, 5=Pas du tout d'accord)
  - les éléphantes sont plus beaux avec de grandes oreilles 1 2 3 4 5
  - l'hémisphère sud est agréable 1 2 3 4 5
  - les oreilles font mal quand il fait froid 1 2 3 4 5

- Ligne de 10 boutons radios
  La même chose que ci-dessus mais en évaluant de 1 à 10

- Ligne (Oui/Non/Indifférent)
  Permet de présenter au participant une liste de réponses/options pour lesquelles il ne pourra répondre que "Oui", "Indifférent" ou "Non".
  Ex : Etes-vous d'accord avec les propositions suivantes :
  - Tout le personnel doit être habillé en noir Oui Indifférent Non
  - La pause café doit durer 5 minutes Oui Indifférent Non
  - Le patron doit être renvoyé Oui Indifférent Non

- Ligne (Augmenter, Sans changement, Diminuer)
  Comme ci-dessus avec les choix possibles suivant : Augmenter, Sans changement, Diminuer.

- Ligne de boutons radio (Etiquettes personnalisées)
  Une ligne de boutons radio avec étiquettes personnalisées permet de répondre à une liste de réponses/options en choisissant parmi une liste d'étiquettes pré définies (voir la section 5) placée en entête des boutons radio.
  Ex : Evaluez les propositions suivantes :
  - Mon bras gauche est plus long que le droit Absurde Possible Absolument
  - Le magnétisme de la terre change Absurde Possible Absolument
  - Mes chaussettes tiennent la journée Absurde Possible Absolument

- Ligne de boutons radio (Etiquettes personnalisées en colonne)
  La même chose que précédemment sauf que les réponses possibles sont disposées en colonne au lieu d'être en ligne. L'exemple précédent devient dans ce cas :
  Ex : Evaluez les propositions suivantes :
  Absurde Mon bras gauche est plus long que le droit Le magnétisme de la terre change Mes chaussettes tiennent la journée
  Possible Mon bras gauche est plus long que le droit Le magnétisme de la terre change Mes chaussettes tiennent la journée
  Absolument Mon bras gauche est plus long que le droit Le magnétisme de la terre change Mes chaussettes tiennent la journée

- Texte fixe
  Ce n'est pas réellement une question mais cela fonctionne comme elles. Vous ne pouvez pas récupérer de réponse à une question de type "Texte fixe" mais son énoncé s'affichera comme une autre question avec la possibilité d'utiliser des conditions.

Création de questionnaires

1. Créer un NOUVEAU QUESTIONNAIRE

   Pour créer un nouveau questionnaire, cliquez sur le bouton à droite dans la barre d'administration.

   L'écran "Créer le questionnaire" apparaît ensuite. Voici une description des différentes options de cet écran :

   1. Titre: C'est un titre court qui décrit le questionnaire (ex : "Enquête d'utilisation 2003", ou "Avis sur les glaces"). Ce titre sera affiché sur chaque page du questionnaire.

   2. Description: Permet d'entrer un descriptif plus complet du questionnaire. (ex : "Une enquête pour recueillir vos avis sur l'utilisation de PHPSurveyor en 2003" ou "Un questionnaire permettant de recueillir les avis sur les nouveaux parfums de glace"). Vous pouvez utiliser des balises HTML dans cette section.

   3. Message de bienvenue : Permet d'enregistrer un message qui sera affiché quand un participant se rendra pour la première fois à l'adresse du questionnaire. (ex : "Merci de prendre quelques minutes pour répondre à ce questionnaire...") Vous pouvez utiliser des balises HTML dans cette section.

   4. Administrateur : C'est le nom du responsable de ce questionnaire. Son nom sera utilisé dans tous les mails d'invitation qui pourraient être envoyés.

   5. Mail de l'administrateur : C'est l'adresse mail du responsable de ce questionnaire. Cette adresse est utilisé dans le champ "Répondre à" des différents mails qui peuvent être envoyés pour ce questionnaire.

   6. Fax à : Permet de spécifier le numéro de fax à utiliser pour retourner les questionnaires imprimés des participants qui ne peuvent pas répondre en ligne.

   7. Format : Choisissez parmi "Question par question", "Groupe par groupe" or "Tout sur la même page".

      - Question par question : le questionnaire affichera chaque question sur une page différente.

      - Groupe par groupe : le questionnaire affichera les questions d'un même groupe sur une seule page.
        Les questionnaires affichés en "Groupe par groupe" ont 2 pages supplémentaires : la page de bienvenue et celle pour envoyer ses réponses comme pour les questionnaires affichés "Question par question".

      - Tout sur la même page : le questionnaire affichera toutes les questions sur une seule page.
        Ce genre de questionnaire n'affiche pas de page de bienvenue ni de page pour envoyer ses réponses. Leur contenu est repris dans la page unique du questionnaire.

   8. Modèle : Choisissez parmi la liste des modèles (ou thèmes) installés sur votre système. Le modèle par défaut est assez triste mais reste pleinement fonctionnel. Vous trouverez plus d'informations pour créer vos propres modèles dans le Guide de conception de modèles PHPSurveyor

   9. Utiliser des cookies ? : Si vous choisissez d'utiliser des cookies et que votre questionnaire n'utilise pas de table d'invitation pour contrôler l'accès des participants, un cookie sera enregistré sur le poste de chaque participant quand il aura envoyé ses réponses. Ce cookie empêchera de répondre plusieurs fois au même questionnaire depuis le poste de ce participant. Il y a quelques limitations de sécurité inhérentes à l'utilisation de ce système mais cela permet de conserver un minimum de contrôle face aux réponses multiples d'un même participant.

   10. Autoriser les sauvegardes ? : Si vous mettez cette option à "Oui", les participants pourront sauvegarder une réponse partielle à un questionnaire pour le compléter et l'envoyer plus tard.

   11. Montrer le bouton [<< Préc]: Par défaut réglée sur "Oui", si vous changez cette option à "Non", les participants ne pourront pas revenir en arrière sur des questions déjà répondues quand ils rempliront ce questionnaire.

   12. Notification: Permet à l'administrateur d'être prévenu par mail dès qu'un questionnaire rempli est envoyé. Vous pouvez choisir entre :

       - Aucune notification par mail - explicite

       - Notification simple par mail - un mail est envoyé à l'administrateur dès qu'un participant a envoyé ses réponses.

       - Notification par mail avec les codes des réponses - le mail envoyé à l'administrateur contiendra toutes les réponses qui viennent d'être envoyées.

   13. Anonyme: Cela permet de déterminer si les réponses envoyées pour un questionnaire sont liées à la table d'invitations (pour savoir qui a répondu quoi) ou restent "anonymes". Si vous mettez cette à "Non", vous devrez créer une table d'invitations pour ce questionnaire quand vous l'activerez.

   14. Objet du mail d'invitation : L'objet qui sera utilisé dans les mails envoyés lorsque vous utilisez une table d'invitations pour pouvoir participer à un questionnaire.

   15. Invitation par mail : Ceci est le corps du message mail qui est envoyé quand vous utilisez une table d'invitations pour votre questionnaire. Il est pré rempli à partir d'une variable définie dans les fichiers de langue mais vous pouvez l'adapter à votre convenance. Bien sûr, si vous n'utiliserez pas d'invitations, ce champ est sans importance.
       Vous pouvez utilisez les "champs spéciaux" ci-dessous pour personnaliser le corps de chaque mail :

       - {FIRSTNAME} - sera remplacé par la valeur de "Prénom" de la table d'invitations.

       - {LASTNAME} - sera remplacé par la valeur de "Nom" de la table d'invitations.

       - {SURVEYNAME} - sera remplacé par le titre de votre questionnaire.

       - {SURVEYDESCRIPTION} - sera remplacé par la description de votre questionnaire.

       - {ATTRIBUTE_1} - sera remplacé par la valeur de "Attribut_1" de la table d'invitations.

       - {ATTRIBUTE_2} - sera remplacé par la valeur de "Attribut_2" de la table d'invitations.

       - {SURVEYURL} - sera remplacé par l'adresse complète permettant d'accéder à ce questionnaire.

       Notez que ces "champs spéciaux" peuvent aussi être utilisés dans les champs de mail suivant :

   16. Sujet du mail de rappel : L'objet du mail envoyé pour rappeler à un participant enregistré dans la table d'invitations qu'il doit répondre au questionnaire.

   17. Rappel par mail : C'est le corps du message envoyé lors d'un rappel à participer au questionnaire. L'utilisation de cette option est semblable à "invitation par mail".

   18. Objet du mail de confirmation : Quand vous utilisez des invitations, ceci est l'objet du mail qui sera envoyé à un participant une fois qu'il aura envoyé ses réponses à ce questionnaire.

   19. Confirmation par mail : C'est le corps du mail qui est envoyé au participant dès qu'il a soumis ses réponses au questionnaire.

   20. Permettre l'enregistrement public : Si vous utilisez une table d'invitations pour votre questionnaire, les seules personnes qui pourront le compléter sont celles qui disposent d'une entrée et d'un code unique dans cette table d'invitations. Si vous souhaitez utiliser des invitations mais autoriser l'enregistrement public des participants, utilisez cette option. En la mettant à "Oui", cela permettra à une personne qui visite l'adresse du questionnaire mais qui n'est pas invitée de pouvoir s'inscrire pour répondre au questionnaire en indiquant son nom et une adresse mail. PHPSurveyor créera une entrée supplémentaire dans la table d'invitations pour ce visiteur et lui enverra une "Invitation par mail". Le programme s'assure qu'une seule personne par adresse mail puisse remplir votre questionnaire.

   21. Objet du mail d'enregistrement public : C'est le sujet du mail qui sera envoyé à une personne qui s'est enregistrée pour pouvoir participer à un questionnaire.

   22. Mail de l'enregistrement public : C'est le corps du message mail envoyé aux personnes qui se sont inscrites pour participer au questionnaire. Les mêmes "champs spéciaux" que ci-dessus peuvent être utilisés.

   23. Nom des champs supplémentaires pour l'enregistrement public : La table d'invitations dispose de 2 champs "libres" pour enregistrer des informations complémentaires. Quand vous utilisez l'enregistrement public, vous pouvez nommer ces champs pour les rendre plus explicites. Ainsi si vous utilisez le champ "attribut_1" pour enregistrer le service dans lequel travaille le participant, vous pouvez le renommer en "Service".

   24. Réponses datées ? Cette option vous permet de préciser si PHPSurveyor datera les différentes réponses à votre questionnaire. Si vous choisissez "Oui", quand une réponse sera envoyée, un champ supplémentaire qui contiendra la date et l'heure de l'envoi sera inclus avec la réponse. (Voir la section "Installation" sur l'utilisation de la variable $timeadjust)

   25. Langue : Liste les différentes langues disponibles pour présenter un questionnaire. En changeant la langue ici, cela changera la langue par défaut pour afficher un questionnaire mais cela ne modifiera pas celle de l'écran d'administration générale.

   26. Date limite de réponse : C'est la date limite de participation à ce questionnaire (Attention... si vous entrez le "31 décembre" alors les participants ne pourront plus répondre à ce questionnaire à partir du 1er janvier)

   27. URL de fin : Un lien vers cette URL sera affiché à la fin du questionnaire pour revenir à votre page d'accueil ou diriger les participants vers un autre site.

   28. Description de l'URL : La description du lien pour l'URL de fin.

   29. Charger automatiquement l'URL quand le questionnaire est terminé : Si vous choisissez "Oui" ici, le programme chargera automatiquement l'URL de fin après que le questionnaire soit complété plutôt que d'afficher la page habituelle d'un questionnaire complété. N'utilisez pas ceci si vous voulez mettre en place des évaluations.

   Importer un questionnaire
   Si vous avez précédemment exporté un questionnaire, vous pouvez l'importer comme nouveau questionnaire dans l'écran "Créer le questionnaire". Cliquez sur le bouton "Parcourir" pour choisir le fichier SQL à utiliser et cliquez ensuite sur le bouton "Importer le questionnaire". Le processus d'importation lit un fichier SQL créé par PHPSurveyor et renumérote "intelligemment" (j'utilise intentionnellement ce terme) le questionnaire, les groupes, les questions, les réponses, les conditions pour conserver leurs liens entre eux. Regardez la section Exporter un questionnaire pour plus d'informations.

   (B) Créer un NOUVEAU GROUPE

   Avant de pouvoir ajouter une question dans votre questionnaire, vous devez créer au moins un groupe. Si vous n'avez qu'un seul groupe dans votre questionnaire, peu importe son nom (sauf pour l'affichage). Par contre si vous utilisez plusieurs groupes, vous devez savoir que ceux-ci seront affichés par ordre alphabétique. Donc si vous souhaitez les afficher dans un ordre précis, nommez-les en commençant par un caractère alphabétique comme "A) Questions sur vous" et "B) Questions sur votre santé". En faisant ainsi vous êtes sûr de l'ordre d'affichage de vos groupes. Sans ce caractère au début du titre, le groupe "Questions sur votre santé" serait affiché avant "Questions sur vous". PHPSurveyor fonctionne délibérément de cette façon car elle permet d'ajouter des groupes par la suite et de régler l'ordre d'affichage en ajustant les titres des groupes. Par exemple, vous pouvez insérer un groupe supplémentaire entre les 2 groupes précédents en le nommant "A1) Questions sur votre parcours".
   Vous pouvez créer autant de groupes que vous le souhaitez.

   Les groupes peuvent inclure une description. Ce champ vous permet de fournir des explications complémentaires sur le lot de questions qui vont suivre. Si vous ajoutez une description, celle-ci sera affichée juste avant la première question du groupe. Sans cette description, la première question de ce groupe est affichée directement.

   Créez un nouveau groupe en cliquant sur l'icône dans la barre d'outils du questionnaire.

   (C) Ajouter une QUESTION

   Une fois que vous avez créé vos groupes, vous pouvez commencer à y ajouter des questions. Créez une nouvelle question en cliquant sur l'icône d'ajout () situé dans la partie droite de la barre d'outils des groupes.
   Quand vous ajoutez une question, PHPSurveyor vous demandera un "Code", l'énoncé de la "Question", une "Aide" et un "Type" de question. Toutes les nouvelles questions appartiendront au groupe que vous avez choisi avant de cliquer sur "Ajouter une question" et que vous pouvez voir au dessus. Cependant, vous pourrez toujours changer le groupe de la question plus tard.

   1. Code : Votre ID, ou numéro ou code pour cette question. Ce champ est important car c'est lui qui déterminera l'ordre d'affichage des questions dans le questionnaire. Ainsi, en numérotant "Q1" la première question, puis les questions suivantes en "Q2" et "Q3", vous êtes assuré qu'elles apparaîtront dans le bon ordre. Ce système vous permet d'ajouter des questions après-coup et de les positionner au bon endroit en leur donnant un code du genre "Q1a". Essayez d'être logique dans votre codification de ce champ. Une petite réflexion en amont vous facilitera la vie pour cette codification.

   2. Question : C'est l'énoncé de la question posée. Il n'y a pas de limité réelle sur la longueur de cet énoncé mais utilisez plutôt le champ suivant pour faire figurer des explications complémentaires.

      Champs spéciaux dans les questions
      Informations liées à l'invitation
      Depuis PHPSurveyor version 0.98finalRC1, vous pouvez insérer des informations ou du texte provenant de la table d'invitations dans l'énoncé de vos questions afin de les personnaliser. Pour que PHPSurveyor puisse faire fonctionner cela, le questionnaire ne DOIT PAS ETRE anonyme et doit posséder une table d'invitations.
      Les champs utilisables sont :

      - {TOKENS:FIRSTNAME} - sera remplacé par la valeur de "Prénom" de la table d'invitations.

      - {TOKENS:LASTNAME} - sera remplacé par la valeur de "Nom" de la table d'invitations.

      - {TOKENS:EMAIL} - sera remplacé par "l'adresse mail" de la table d'invitations.

      - {TOKENS:ATTRIBUTE_1} - sera remplacé par la valeur de "Attribut_1" de la table d'invitations.

      - {TOKENS:ATTRIBUTE_2} - sera remplacé par la valeur de "Attribut_2" de la table d'invitations.

      Pour utiliser cette fonctionnalité, vous devez utiliser et respecter la syntaxe ci-dessus. Par exemple :
      Bonjour {TOKENS:FIRSTNAME}. Nous vous avons envoyé un mail à cette adresse : {TOKENS:EMAIL}. Est-ce la bonne adresse ?
      S'il y a des espaces ou des fautes de frappe, le champ ne sera pas remplacé par sa valeur lue dans la table d'invitations.
      Réponses précédentes
      Il existe aussi une possibilité de récupérer la réponse à une question précédente dans le texte d'une question, en respectant les conditions suivantes :

      - Vous avez répondu à la question dans une page affichée précédemment. Il n'est pas possible de récupérer les réponses faites aux questions sur la page en cours d'affichage.

      - Vous devez faire précisément référence à l'ID du questionnaire (Survey ID= SID), à l'ID du groupe (Group ID=GID) et à l'ID de la question (Question ID=QID) pour laquelle la réponse a été faite, sous cette forme : {INSERTANS:SIDXGIDXQID} - exemple : {INSERTANS:1X2X3}. Comment trouver les bons ID ? C'est facile ! Naviguez simplement dans les questions dont vous souhaitez utiliser les réponses et regardez la barre d'adresse de votre navigateur. Si l'adresse de la réponse à utiliser est par exemple http://foobar.com/phpsurveyor/admin/admin.php?sid=1&gid=12&qid=8 alors vous utiliserez {INSERTANS:1X12X8} dans une future question pour utiliser cette réponse.

      IMPORTANT : La possibilité d'utiliser cette fonctionnalité est considérée comme "proof of concept" (=cela peut fonctionner) mais elle doit être utilisée avec attention car les prochaines versions de PHPSurveyor entraineront peut-être des changements dans la manière de référencer des questions.

   3. Aide : C'est un champ optionnel qui est très utile si la question posée nécessite des explications supplémentaires. Quand vous entrez du texte ici, un icône d'aide en forme de point d'interrogation apparaîtra à l'écran lors de l'affichage de cette question. En cliquant dessus, le participant pourra lire ce texte.

   4. Type : Ce champ détermine le type de question posée. Regardez la section "Types de questions" pour obtenir une description des différentes options disponibles.

   5. Validation : Cette fonctionnalité est disponible avec les questions de type "texte" ("Zone de texte court", "Zone de texte long", "Date" ou "Entrée numérique"). Vous pouvez utilisez les "expressions régulières sous Perl" (Perl Regex) dans ce champ pour valider la réponse à cette question. Si la validation échoue, le participant sera invité à modifier sa réponse avant de pouvoir continuer.
      Les "expressions régulières sous PERL" doivent commencer et finir par un slash ("/"). Vous trouverez de bonnes informations sur les expressions régulières à cette adresse : http://www.regxlib.net/. Les expressions fonctionneront dans la plupart des cas dans la mesure où elles sont encadrées par des slashs.
      Exemples (notez que ces expressions doivent être entrées sur une seule ligne) :

      - Validation d'adresse mail :
        /(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})/
      - Codes postaux français :
        /^[0-9]{5}/
      - Numéro de téléphone américain :
        /^(?:\([2-9]\d{2}\)\ ?|[2-9]\d{2}(?:\-?|\ ?))[2-9]\d{2}[- ]?\d{4}$/
      - Numéro de téléphone australien :
        /^(?:\([0]\d{1}\)\ ?|[0]\d{1}(?:\-?|\ ?))[8-9]\d{3}[- ]?\d{4}$/
      - Codes postaux américains :
        /^[0-9]{5}([- /]?[0-9]{4})?$/

   6. Autres : Selon le type de question choisi, cette option peut apparaître ou non. Elle permet de rajouter une réponse supplémentaire appelée "Autres" à certaines questions.

   7. Obligatoire : Pour tous les types de questions sauf celle de type "Texte fixe", il est possible de spécifier si la réponse à la question est obligatoire pour pouvoir continuer le questionnaire.

   Attributs des questions
   Ceci est une fonctionnalité nouvelle depuis la version 0.99dev01 de PHPSurveyor.
   Les attributs des questions sont un moyen évolutif pour contrôler la présentation et/ou le fonctionnement des questions. Des attributs supplémentaires peuvent être développés relativement facilement par un développeur PHP et ajoutés à la liste des attributs d'une question.
   Des types de questions différents possèdent des attributs différents. Chaque attribut se voit affecté une valeur. Cette valeur peut indiquer, si l'attribut est utilisé ou non (généralement "1" pour l'utiliser), ou une valeur maximum pour cet attribut.

   - display_columns:
     Cet attribut est disponible pour les questions de type "Boutons radio..." et "Case à cocher". Il permet d'afficher les réponses possibles dans plus d'une colonne. En ajoutant cet attribut, la valeur indique le nombre de colonnes à utiliser pour cette question.

   - hide_tip
     Cet attribut permet de désactiver le "conseil" pour certains types de questions. Par exemple, les questions de type "Liste déroulante" incluront dans la liste des réponses possibles un conseil du genre "Sélectionnez...". En affectant n'importe quelle valeur à cet attribut, la liste ne contiendra que les réponses pré enregistrées et pas le conseil.

   - random_order
     Cet attribut s'applique à toutes les questions qui contiennent des réponses pré enregistrées. Il permet à PHPSurveyor d'ignorer l'ordre dans lequel vous avez saisi ses réponses possibles mais les affiche dans un ordre aléatoire. Il est important de noter que ce réarrangement est revu à chaque fois que la question est affichée donc si un participant revient en arrière sur une question avec cet attribut, il se peut que l'ordre d'affichage des réponses possibles soit différent. En utilisant un affichage aléatoire, il n'y pas de hiérarchisation ni de préférence dans les réponses possibles.

   - code_filter
     Cet attribut peut être utilisé pour filtrer l'affichage des réponses possibles pré enregistrées en fonction de la réponse à une précédente question. Cet attribut a été introduit pour pouvoir limiter le nombre de réponses possibles.

   - permission
     Actuellement inutilisé, cet attribut sera éventuellement utilisé dans le futur pour la page d'affichage public des résultats d'un questionnaire. Ainsi vous pourrez indiquer si les réponses à cette question seront publiques ou non.

   - maximum_chars
     Disponible pour les questions de type "texte", cet attribut permet de définir le nombre maximum de caractères que pourra contenir la réponse. En entrant une valeur de 20 par exemple, cela signifiera que la réponse du participant ne pourra excéder 20 caractères.

   - text_input_width
     Disponible pour les questions de type "Texte court" ou "Entrée numérique", cet attribut permet de définir la longueur du champ de saisie de la réponse (text box) mais ne limite pas le nombre de caractères de cette réponse.

   Vous pouvez créez autant de questions que vous le souhaitez.
   Quand vous créez des questions avec des réponses prédéfinies (ou pré enregistrées) comme pour les listes déroulantes, vous pouvez maintenant Ajouter des réponses à la question.

   (D) Créer des conditions (Branchement conditionnel)

   Une question peut être paramétrée pour ne s'afficher QUE SI certaines conditions sont remplies. Vous pouvez définir ces conditions en cliquant sur l'icône dans la barre d'outils des questions quand vous visualisez une question.

   Quand vous choisissez "Affecter des conditions à cette question", une nouvelle fenêtre va apparaître pour vous permettre de créer ou d'effacer des conditions pour la question en cours. Voici un exemple ci-dessous :

   PHP Surveyor

   Concepteur de conditions

   Montrer la question 02-07b seulement SI (IF)
   02-07: Quel est votre sexe ? (qid510) | Egales |
   F (YES) |
   Copier les conditions
   Condition |  | Question
   --- | --- | ---
   | copy to |
   Ajouter une condition
   Question |  | Réponse
   | Egales |

   Ver 0.98final-rc1

> Conditions existantes
> La partie supérieure de cet écran liste toutes les conditions déjà définies pour cette question et la partie inférieure vous permet d'en rajouter des nouvelles.

> Par exemple, la question 02-07b ("Aimez-vous être une femme ?") ne sera affichée que si la réponse à la question 02-07 ("Quel est votre sexe ?") est "F". Vous pouvez effacer cette condition en cliquant sur le bouton "Del".

> Nouvelles conditions
> Pour créer une nouvelle condition, cliquez sur la question, que vous voulez utiliser comme condition, dans liste de la colonne "Question" à gauche. Un fois ce choix fait, le programme vous listera les réponses possibles à cette question dans la colonne Réponse à droite. Choisissez la réponse que vous vous voulez utilisez et cliquez sur le bouton "Ajouter une condition". Vous pouvez choisir plusieurs réponses qui conditionneront l'affichage de la question en les sélectionnant toutes en maintenant la touche Control enfoncée.

> Conditions multiples
> Vous pouvez définir plus d'une condition pour l'affichage d'une question. Les conditions peuvent être basées sur plusieurs réponses précédentes. Donc, par exemple, vous pouvez décider de l'affichage de la question 3 que si la réponse à la question 1 est "Oui" et "Non" à la question 2, ou bien si la réponse à la question 1 est "Oui" ou "Sans réponse" et la réponse à la question 2 est "Non".

> Copier les conditions pour les questions suivantes
> Il n'est pas impossible que l'ensemble des questions d'un groupe donné reposent sur la même condition. Depuis la version 0.98rc9, si vous avez affecté une condition à une question, il est possible de copier cette condition sur les questions suivantes depuis le Concepteur de conditions. Une fois qu'une condition est définie, l'écran suivant va s'afficher :

Copier les conditions
Condition |  | Question
--- | --- | ---
| copy to |

> La boite de sélection de gauche affiche les conditions déjà affectées à cette question et celle de droite affiche toutes les questions suivantes dans le questionnaire. Mettez en surbrillance toutes les conditions de la partie gauche que vous voulez copier (utilisez la touche Control pour des sélections multiples) et choisissez, dans la partie droite, l'ensemble des questions pour lesquelles vous voulez les mêmes conditions (utilisez la touche Control pur des sélections multiples). Ensuite, cliquez sur le bouton "Copier les conditions" pour les affecter. Il est habituellement préférable de ne pas toucher aux conditions avant d'avoir saisi toutes vos questions et d'être satisfait de leur ordre d'affichage.

> Les choses à bien regarder
> Si vous affectez des conditions à une question qui dépend elle-même d'autres conditions, il se peut que vote questionnaire se comporte de façon étrange et imprévue. Ainsi, si vous voulez faire un questionnaire compliqué avec de nombreuses conditions, assurez-vous d'avoir bien testé ce questionnaire en essayant différentes combinaisons de réponses avant de l'activer. Si cela vous semble confus, ne vous inquiétez pas trop car lors de la conception de votre questionnaire, la logique de ces conditions vous paraîtra beaucoup plus claire.

> Il ya quelques règles élémentaires que devez garder à l'esprit avant d'affecter des conditions à une question.

> 1. > Une fois qu'une seule condition est affectée à une question, celle ci ne sera AFFICHEE QUE SI la condition est remplie.

> 2. > Les conditions ne peuvent reposer que sur les réponses faites à des questions ANTERIEURES.

> 3. > Des conditions multiples basées sur une seule question antérieure sont évaluées en utilisant le principe du OU booléen (OR). Des conditions multiples basées sur différentes questions antérieures sont évaluées selon le principe du ET booléen (AND). Ceci est important car cela signifie que vous ne pouvez pas, par exemple, définir une condition sur la question 3 qui l'afficherait si la réponse à la question 2 est "Oui" OU si la réponse à la question 1 est "Non".

> 4. > Vous pouvez modifier les conditions même si le questionnaire est activé. Faites très attention à cela, car aucun contrôle de cohérence ne s'exécute.

> (E) Ajouter des REPONSES

> De nombreux types de questions nécessitent que vous ajoutiez une liste de réponses parmi lesquelles le participant devra choisir ou qui serviront pour afficher des entêtes sur les colonnes de réponse. Pour ajouter des réponses à une question de ce type, cliquez sur l'icône dans la barre d'outils des questions.

> Quand vous ajoutez des réponses, vous devrez indiquer un "Code réponse" et une "Réponse" et si cette réponse est celle par défaut.

- > Code : C'est la valeur qui sera généralement exportée vers votre tableur quand vous calculerez les résultats. Vous pouvez choisir le code que vous voulez (5 caractères maximum). Ce code ne peut contenir que des caractères alphanumériques standards.

- > Réponse : C'est l'une des réponses qui sera affichée.

- > Déplacer : C'est un champ caché dans les versions 0.98rc2 et supérieures. Vous pouvez utiliser les boutons "Haut" et "Bas" en face de chaque réponse pour changer sa position dans la liste des réponses.

- > Défaut : Une des réponses pré enregistrée peut être choisie pour être la réponse par défaut (c'est à dire que c'est cette réponse qui sera enregistrée à moins que le participant ne la change). Positionnez le champ Défaut à "Oui" si vous voulez que cette réponse soit celle par défaut. Si vous ne choisissez pas de réponse par défaut, une réponse vide sera enregistrée pour cette question à moins que le participant ne la change.

> (F) Exporter un questionnaire

> Naturellement, une fois que vous avez construit un méga questionnaire avec des centaines de questions et de multiples conditions, vous souhaiterez le sauvegarder. Le bouton situé dans la barre d'outils du questionnaire permet d'exporter tous les groupes, toutes les questions, toutes les réponses et les conditions de votre questionnaire dans un fichier au standard SQL. Ce fichier pourra être utilisé avec la fonction 'Importer un questionnaire'.

> Note : bien que l'exportation génère un fichier au standard SQL, il n'est absolument pas recommandé de l'exécuter depuis un gestionnaire de base de données (par exemple phpMyAdmin) sur une installation existante de PHPSurveyor. En effet, de nombreux pointeurs internes au questionnaire doivent être réinitialisés par PHPSurveyor.

Tester un questionnaire

Vous pouvez tester votre questionnaire à tout moment de sa création en cliquant sur les boutons "Tester le questionnaire" ou "Ecran de saisie des données pour le questionnaire" présents dans la barre d'outils du questionnaire. Cela vous permet de vérifier l'apparence de votre questionnaire et sa façon de réagir. Quand vous tester un questionnaire, les réponses ne sont enregistrées.

Evaluations

Une nouvelle fonctionnalité offerte depuis la version 0.99dev01 est la possibilité de créer des "évaluations" pour votre questionnaire. Les "évaluations" sont des règles qui évaluent les réponses d'un questionnaire une fois qu'elles ont été envoyées et qui affichent ensuite des messages en fonction des règles et des réponses.

Prenons un exemple :
Dans votre questionnaire vous avez deux questions : la première est "Fumez-vous ?". Elle possède 3 réponses possibles : "Oui, plus de 10 cigarettes par jour" avec le code réponse enregistré qui vaut "10", "Oui, moins de 10 cigarettes par jour" avec le code "5" et "Non, je ne fume pas" avec le code "0".
La seconde question "Faites-vous du sport ?" possède 3 réponses possibles "Oui, 30 minutes d'exercice 3 fois par semaine" qui a un code réponse de "0", "Oui, de temps en temps" avec le code "5" et "Non, jamais" avec le code "10".

Si vous ajoutez les valeurs de ces 2 réponses à la fin du questionnaire, cela vous donne une bonne idée de la santé physique du participant. Quelqu'un qui fume et ne fait pas d'exercice aura un score de 10 à chacune de ses réponses soit un total de 20 si on les additionne. Quelqu'un qui ne fume pas et fait du sport régulièrement aura un score total de 0.

Les outils d'évaluations vous permettent de définir des règles basées sur la somme des codes de réponse à différentes questions et ce, soit sur l'ensemble des réponses d'un questionnaire, soit sur les réponses aux questions de chaque groupe du questionnaire.

Si vous affichez l'outil d'évaluation depuis la barre d'outils du questionnaire, vous pourrez créer des évaluations pour le questionnaire sélectionné. Depuis cet écran vous pouvez voir, éditer ou effacer une évaluation existante ou en créer de nouvelles.

Si vous créez des évaluations sur cette page, pour le questionnaire sélectionné, celles-ci auront lieu à la fin du questionnaire après l’envoi définitif des réponses
ID | SID | Portée | Groupe | Minimum | Maximum | Titre | Message | URL | Actions
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
11 | 35 | T | 94 | 20 | 20 | Vous n'êtes pas en bonne santé. | Vous n'êtes pas en bonne santé. Vous devriez arrêter de fumer et faire du sport ! | http://www.healthy.com/ |
Ajouter
Portée |
Groupe |
Minimum |
Maximum |
Titre |
Message |
URL |

Dans la boite de dialogue "Ajouter/Editer" vous trouvez les options suivantes :

> Portée : La portée d'une évaluation. Choisissez entre "Total" qui créera une évaluation basée sur la somme de toutes les réponses du questionnaire complet ou "Groupe" qui créera une évaluation basée sur la somme des réponses d'un même groupe (sélectionné juste après)
> Groupe : Si la portée de l'évaluation est un "Groupe", c'est ici que vous indiquez lequel.
> Minimum : La "somme" minimum pour laquelle cette évaluation s'appliquera.
> Maximum : La "somme" maximum pour laquelle cette évaluation s'appliquera.
> Titre : Le titre de l'évaluation qui sera affichée si les règles sont remplies.
> Message : Le message lié à cette évaluation (vous pouvez inclure du code HTML)
> URL : Un lien - vers un site web - qui sera affiché avec cette évaluation.

Vous pouvez créer autant d'évaluations que vous le souhaitez, et vous pouvez créer plus d'une évaluation à afficher pour un score donné.

Il faut bien noter que si vous utilisez des évaluations, il faut vous assurez que vous n'avez pas activé l'option "Charger automatiquement l'URL quand le questionnaire est terminé" dans la configuration général du questionnaire car les évaluations ne sont affichées qu'à la fin du questionnaire après l'envoi des réponses.

Modèles

Un certain nombre d'éléments "généraux" de PHPSurveyor peuvent être personnalisés grâce aux modèles.

Cette section fournit une très brève explication de ces modèles, cependant des informations détaillées sur l'édition et la création de nouveaux modèles sont disponibles dans le Guide de conception de modèles PHPSurveyor.

L'éditeur de modèles de PHPSurveyor
L'éditeur de modèles de PHPSurveyor vous permet d'éditer en ligne le contenu de vos modèles. Lancez l'éditeur de modèles en cliquant sur l'icône "Editeur de modèles" dans la barre d'administration générale de PHPSurveyor ()

L'écran principal est semblable à l'écran d'administration des questionnaires. Il vous permet de sélectionner le modèle à éditer ou visualiser. Un fois le modèle choisi, vous pouvez sélectionner l'un des différents écrans d'un questionnaire. Vous pouvez voir ensuite les différents fichiers qui conditionnent le style de cet écran.

Le menu Modèle

Modèle : default
| Ecran :

L'icône "feu tricolore" indique si le modèle peut être édité ou non. Une lumière rouge indique que ce modèle est en lecture seule, une verte que vous pouvez le modifier.
L'icône "Edition" vous permet de renommer ce modèle et l'icône de "copie" vous permet de créer un nouveau modèle basé sur celui-ci.
La liste déroulante "Ecran" à droite vous permet de choisir quel écran d'un questionnaire vous souhaitez prévisualiser.

La section Contrôles des fichiers

Contrôle des fichiers :
| Fichiers standards : | Edition en cours : |
Autres fichiers :

Dans la fenêtre "Fichiers standards" à gauche, vous pouvez cliquer sur un des fichiers du modèle qui permet de construire la page. Le code html de ce fichier va apparaître dans la fenêtre "Edition en cours" au milieu. Si le modèle est éditable (c'est déterminé par les permissions du dossier), vous pouvez faire les changements désirés et les enregistrer.

La fenêtre "Autres fichiers" liste les autres fichiers présents dans le dossier du modèle. Vous pouvez l'utiliser pour envoyer les autres fichiers nécessaires pour créer votre modèle. Notez que pour faire référence à ces fichiers dans un fichier du modèle, à la place d'utiliser "<img src='/phpsurveyor/templates/yourtemplate/mypicture.jpg'>", vous pouvez écrire "<img src='{TEMPLATEURL}mypicture.jpg'>".

Un "aperçu" de la page en train d'être éditée est visible dans la partie inférieure de la page.

Il n'est pas possible d'effacer un modèle depuis l'éditeur de modèles. Cela n'est possible qu'en effaçant le dossier correspondant.

Le modèle "default" ne peut ête édité via l'éditeur bien qu'il soit modifiable manuellement.

Remplacements / Champs spéciaux

Les champs suivants seront remplacés par PHPSurveyor lors de la prise en compte du modèle pour l'affichage du questionnaire au participant. Ces champs spéciaux sont utilisables dans toutes les fichiers constituant un modèle sauf pour la page "Questionnaire complété".

Champs | Rmeplacé par
{SURVEYNAME} | Le nom du questionnaire
{SURVEYDESCRIPTION} | La description du questionnaire
{WELCOME} | Le message de bienvenue du questionnaire
{PERCENTCOMPLETE} | Un graphique représentant le pourcentage d'accomplissement du questionnaire
{GROUPNAME} | Le nom du groupe en cours
{GROUPDESCRIPTION} | La description du groupe en cours
{QUESTION} | Le texte de la question
{QUESTION_CODE} | Le code de la question
{ANSWER} | Les réponses à la question en cours
{THEREAREXQUESTIONS} | Remplacé par la phrase "Il y a X questions dans ce questionnaire" - où X représente le nombre total de questions du questionnaire.
{NUMBEROFQUESTIONS} | Le nombre total de questions du questionnaire
{TOKEN} | L'"ID d'invitation" utilisée en ce moment
{SID} | L'"ID de questionnaire" en cours
{QUESTIONHELP} | L'aide de la question en cours qui apparaîtra dans une fenêtre popup (en javascript)
{QUESTIONHELPPLAINTEXT} | Le texte de l'aide de la question en cours
{NAVIGATOR} | Les boutons "Suiv >>" et "<< Préc"
{SUBMITBUTTON} | Le bouton "Envoyer"
{COMPLETED} | Le message à afficher quand un questionnaire est complété - provient du fichier de langue
{URL} | L'adresse et le titre de l'URL de fin de questionnaire
{PRIVACY} | Insert le contenu du fichier "privacy.pstp"
{PRIVACYMESSAGE} | Le message sur l'anonymat provenant du fichier de langue
{CLEARALL} | L'URL pour "Sortir et effacer les réponses"
{TEMPLATEURL} | L'URL vers l'emplacement du modèle (utile pour référencer des images dans votre modèle)
{SUBMITCOMPLETE} | Le message (provenant du fichier de langue) qui informe le participant qu'il vient de finir de compléter le questionnaire et lui demande d'appuyer sur le bouton "Envoyer"
{SUBMITREVIEW} | Le message (provenant du fichier de langue) qui informe le participant qu'il peut revoir/changer ses réponses en cliquant sur "<< préc"
{TOKEN:FIRSTNAME} | Si le questionnaire n'est PAS ANONYME - sera remplacé par le prénom du participant en lisant la table d'invitations
{TOKEN:LASTNAME} | Si le questionnaire n'est PAS ANONYME - sera remplacé par le nom du participant en lisant la table d'invitations
{TOKEN:EMAIL} | Si le questionnaire n'est PAS ANONYME - sera remplacé par l'adresse mail du participant en lisant la table d'invitations
{TOKEN:ATTRIBUTE_1} | Si le questionnaire n'est PAS ANONYME - sera remplacé par l'attribut_1 du participant en lisant la table d'invitations
{TOKEN:ATTRIBUTE_2} | Si le questionnaire n'est PAS ANONYME - sera remplacé par l'attribut_2 du participant en lisant la table d'invitations
{ANSWERSCLEARED} | Le message indiquant que "Toutes les réponses ont été effacées" provenant du fichier de langue
{RESTART} | L'URL pour recommencer le questionnaire
{CLOSEWINDOW} | L'URL pour fermer la fenêtre en cours
{REGISTERERROR} | Affiche les messages d'erreurs dans la page d'enregistrement (exemple : "Vous devez indiquer une adresse mail")
{REGISTERMESSAGE1} | Le message "Vous devez être enregistré pour participer à ce questionnaire" provenant du fichier de langue
{REGISTERMESSAGE2} | Les détails sur l'enregistrement provenant du fichier de langue
{REGISTERFORM} | Le formulaire d'enregistrement qui changera en fonction de l'utilisation ou non des variables attribut_1 et attribut_2.

Traduction

Les écrans d'un questionnaire peuvent être traduits de telle manière que les messages internes à PHPSurveyor s'affichent dans votre langue préférée. Par exemple "yes" et "no" dans la version francophone apparaîtront sous "Oui" et "Non". Un certain nombre de fichiers de langue sont fournis avec PHPSurveyor, mais vous pouvez créer les vôtres en copiant un des fichiers existants dans le dossier "/phpsurveyor/lang" et en le modifiant grâce à un éditeur qui peut encoder les caractères en UTF-8.

Il y a une astuce avec les fichiers UTF-8 : pour maintenir la compatibilité, vos fichiers UTF-8 ne doivent pas contenir de BOM (byte order mark). Les BOMs sont deux octets au début d'un fichier UTF-8 qui décrivent précisément l'encodage. Nous recommandons deux éditeurs pour lire et écrire ces fichiers sans BOMs : il y a "UltraEdit" (Shareware, désactivez l'écriture de BOM dans les options) et "Notepad2 " (Freeware, choisissez "Encoding UTF-8 without signature"). Vous pouvez télécharger Notepad2 ici : http://www.flos-freeware.ch/notepad2.html.

Activer un questionnaire

Une fois que vous êtes satisfait de la structure de votre questionnaire, vous pouvez l'activer. L'activation d'un questionnaire réalise un certains nombre d'opérations :

1. Elle crée une table MySQL séparée pour enregistrer toutes les réponses à ce questionnaire dans laquelle il y aura un champ pour chacune des questions de ce questionnaire.

2. Elle permet d'autoriser les participants à entrer des données dans cette table et vous offre l'accès à de nouvelles fonctionnalités pour votre questionnaire comme le parcours des réponses et la gestion des invitations.

3. Elle vous donne accès à la fonctionnalité "Invitations". Une fois qu'un questionnaire est activé, le boutons "Invitations" sera disponible (voir la section sur les invitations).

4. Si votre questionnaire n'est "pas anonyme", une table d'invitations sera automatiquement créée.

Avant d'activer un questionnaire, vous devez savoir ceci :

- Quand un questionnaire est activé, vous pouvez changer le texte des questions, le texte des réponses... mais pas le type de questions ni de réponses.

- Vous ne pouvez pas ajouter ou supprimer des questions dans les questions à choix multiples (genre bouton radio) mais cela est possible pour les les questions de type Liste.

Activer un questionnaire en cliquant sur le bouton dans la barre d'outils de questionnaire. Si cet icône n'apparaît pas, cela signifie que votre questionnaire n'est pas encore activable. Dès que vous cliquez sur ce bouton, PHPSurveyor va effectuer un léger contrôle de cohérence pour s'assurer que votre questionnaire fonctionnera correctement.

Exécuter un questionnaire de "manière sûre"

Dès que vous avez activé un questionnaire et que vous recevez des réponses, considérez les points suivants :

- Exportez la structure du questionnaire et enregistrez le fichier SQL résultant quelque part.

- Visitez régulièrement l'écran "Parcourir les réponses" et utilisez "Sauvegarder vers un fichier SQL la table des résultats" pour créer une sauvegarde au format SQL des réponses au questionnaire.

- Exportez régulièrement les réponses et gardez une copie de ce fichier.

- Essayez de pas modifiez le questionnaire. Bien que certains éléments d'un questionnaire soient modifiables une fois le questionnaire activé sans que cela pose un problème, il est plus sûr de ne pas le faire pour ne pas avoir de mauvaise surprise. Testez en profondeur votre questionnaire avant de l'activer et essayez de le laisser tel que.

- Depuis la version 0.98finalRC1, vous pouvez sauvegarder l'intégralité de votre base de données PHPSurveyor (avec tous les questionnaires, toutes les réponses, toutes les invitations...) en cliquant sur l'icône de sauvegarde de la barre d'administration générale. Ce la exportera la base dans un fichier SQL qui pourra être importé dans une base MySQL vide pour recréer toutes les tables nécessaires et les données - cela restaure complètement votre base PHPSurveyor.

- Si vous avez un accès via phpMyAdmin ou un outil similaire, essayez de faire des sauvegardes régulières de l'intégralité de votre base PHPSurveyor (structure et données). Si le pire arrivait et que votre base disparaissait, vous pourriez la recréer et importez les tables sauvegardées de telle manière que votre PHPSurveyor revienne dans son "état d'avant".

Parcourir les réponses à un questionnaire

Une fois un questionnaire activé et que des réponses ont été enregistrées vous pourrez souhaiter voir ces réponses et peut-être en modifier certaines (éventuellement en effacer), les exporter ou récupérer des informations sur les réponses déjà reçues. Tout cela est faisable grâce à la fonctionnalité "Parcourir les réponses".

Quand votre questionnaire est activé, un bouton "Parcourir" ( ) apparaîtra dans la partie "Informations du questionnaire" sur l'écran principal d'administration. En cliquant sur ce bouton, vous arriverez sur l'écran de consultation des réponses. Voici un exemple :

Parcourir les réponses: CPSU EB2003 Survey

2319 responses in this database

L'écran principal (Résumé du questionnaire) vous donne juste le nombre de réponses enregistrées dans la base. Les autres options sont décrites ci-dessous :

- Retourner à l'écran d'administration générale : Retourne à l'écran d'administration du questionnaire.

- Afficher un résumé : Montre simplement le nombre total de réponses (écran initial)

- Afficher les réponses : Affiche toutes les réponses au questionnaire (note : cette fonctionnalité vous montre la description complète des questions mais seulement les codes des réponses. Regardez la section Editer et effacer des réponses).

- Parcourir les 50 dernières réponses : Affiche les 50 dernières réponses au questionnaire de la plus récente à la moins récente.
  Quand vous parcourez les réponses, la première entrée de chaque ligne est un "id" qui est un lien hypertexte. En cliquant sur ce numéro, vous pourrez visualiser de manière indépendante cette réponse. D'ici, vous pouvez éditer ou effacer une réponse. Regardez la section (Editer et effacer des réponses).

- Ecran de saisie de données pour le questionnaire : Permet d'afficher une page d'entrée de données pour enregistrer une nouvelle réponse au questionnaire (pour les questionnaires retournés par fax par exemple). Cette option est aussi accessible depuis la page d'administration.

- Version imprimable du questionnaire : Une version, basique mais totalement utilisable, du questionnaire qui pourra être imprimée pour les personnes répondant manuellement.

- Donner les statistiques de ces réponses : Une façon simple pour filtrer et obtenir un résumé des réponses. (Voir la section sur les Statistiques)

- Exporter les résultats vers une application : Exporte toutes les réponses de ce questionnaire vers un fichier Word, Excel ou CSV. (Voir la section Exporter les résultats)

- Sauvegarder vers un fichier SQL la table des résultats : Sauvegarde complètement la structure du questionnaire et son contenu vers un fichier MySQL standard (.sql)

Navigation dans les données :
| Enregistrements affichés : A partir de :

Editer et effacer des réponses
Quand vous consultez les réponses, vous pouvez voir une réponse précise en cliquant sur son ID. Un exemple de visualisation de réponses est visible ci-dessous.

id | What is your Employment Type? | What are your Hours of Work? | What is your Spread of Hours? | What is your Gender? | What is your Classification? | What is your Top Priority for outcomes of the next Enterprise Agreement? This might be something new, an improvement to existing conditions, or ongoing inclusion of a condition you value. | What is your Top Priority for outcomes of the next Enterprise Agreement? This might be something new, an improvement to existing conditions, or ongoing inclusion of a condition you value. (comment)
1 | A | A | A | F | A | I | Please pay us more money.
2 | B | A | A | F | B | J | Possibility of further tertiary study and working that in with my current job.

En cliquant sur le lien hypertexte de l'ID, l'écran de 'Visualisation de la réponse d'ID ' apparaît :

Visualisation de la réponse d'ID : 1
id | 1
What is your Employment Type? | Full Time [A]
What are your Hours of Work? | 76 Hours Per Fortnight [A]
What is your Spread of Hours? | 9 to 5 [A]
What is your Gender? | Female [F]
What is your Classification? | Administrative Officer [A]
Do you manage staff in your current job? | No [N]
What is your Region/Division? | Health Sector [H]
What is your Top Priority for outcomes of the next Enterprise Agreement? This might be something new, an improvement to existing conditions, or ongoing inclusion of a condition you value. | Increased Salaries [I]
What is your Top Priority for outcomes of the next Enterprise Agreement? This might be something new, an improvement to existing conditions, or ongoing inclusion of a condition you value. [Comment] | Please pay us more money.

A ce niveau, vous pouvez choisir d'éditer ou d'effacer cette réponse.

Effacer cette réponse est bien entendu plus qu'explicite. Tous ceux qui font des questionnaires savent bien évidemment qu'il ne vaut mieux pas effacer de réponses sauf en ayant une bonne raison (exemple : une entrée en double ou des d'autres raisons valables pour devoir l'effacer). Ne cliquez pas sur ce bouton en pensant avoir une seconde chance. Si vous cliquez sur le bouton "Effacer", cette entrée sera effacée immédiatement et sans demande de confirmation.

Editer cette réponse est aussi explicite. Cela vous amènera à l'écran "Entrée de données" avec un pré remplissage en fonction des réponses. Cela vous permettra de faire et de sauvegarder tous les changements souhaités. Encore une fois, il n'est généralement pas de coutume d'éditer les réponses faites par vos participants, mais bon, c'est votre questionnaire et vous y faites ce qu'il vous plait !

Invitations

Dans plusieurs cas, vous pourrez avoir besoin d'inviter des participants, de savoir qui a déjà répondu et vous assurez que chaque personne ne répondra qu'une seule fois. Un système d'invitations peut être mis en place une fois que votre questionnaire a été activé. La fonctionnalité "Invitations" vous permet de :

- Importer une liste de nom et d'adresses mail pour les participants (depuis un fichier CSV) et d'en ajouter/enlever individuellement,

- Générer un code unique d'invitation pour chaque participant,

- Envoyer un mail d'invitation à chaque personne, soit par lot de mail soit un par un

- Envoyer un mail de rappel à chaque personne de votre liste qui n'aurait pas encore répondu, soit par lot, soit un par un,

- Suivre qui de votre liste a répondu ou non,

- Interdire l'accès à ceux qui ne disposent pas d'une invitation et à ceux de votre liste qui ont déjà répondu,

- Editer/changer n'importe quel détail de votre liste d'invités.

Une fois que vous avez activé les invitations pour votre questionnaire, alors, les seules personnes qui pourront y accéder sont celles pour lesquelles vous aurez générer un code d'invitation. L'accès au questionnaire sera possible uniquement à ceux qui pourront entrer leur code d'invitation.

Les invitations peuvent être reliées aux questionnaires définis comme "non anonyme". Ce paramètre est défini lors de la création du questionnaire. Si un questionnaire est défini comme non anonyme (ou 'tracé'), alors la liste des invitations pourra être utilisée pour retrouver les réponses faites par une personne en particulier. Si le questionnaire est anonyme, aucun lien n'est fait entre les réponses et la liste des invitations.

Le paragraphe suivant est une brève description des options du menu de "Contrôle des invitations" :

- Retourner à l'écran principal d'administration : Retourne sur la page principale d'administration des questionnaires.

- Afficher un résumé : Affiche une résumé rapide des invitations enregistrées dans cette table d'invitations (nombre d'invitations, Combien ont été envoyées, Combien ont répondu). Cet écran donne accès aux "Options d'administration de la table d'invitations" (voir plus bas). C'est l'écran par défaut.

- Afficher les invitations : Affiche la liste complète des participants inscrits dans la table des invitations. Depuis cet écran, vous pouvez éditer ou effacer chacune des invitations de la liste comme exécuter de nombreuses autres opérations intéressantes (voir la section plus bas)

- Ajouter une nouvelle invitation : Vous permet d'ajouter une invitation dans la liste.

- Importer les invitations à partir d'un fichier CSV : Vous permet d'importer les informations depuis un fichier au format CSV.

- Envoyer les invitations par mail : Vous permet d'envoyer les mails avec les invitations à tous les participants pour qui ce n'est pas déjà fait.

- Envoyer les rappels par mail : Vous permet d'envoyer les mails de rappels à tous les participants de la liste à qui vous avez envoyé une première invitation et qui n'ont pas encore répondu.

- Générer les codes d'invitations : Vous permet de générer un code unique pour chaque invitation de la liste qui n'en possède pas.

Les noms de champs suivants peuvent être utilisés dans les modèles de mails d'inivitation et de rappel et doivent être renseignés dans la configuration du questionnaire. Lors de l'envoi de ces mails, ces champs seront déjà remplacés dans la prévisualisation des mail d'invitation et de rappel.

{ADMINEMAIL} | Mail de l'administrateur du questionnaire
{ADMINNAME} | Nom Mail de l'administrateur du questionnaire
{SURVEYNAME} | Titre du questionnaire
{SURVEYDESCRIPTION} | Description du questionnaire

Les champs suivants peuvent être utilisés dans les mails d'invitation et de rappel (Objet et/ou Corps du message) et seront remplacés par leur valeur lors de l'envoi.

{EMAIL} | Mail du destinataire
{FIRSTNAME} | Prénom
{LASTNAME} | Nom
{SURVEYURL} | L'adresse URL pointant sur le début du questionnaire
{TOKEN} | Invitation pour pouvoir répondre au questionnaire
{ATTRIBUTE_1} | Attribut 1
{ATTRIBUTE_2} | Attribut 2

Options d'administration de la table d'invitations
En plus d'afficher un bref résumé de la table d'invitations, l'écran de résumé vous donne accès à des fonctionnalités d'administration de cette table d'invitations, telles que :

- Mettre toutes les invitations à NON envoyées : Remet le statut de toutes les invitations à "non envoyée". Normalement, ce n'est pas à utiliser.

- Supprimer tous les codes des invitations : Efface tous les codes des invitations. Normalement, ce n'est pas à utiliser.

- Effacer la table des invitations : Vous permet d'annuler l'accès par invitations à votre questionnaire. En effaçant la table des invitations, votre questionnaire est accessible à quiconque connaît son adresse.

> Utilisation de la navigation dans les données
> L'écran de navigation vous permet de voir l'ensemble des invitations de votre liste et vous propose des boutons d'"actions" sur ces invitations.

> La ligne supérieure vous permet de spécifier le nombre d'enregistrements à afficher et le point de départ de cet affichage.
> La seconde ligne reprend le nom des champs suivant lesquels vous pouvez classer les enregistrements en cliquant sur la flèche verte correspondante.
> La dernière ligne vous permet de naviguer dans la liste en fonction des options d'affichage spécifiées ci-dessus.

Enregistrements affichés : |  | A partir de : |

ID | Nom | Prénom | Mail | Code de l'invitation | Invitation envoyée ? | Complété ? | attribut_1 | attribut_2 | Actions
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
1 | Jason | Cleeland | jason@cleeland.org | 0829007266 | Y | Y | Administrator | Australia |  |
2 | Bob | Jones | jason@cleeland.org | 1371896219 | Y |  | Interpreter | Botswana |  |
3 | Eric | Estrada | erice@cleeland.org | R193857398 | Y | Y | Actor | USA |  |

> La colonne "MPID Action" vous offre différentes possibilités pour chacune des invitations.

- > E : Editer l'invitation

- > D : Effacer cette invitation

- > S : Lance le questionnaire en utilisant cette invitation

- > R : Envoi un mail de rappel pour cette invitation (possible seulement si une première invitation a été envoyée)

- > I : Envoi un mail d'invitation pour cette ligne (possible seulement si aucune n'a été envoyée)

- > V : Si le questionnaire est 'tracé' (ie : non anonyme), le bouton "V" apparaîtra et vous permettra de voir la réponse liée à cette invitation.

> Autoriser l'enregistrement public
> Vous pouvez souhaiter donner accès à votre questionnaire à tout le monde (public) tout en disposant de certaines fonctionnalités offertes par les invitations. Ceci est possible à partir de la version 0.98rc9. Si vous initialisez la table des invitations et que vous avez choisi d'autoriser l'enregistrement public dans l'écran d'administration de votre questionnaire, les participants qui visiteront l'adresse de votre questionnaire sans posséder de code d'invitation pourront s'enregistrer eux-mêmes pour y participer. S'il fournit une adresse mail qui n'est pas encore dans la table des invitations, une invitation sera créée pour le visiteur et un mail d'inivitation avec le code lui sera envoyé. Tous les codes d'invitations des participants qui se sont enregistrés eux-mêmes commencent par la lettre "R".

Entrée de données

Cette fonctionnalité n'est pas disponible pour les personnes qui participent à votre questionnaire. PHPSurveyor fut initialement développé pour être une base de données permettant de recueillir les résultats de questionnaires "papier". Cette fonctionnalité vous permet donc de saisir au clavier les réponses retournées par papier.

Exporter les résultats

Vous pouvez exporter les réponses à un questionnaire en choisissant "Exporter les réponses" depuis l'écran de visualisation des réponses.

Quand vous choisissez cette option, une nouvelle fenêtre apparaîtra en vous proposant les options d'exportation suivantes :

- Entêtes abrégées : Exporte juste les ID des questions, les ID des groupes et l'ID du questionnaire

- Entête complet : Exporte l'énoncé de la question comme entête

- Codes de réponses : Exporte uniquement le code correspondant à la réponse faite à chaque question et non son libellé

- Réponses complètes : Exporte le libellé de la réponse qui correspond au code de la réponse stockée dans la base

- Microsoft Word : Exporte les données dans un fichier Word (à ce stade, il n'y a pas de formatage des données, juste des données séparées par des tabulations)

- Microsoft Excel : Exporte les données dans un classeur Excel

- CSV-Texte : Exporte les données dans un fichier texte en les séparant par des virgules

L'écran d'exportation des résultats vous permet de définir quels champs seront exportés et si le questionnaire n'est pas anonyme, de fusionner la table d'invitations avec celles des réponses afin de savoir qui a répondu quoi.

Exportation VV et Importation VV

Une fois que vous avez commencé à collecter des réponses, il se peut que vous soyez amené à devoir éditer ou modifier de grosses quantités de données de la table des réponses et qu'un logiciel de type tableur soit plus approprié pour faire cela.

L'exportation et l'importation de fichiers VV (le "VV" signifie 'vertical verification') vous permet d'exporter la table des réponses dans un fichier où les données sont "séparées par des tabulations" (tsv). Tant que la structure générale de ce fichier reste intacte, vous pourrez éditer certaines des valeurs et ré importer ces modifications dans votre table des réponses en utilisant la fonctionnalité "Importer un fichier VV".

Exporter vers un fichier VV
Quand vous choisissez d'exporter les réponses dans un fichier VV, vous aurez la possibilité, en plus d'avoir ce fichier, de désactiver ou non le questionnaire.

Si vous choisissez de désactiver le questionnaire, la table des réponses sera renommée et ne sera plus accessible qu'avec un accès MySQL direct (elle sera renommée de la même façon que lorsque vous désactivez un questionnaire).

Si votre questionnaire utilise une table des invitations, la désactivation du questionnaire renomme et désactive cette table des invitations. Il est préférable de ne pas désactiver un questionnaire avec des invitations tant que vous ne savez pas comment renommer une table dans MySQL pour la remettre manuellement dans une base.

La possibilité de désactiver un questionnaire est très importante car un fichier de questionnaire "VV" vous permet de ré importer des réponses à un questionnaire alors que les combinaisons Questions/Réponses ont changé. Effectivement, cela permet d'ajouter ou d'enlever des questions dans un questionnaire activé.

Un clic sur "Exporter vers un fichier VV" produira un fichier avec des données séparées par des tabulations qui pourra être ouvert sous Excel ou un tableur similaire. Les deux premières lignes de cette feuille sont les étiquettes des colonnes. La première ligne est une version compréhensible qui détaille les champs nom de la question/réponses. La seconde ligne est le variable PHP interne de la colonne pour cette réponse

Vous ne devriez pas modifier les deux premières lignes de cette feuille si vous souhaitez pouvoir le ré importer plus tard dans PHPSurveyor.

Importer un fichier VV
Tant que les deux premières lignes restent intactes, vous pouvez ré importer les données du fichier VV dans un questionnaire PHPSurveyor activé. Si vous avez désactivé le questionnaire au moment de l'exportation, vous devrez activer ce questionnaire normalement.

Donc, depuis l'écran "Parcourir les réponses", cliquez sur l'icône "Importer un fichier VV".

La page "Importer un fichier VV" vous propose de choisir le fichier VV que vous souhaitez importer. Si vous choisissez "Exclure les ID enregistrés ?", les enregistrements seront importés en tant que nouveaux enregistrements avec des nouveaux ID générés. Si vous décochez cette case, ce sont les ID du fichier qui seront importés.

Il y a d'autres options réglables pour dire à PHPSurveyor ce qu'il doit faire avec les entrées multiples.

Statistiques

Les statistiques sont accessibles depuis le menu de l'écran de visualisation des réponses disponible uniquement après avoir activé le questionnaire.

Que sont ces statistiques ?
Disons que vous avez un questionnaire en cours ou qu'il est terminé et que vous voulez commencer à analyser les résultats. PHPSurveyor peut exporter tous les résultats dans un classeur Excel (ou un fichier CSV, ou un fichier Word) pour en faire ce que vous voulez. Autrement, vous pouvez utilisez la fonctionnalité "Statistiques" pour regarder vos données et commencer à en obtenir des informations utiles.
Les statistiques vous permettent de "filtrer" vos données et de récupérer les numéros et noms de différents champs et d'en afficher quelques synthèses. Ce module ne permet pas d'élaborer des filtres complexes mais vous seriez surpris par les informations que cela permet de recueillir facilement.

Paramètres de filtre

Quand vous commencez à utiliser les statistiques, l'écran vous proposera la liste des questions qui pourront servir à filtrer les statistiques. Un exemple est disponible ci-dessous. Chaque "pavé de question" se compose du code de la question, d'une case à cocher pour choisir d'afficher ou non un résumé pour cette question et une icône en forme de haut-parleur qui permet d'afficher, en cliquant ou en survolant, le libellé complet de la question. Enfin il liste les réponses pré définies pour la question. Cette liste permet les sélections multiples. Donc vous pouvez choisir de filtrer tous les résultats pour n'avoir que ceux dont les réponses correspondent à vos filtres.

En sélectionnant "Visualiser les statistiques", vous obtenez un écran qui récapitule le nombre total de réponses qui répondent à vos critères et le pourcentage que cela représente par rapport au total des réponses. Voici un exemple :

Résultats
Nombre d'enregistrement(s) pour ce filtre : 146 Nombre total d'enregistrements dans le questionnaire : 187 Pourcentage du total : 78% SQL: SELECT count(*) FROM survey_4 WHERE 4X6X22 IN ('A') AND 4X6X23 IN ('A')

Visualisation des résumés de champs
Il peut être parfois intéressant d'avoir un résumé des réponses à une question si certains critères sont remplis. Pour faire cela, cocher la case au dessus du "pavé" de la question dont vous souhaitez voir les résultats et sélectionnez les critères dans les autres pavés. Sélectionnez ensuite "Visualiser les statistiques". Depuis la version 0.97, il existe une option pour avoir un résumé pour l'ensemble des questions.

Vous obtiendrez alors l'écran récapitulatif qui indique le nombre de réponses qui correspondent à vos critères ainsi qu'une table des "Résumés de champs" (voir ci-dessous) qui résumera toutes les réponses possibles aux questions sélectionnées avec pour chaque réponse, le décompte et le pourcentage. Souvenez-vous que ces résultats sont calculés par rapport aux réponses filtrées. Donc, dans l'exemple, si les filtres choisis retournent 146 réponses sur un total de 180, le résumé est calculé sur la base de ces 146 réponses.

Résumé de champs pour Q4:
Votre sexe ?
Réponse | Décompte | Pourcentage
Pas de réponse | 1 | 00%
Femme (F) | 49 | 33%
Homme (M) | 96 | 65%

Petites choses à garder en tête

- Si vous avez mis des filtres sur les réponses faites à une question et que vous en demandez le résumé, tout sera basé sur les réponses qui répondent aux critères de filtres. Un bon usage est de ne pas mettre de filtre sur les questions pour lesquelles vous souhaitez un résumé.

- Pour sélectionner plusieurs filtres de réponses pour une question, maintenez la touche CONTROL quand vous les sélectionnez. Pour déselectionner le dernier critère (si vous voulez effacer tous les critères de réponses à une question), cliquez dessus en maintenant la touche CONTROL enfoncée.

Parcourir / Exporter les réponses filtrées

Si vous voulez exporter les réponses qui répondent à vos critères, cliquer sur le bouton "export" en bas de la liste des résultats. Cela affichera l'écran habituel d'exportation de réponses mais cela n'enregistrera que les réponses répondant à vos critères. De la même façon, cliquez sur "Browse" pour voir les réponses répondant à ces critères.

Licence

Ce programme est un logiciel libre ; vous pouvez le diffuser et/ou le modifier suivant les termes de la licence GNU General Public License (GPL) publiée par la Free Software Fondation dans sa version 2 ou dans une version plus récente.
Ce programme est distribué en espérant qu'il sera utile à certaines personnes, mais SANS GARANTIE D'AUCUNE SORTE. Lisez la licence GNU GPL pour plus de détails à cette adresse (version originale : This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details) : http://www.gnu.org/licenses/gpl.html