Table des matières

DOCUMENTATION TECHNIQUE COMPLÈTE SUR UNE SEULE PAGE
RÉSUMÉ RAPIDE
INTRODUCTION
CONCEPTION
Ligne du nom de question
Texte de la question
Note
Catégories de réponses
Sauts simples
Condition d'affichage
Partie ouverte
Rappels de réponses
Questions calculées
Commenter un script
STRUCTURE
Pages
Tableaux
Permutations de questions
Projets hiérarchiques
Interruption
APPARENCE
Structure de la page et gabarits
Mise en forme du texte
Couleurs et disposition
Mise en forme dans le questionnaire
Exemples de produits finis
GESTION
Gestion des permissions
Module intégré
Démarrage d'un projet
Gestion des fichiers
Gestion des quotas
Invitations par courriel **
Administration du questionnaire
Modifications à un projet
Gestion de dossiers
Résultats en temps réel
Extraction de données
Destruction d'une base de données
Archivage de données
ANNEXE A Instructions dièses *
ANNEXE B Instruction d'installation
ANNEXE C Options d'URLs
ANNEXE D Changements et ajouts récents
ANNEXE E Syntaxe des sorties en tableaux
ANNEXE F Caractéristiques de sécurité
ANNEXE G Données contextuelles
ANNEXE H Instruction dièse TEST
ANNEXE I Messages du système
ANNEXE J Variables systèmes
ANNEXE K Variable WEIGHT (obsolète)
ANNEXE L Codes HTML de base
ANNEXE M Liste de contrôle pour le démarrage de projets
APPENDIX N Types de fichiers
Carton pense-bête de la syntaxe CallWeb
* Mis à jour en novembre 2023
** Mis à jour en décembre 2023

Table des matières

DOCUMENTATION TECHNIQUE COMPLÈTE SUR UNE SEULE PAGE
RÉSUMÉ RAPIDE
INTRODUCTION
CONCEPTION
Ligne du nom de question
Texte de la question
Note
Catégories de réponses
Sauts simples
Condition d'affichage
Partie ouverte
Rappels de réponses
Questions calculées
Commenter un script
STRUCTURE
Pages
Tableaux
Permutations de questions
Projets hiérarchiques
Interruption
APPARENCE
Structure de la page et gabarits
Mise en forme du texte
Couleurs et disposition
Mise en forme dans le questionnaire
Exemples de produits finis
GESTION
Gestion des permissions
Module intégré
Démarrage d'un projet
Gestion des fichiers
Gestion des quotas
Invitations par courriel **
Administration du questionnaire
Modifications à un projet
Gestion de dossiers
Résultats en temps réel
Extraction de données
Destruction d'une base de données
Archivage de données
ANNEXE A Instructions dièses *
ANNEXE B Instruction d'installation
ANNEXE C Options d'URLs
ANNEXE D Changements et ajouts récents
ANNEXE E Syntaxe des sorties en tableaux
ANNEXE F Caractéristiques de sécurité
ANNEXE G Données contextuelles
ANNEXE H Instruction dièse TEST
ANNEXE I Messages du système
ANNEXE J Variables systèmes
ANNEXE K Variable WEIGHT (obsolète)
ANNEXE L Codes HTML de base
ANNEXE M Liste de contrôle pour le démarrage de projets
APPENDIX N Types de fichiers
Carton pense-bête de la syntaxe CallWeb
* Mis à jour en novembre 2023
** Mis à jour en décembre 2023

   

Résumé rapide

Cette page fournit des instructions rapides pour la mise en place d'un premier projet CallWeb. Nous prenons pour acquis que vous avez accès à un serveur Web équipé de CallWeb et à un programme FTP pour transférer les fichiers requis sur le serveur.

  1. Depuis votre navigateur Web, appelez le module intégré de CallWeb dont l'adresse vous a été fournie par votre administrateur.
  2. De là, créez un questionnaire d'une seule question en utilisant le module cwedit.
  3. Sauvegardez ce script de questionnaire dans un fichier appelé « test » — le fichier de questionnaire s'appellera test.scw (l'extension .scw indique qu'il s'agit d'un script CallWeb).
  4. Toujours depuis cwedit, cliquez sur l'icône de Compilation Une nouvelle fenêtre s'ouvrira faisant rapport sur l'état de la compilation et sur toute erreur de compilation.
  5. Fermez la fenêtre de cwedit.
  6. Cliquez sur le bouton de rafraîchissement de votre navigateur pour recharger la page du module intégré et obtenir l'information concernant le projet que vous venez de compiler.
  7. Choisissez le projet « test » dans la liste déroulante qui accompagne le texte « Amorcer un nouveau questionnaire; callweb.cgi » et cliquez sur l'icône au bout de cette ligne.
  8. Votre question apparaît à l'intérieur de ce nouveau projet à une seule question!

Résumé rapide

Cette page fournit des instructions rapides pour la mise en place d'un premier projet CallWeb. Nous prenons pour acquis que vous avez accès à un serveur Web équipé de CallWeb et à un programme FTP pour transférer les fichiers requis sur le serveur.

  1. Depuis votre navigateur Web, appelez le module intégré de CallWeb dont l'adresse vous a été fournie par votre administrateur.
  2. De là, créez un questionnaire d'une seule question en utilisant le module cwedit.
  3. Sauvegardez ce script de questionnaire dans un fichier appelé « test » — le fichier de questionnaire s'appellera test.scw (l'extension .scw indique qu'il s'agit d'un script CallWeb).
  4. Toujours depuis cwedit, cliquez sur l'icône de Compilation Une nouvelle fenêtre s'ouvrira faisant rapport sur l'état de la compilation et sur toute erreur de compilation.
  5. Fermez la fenêtre de cwedit.
  6. Cliquez sur le bouton de rafraîchissement de votre navigateur pour recharger la page du module intégré et obtenir l'information concernant le projet que vous venez de compiler.
  7. Choisissez le projet « test » dans la liste déroulante qui accompagne le texte « Amorcer un nouveau questionnaire; callweb.cgi » et cliquez sur l'icône au bout de cette ligne.
  8. Votre question apparaît à l'intérieur de ce nouveau projet à une seule question!

   

Introduction générale

CallWeb est un système ordiné qui facilite la création de formulaires intelligents et de questionnaires ainsi que la gestion de la collecte de données utilisant formulaires et questionnaires.

Ce document passe en revue les opérations de CallWeb dans l'ordre suivant :

  • la syntaxe du questionnaire CallWeb est d'abord expliquée;
  • puis, les méthodes permettant de définir la structure du questionnaire sont décrites;
  • troisièmement, les outils de contrôle de l'apparence du questionnaire sont présentés;
  • finalement, nous étudions le cycle de vie d'un projet CallWeb.

Une grande partie de l'utilisation de CallWeb tourne autour de scripts. Ce sont des fichiers textes qui contiennent la définition de chacune des questions du questionnaires — et plus encore. Il y a deux méthodes pour créer et modifier les scripts :

  • en utilisant un éditeur de texte comme Blocnote ou TextPad, le concepteur de questionnaire a un contrôle direct sur tous les aspects du questionnaire et peut faire des changements très rapidement;
  • en utilisant le module CallWeb cwedit, le concepteur peut contrôler tous les paramètres d'un questionnaire dans un environnement plus convivial mais (définitivement) plus lent d'utilisation. cwedit a trois limites : il ne supporte pas le paramètre COIN des SUFFIXES, le paramètre ALIAS des catégories de réponses et l'usage concurrent de questions réceptrices au même nom.

Le choix d'un environnement de conception et de modification des questionnaires est le vôtre; cependant, la présente documentation met l'accent sur l'approche utilisant l'éditeur de texte plutôt que le module cwedit à cause de sa rapidité et parce qu'elle exige davantage d'appui au départ.

Introduction générale

CallWeb est un système ordiné qui facilite la création de formulaires intelligents et de questionnaires ainsi que la gestion de la collecte de données utilisant formulaires et questionnaires.

Ce document passe en revue les opérations de CallWeb dans l'ordre suivant :

  • la syntaxe du questionnaire CallWeb est d'abord expliquée;
  • puis, les méthodes permettant de définir la structure du questionnaire sont décrites;
  • troisièmement, les outils de contrôle de l'apparence du questionnaire sont présentés;
  • finalement, nous étudions le cycle de vie d'un projet CallWeb.

Une grande partie de l'utilisation de CallWeb tourne autour de scripts. Ce sont des fichiers textes qui contiennent la définition de chacune des questions du questionnaires — et plus encore. Il y a deux méthodes pour créer et modifier les scripts :

  • en utilisant un éditeur de texte comme Blocnote ou TextPad, le concepteur de questionnaire a un contrôle direct sur tous les aspects du questionnaire et peut faire des changements très rapidement;
  • en utilisant le module CallWeb cwedit, le concepteur peut contrôler tous les paramètres d'un questionnaire dans un environnement plus convivial mais (définitivement) plus lent d'utilisation. cwedit a trois limites : il ne supporte pas le paramètre COIN des SUFFIXES, le paramètre ALIAS des catégories de réponses et l'usage concurrent de questions réceptrices au même nom.

Le choix d'un environnement de conception et de modification des questionnaires est le vôtre; cependant, la présente documentation met l'accent sur l'approche utilisant l'éditeur de texte plutôt que le module cwedit à cause de sa rapidité et parce qu'elle exige davantage d'appui au départ.

   

Conception

Introduction

Un questionnaire CallWeb tient dans un fichier ANSI strict (que des caractères ANSI, pas de commandes de traitement de texte) où chaque question est présentée dans la séquence d'affichage dans le questionnaire. Le nom du fichier de questionnaire utilise les conventions suivantes : l'extension doit être .scw (qui signifie « script CallWeb ») et le nom (sans extension) devient le nom de projet du point de vue de CallWeb. Attention : les minuscules et les majuscules comptent dans le nom du fichier comme dans le nom du projet.

La structure d'une définition de question est la suivante :

    NOM_DE_QUESTION_ICI
    % Le texte de la question suit ce signe %
       TEXTE DE LA QUESTION
    % Le texte de la note suit ce signe %
       TEXTE DE LA NOTE
    % Les catégories de réponses suivent ce signe %
       CATÉGORIES DE RÉPONSES
    % Les sauts simples suivent ce signe %
       SAUTS SIMPLES
    % La condition d'affichage suit ce signe %
       CONDITION D'AFFICHAGE
    % La définition de la partie ouverte suit ce signe %
       PARTIE OUVERTE
    ! Find de la définition de la question

Un exemple d'une définition de question pourrait dont être ce qui suit :

    ##
    ## Question Q1
    ##
    Q1
    % Texte de la question
       Vous considère-t-on généralement comme un homme ou comme une femme?
    % Note
    % Catégories de réponses
       Homme
       Femme
       *9*Je ne sais pas
    % Sauts simples
       9 = BYEBYE
    % Condition d'affichage
       Q0.EQ.1
    % partie ouverte
       9 = C80 2 40
    ! Fin de la définition de la question

Chaque segment de la définition de la question fera maintenant l'objet d'une des sections suivantes.

Conception

Introduction

Un questionnaire CallWeb tient dans un fichier ANSI strict (que des caractères ANSI, pas de commandes de traitement de texte) où chaque question est présentée dans la séquence d'affichage dans le questionnaire. Le nom du fichier de questionnaire utilise les conventions suivantes : l'extension doit être .scw (qui signifie « script CallWeb ») et le nom (sans extension) devient le nom de projet du point de vue de CallWeb. Attention : les minuscules et les majuscules comptent dans le nom du fichier comme dans le nom du projet.

La structure d'une définition de question est la suivante :

    NOM_DE_QUESTION_ICI
    % Le texte de la question suit ce signe %
       TEXTE DE LA QUESTION
    % Le texte de la note suit ce signe %
       TEXTE DE LA NOTE
    % Les catégories de réponses suivent ce signe %
       CATÉGORIES DE RÉPONSES
    % Les sauts simples suivent ce signe %
       SAUTS SIMPLES
    % La condition d'affichage suit ce signe %
       CONDITION D'AFFICHAGE
    % La définition de la partie ouverte suit ce signe %
       PARTIE OUVERTE
    ! Find de la définition de la question

Un exemple d'une définition de question pourrait dont être ce qui suit :

    ##
    ## Question Q1
    ##
    Q1
    % Texte de la question
       Vous considère-t-on généralement comme un homme ou comme une femme?
    % Note
    % Catégories de réponses
       Homme
       Femme
       *9*Je ne sais pas
    % Sauts simples
       9 = BYEBYE
    % Condition d'affichage
       Q0.EQ.1
    % partie ouverte
       9 = C80 2 40
    ! Fin de la définition de la question

Chaque segment de la définition de la question fera maintenant l'objet d'une des sections suivantes.

   

Conception

Ligne du nom de la question

La ligne du nom de la question utilise la syntaxe suivante (toute l'information doit tenir sur une seule ligne) :

    NOM_DE_LA_QUESTION MIN=n MAX=n NCOLS=n SUBSET=question CODESIN=question CATEGORIES=question COIN=(texte) UN OU PLUSIEURS MOTS-CLEFS MUST=(condition)

Le nom de la question :

  • peut contenir jusqu'à 64 caractères;
  • doit débuter avec une lettre autre que A;
  • peut contenir des lettres, des chiffres et le trait souligné.

Le paramètre MIN= est le nombre minimum de réponses attendues. Fixé à zéro, il permet de ne pas répondre à une question. La valeur par défaut est 1.

Le paramètre MAX= est le nombre maximum de réponses attendues. Fixé à une valeur plus grande que 1, il force l'utilisation de cases à cocher plutôt que les boutons radios. La valeur par défaut est 1.

En fixant tant MIN que MAX à zéro, on crée une question sans catégorie de réponse. CallWeb affiche le texte de cette question et sa note, s'ils existent.

Le paramètre NCOLS= détermine combien de colonnes seront utilisées pour afficher les catégories de réponses. La valeur par défaut est une seule colonne. Cette valeur par défaut peut être modifiée questionnaire par questionnaire (et pour l'ensemble d'un questionnaire) grâce à l'instruction dièse # N COLONNES PAR DEFAUT. Finalement, le paramètre NCOLS=, qui ne s'applique qu'à une question, a préséance sur les valeurs par défaut.

Le paramètre SUBSET=question nomme la partie ouverte qui sera utilisée pour réduire la liste des catégories de réponses d'une question sur la base du texte des étiquettes de réponses (référez-vous à la description complète de cette option).

Le paramètre CODESIN=question nomme la partie ouverte qui sera utilisée pour réduire la liste des catégories de réponses d'une question sur la base de toute caractéristique d'une base de données associée (référez-vous à la description complète de cette option).

Le paramètre CATEGORIES=question nomme la partie ouverte qui fournira la liste des catégories de réponses (référez-vous à la description complète de cette option).

Le paramètre MUST=(condition) spécifie la condition logique qui exige qu'une réponse soit donnée à la question.

Le paramètre CORNER=(texte) modifie le texte affiché dans le coin gauche de l'en-tête d'un tableau, pour cette question seulement. Il peut contenir un segment pour chaque langue du questionnaire, spécifié grâce à des crochets et à un code à deux lettres (p.ex., [EN]).

  • Référez-vous à la section sur les conditions d'affichage pour ce qui est de la syntaxe des conditions logiques.
  • La condition logique doit figurer entre parenthèses (pour une condition en style xBase) ou entre accolades (pour une condition de style Perl).
  • Ce paramètre s'ajoute aux paramètres MIN et MAX de sorte qu'une question peut avoir un minimum de zéro réponse (c.-à-d., que l'on permette de ne pas y répondre sauf dans les circonstances définies dans la condition MUST).
  • La condition MUST n'est appliquée que si la question est affichée selon sa condition d'affichage.
  • La condition MUST doit être spécifiée en dernier lieu sur la ligne du nom de la question.
  • Exemple d'utilisation : supposons que l'on veuille construire un tableau comportant deux questions côte-à-côte, une cote d'importance dont la dernière catégorie « autre » comporte une partie ouverte et une question sur échelle. Chacune de ces questions a un minimum de zéro réponse puisque certaines personnes ne fourniront pas d'« autre » réponse mais, si une réponse est fournie à l'échelle, une description est nécessaire dans la partie ouverte. Dans ce cas, la condition MUST=(Q2.GT.1) appliquée à Q1 insisterait pour que l'on fournisse une réponse à Q1 si Q2 possède une réponse.

Les MOTS-CLEFS peuvent être l'une ou l'autre ou plusieurs des valeurs suivantes (certaines sont logiquement mutuellement exclusives, d'autres non) :

MOTS-CLEFS TOUCHANT LES CATÉGORIES DE RÉPONSES
ROTATIONLes catégories de réponses sans code de comportement [B]loqué sont affichées en ordre aléatoire (autrefois, la règle était que tous les codes sous 900 étaient permutés; ceci est toujours disponible). Ce mot-clef peut aussi être utilisé avec la syntaxe ROTATION=Qx; la permutation appliquée à la question courante est alors copiée de la permutation Qx (ceci est aussi appelé « permutations parallèles » ou « permutations contrôlées »).
INVERSIONLes catégories de réponses sans code de comportement [B]loqué sont affichées aléatoirement à l'endroit ou à l'envers (autrefois, la règle était que tous les codes sous 900 étaient permutés; ceci est toujours disponible). Ce mot-clef peut aussi être utilisé avec la syntaxe INVERSION=Qx; l'inversion appliquée à la question courante est alors copiée de l'inversion Qx (ceci est aussi appelé « inversions parallèles » ou « inversions contrôlées »).
ALPHALes catégories de réponses sans code de comportement [B]loqué sont triées en ordre alphabétique d'étiquette de réponse dans la langue affichée (autrefois, la règle était que tous les codes sous 900 étaient permutés; ceci est toujours disponible)
DROPDOWNLes catégories de réponses sont présentées dans une liste déroulante plutôt que comme un ensemble de boutons radios ou de cases à cocher
CHECKALLCe mot-clef fixe automatiquement le nombre maximal de réponses possibles au nombre de catégories non-exclusives.
SCALELes catégories de réponses sont affichées sur une échelle horizontale. Seul, ce mot-clef fait en sorte que le navigateur choisit la largeur optimale des colonnes du tableau; dans la syntaxe « SCALE=nn », la largeur des colonnes est fixée à « xx » pixels. Ajoutez C devant « nn » et le tableau est centré sur la page. Ce mot-clef ne fonctionne pas de concert avec la syntaxe de clonage succincte.
FORCEHEADER(ou FORCEENTETE) Quand des questions sont présentées en format tableau, ce mot-clef déclenche l'ajout d'une en-tête de tableau (soit le texte des catégories de réponses) avant la question courante.
ONCEACROSSUn seul répondant peut sélectionner l'une ou l'autre des catégories de réponses (ayant un code inférieur à 9000); les catégories déjà sélectionnées ne sont pas affichées dans la liste des réponses possibles.
NOTESTAnnule les tests de compilation sur les catégories de réponses (utile pour accélérer la compilation quand une question comporte des milliers de catégories de réponses, que cette question a été testée préalablement et qu'elle n'a pas été modifiée depuis).
SEMANTICDécoupe la note en deux morceaux au dernier oblique et place le second morceau parmi les choix de réponse pour rendre l'effet d'une échelle de sémantique différentielle. Note : n'utilisez pas la copie de note ou la copie de catégorie de réponses dans les questions SEMANTIC.
NOPRINTCATDésactive l'impression des catégories de réponse en mode imprimé (utile pour les très longues listes de catégories).
DONOTPRINTDésactive l'impression de la question en mode imprimé.
SUGGaffiche un message d'avertissement d'un nombre insuffisant de réponses seulement une fois (puis accepte un nombre moindre de réponses que spécifié dans le paramètre MIN). Note : ne fonctionne qu'une fois qu'un dossier a été créé dans la base de données.
MOTS-CLEFS TOUCHANT LES CALCULS
BLANK(jamais affichée) Le premier code est attribué à la question si la condition d'affichage est vraie (référez-vous aussi aux calculs)
CALCUL(jamais affichée) La question effectue un calcul et retourne le résultat dans une autre question (ou la même)
RANDOM(jamais affichée) Un nombre aléatoire est attribué à la question (référez-vous aussi aux calculs)
WEIGHTun poids est conservé dans la partie ouverte de cette variable et est utilisé pour les calculs de cwfreq et cwquestionnaire
MOT-CLEFS AFFECTANT L'AFFICHAGE DES BOUTONS
CULDESACLe questionnaire prend fin à cette question sans se rediriger vers un URL externe. La question est affichée sans bouton ou image permettant de passer à la question suivante. Si la question fait partie d'une page comprenant plusieurs questions, seule la dernière question affichée dans la page aura un effet sur l'affichage du bouton.
BACKWALLLe questionnaire n'affiche pas de bouton de recul à la question précédente pour cette question et ne permet pas de reculer plus loin. Si la question fait partie d'une page comprenant plusieurs questions, seule la dernière question affichée dans la page aura un effet sur l'affichage du bouton.
UNLOCKSi la question courante est seule sur une page ou est la dernière question d'une page comportant plus d'une question, un bouton « Sauver et fermer » est ajouté. Sur utilisation, ce bouton valide les réponses, sauvegarde les données, relâche le verrou sur le dossier et ferme la fenêtre du navigateur.
NOSTOPSi la question courante est seule sur une page ou est la dernière question d'une page comportant plus d'une question, le bouton « Stop » n'est pas affiché.
NOTHERMOMETERSuspend l'affichage de la barre de progression pour la page courante (le mot-clef doit être placé sur la première question d'une page multi-question si le thermomètre est affiché en haut de la page et sur la dernière question si le thermomètre est affiché au bas de la page).
NOLANGUAGESuspend l'affichage du/des bouton/s de langue pour la page courante (le mot-clef doit être placé sur la première question d'une page multi-question si le thermomètre est affiché en haut de la page et sur la dernière question si le thermomètre est affiché au bas de la page).
SUBMITUtilise les instructions dièses « # Texte submit » et « Image submit » pour le bouton de Page suivante.
NOPRETESTdésactive l'instruction dièse « # Pretest » pour cette question.
TYPES DE QUESTIONS
RELATIONÉtablit un lien relationnel entre le projet courant et un autre projet contenant des dossiers enfants. Cette question affiche des boutons pour ajouter un enfant, en effacer et en modifier. Référez-vous à la section portant sur les projets hiérarchiques pour plus ample information.
ERASERELDéfinit une question qui sert à demander la confirmation de l'effacement des enfants dans un projet hiérachique. Référez-vous à la section portant sur les projets hiérarchiques pour plus ample information. Une telle question est automatiquement BACKWALL; elle n'est pas affichée dans le cours normal du questionnaire.
NEVERUPDATE(jamais affichée) CallWeb ne modifiera jamais l'information de la base de données pour cette question, sauf par prépopulationement. Ce comportement est utile lorsque CallWeb est une composante d'une base de données plus large.
STOCK(jamais affichée) Ce mot-clef désactive la question qui ne peut être utilisée que pour stocker de l'information produite par une question CALCUL. Il est aussi utilisé pour créer des boîtes de saisie utilisées dans des catégories « Autre, précisez » dans un tableau.
ONLYONCEUne fois qu'une réponse a été enregistrée pour une telle question, CallWeb refuse de changer la réponse fournie. Ce comportement butté est aussi valide pour les parties ouvertes.
AUTONEXTutilisé comme AUTONEXT=n, passe à l'écran suivant du questionnaire automatiquement après n secondes et attribue la première catégorie à la réponse. Les conditions d'affichage sont respectées. Cette instruction exige JavaScript sur le poste client.
MEMOAffiche un tableau de questions et de réponses pour la liste des questions insérée dans le segment de texte de la question (dans le format Q1-Q5, Q7, Q8-Q10, ...); seules les questions ordinaires contenant des réponses sont présentées. Les conditions d'affichage sont respectées.
EMAIL(jamais affichée) La question est utilisée par cwemail.cgi pour envoyer des messages d'invitation ou de notification aux participants
MEMEXCLexclut une question de l'affichage d'une question MEMO.
VERBATIMAffiche toutes les parties ouvertes de type alphanumérique du questionnaire dans une seule fenêtre et permet de faire le ménage de leur contenu. Seules les parties ouvertes contenant quelque chose sont affichées. Les nombres minimum et maximum de réponses d'une question VERBATIM sont fixés à zéro au moment de la compilation. Une telle question ne peut pas faire partie d'un tableau de questions, mais elle peut être insérée dans une page comprenant plusieurs questions et elle peut comporter une condition d'affichage
VBTMEXCLexclut une question de l'affichage d'une question VERBATIM.
QUOTA(jamais affichée) La question contient des instructions pour calculer des quotas de questionnaires complétés.
INFOCATI(affichée seulement par l'interface des interviewers) Utilisé par l'environnement CATI de CallWeb pour identifier les questions dont les valeurs sont présentées aux interviewers avec le numéro de téléphone à signaler. Un champ INFOCATI comportant une partie ouverte de type T affiche un bouton de signalement si le projet utilise un signaleur.
CONTACT(affichée seulement par l'interface des interviewers) Utilisé par l'environnement CATI de CallWeb pour identifier la question qui contient le script de contact d'un sondage téléphonique. Le texte peut utiliser des rappels.
DESTOP(jamais affichée) utilisée dans le bloc de questions atteint par un bouton STOP, elle branche le cheminement du questionnaire à la question depuis laquelle le bouton STOP a été invoqué.
PAGEBREAKUn saut de page est inséré après cette question à l'impression. Cette option peut être utilisée en sus du mode imprimé. Un saut de page n'est PAS inséré à l'intérieur d'un tableau.
GOTOURL(jamais affichée) précise vers quel URL le flot se dirigera. Des détails sont disponibles dans une recette.
NOPARAGRAPHomet de placer le texte de la question à l'intérieur d'un paragraphe HTML portant le style CSS QUESTION.

Conception

Ligne du nom de la question

La ligne du nom de la question utilise la syntaxe suivante (toute l'information doit tenir sur une seule ligne) :

    NOM_DE_LA_QUESTION MIN=n MAX=n NCOLS=n SUBSET=question CODESIN=question CATEGORIES=question COIN=(texte) UN OU PLUSIEURS MOTS-CLEFS MUST=(condition)

Le nom de la question :

  • peut contenir jusqu'à 64 caractères;
  • doit débuter avec une lettre autre que A;
  • peut contenir des lettres, des chiffres et le trait souligné.

Le paramètre MIN= est le nombre minimum de réponses attendues. Fixé à zéro, il permet de ne pas répondre à une question. La valeur par défaut est 1.

Le paramètre MAX= est le nombre maximum de réponses attendues. Fixé à une valeur plus grande que 1, il force l'utilisation de cases à cocher plutôt que les boutons radios. La valeur par défaut est 1.

En fixant tant MIN que MAX à zéro, on crée une question sans catégorie de réponse. CallWeb affiche le texte de cette question et sa note, s'ils existent.

Le paramètre NCOLS= détermine combien de colonnes seront utilisées pour afficher les catégories de réponses. La valeur par défaut est une seule colonne. Cette valeur par défaut peut être modifiée questionnaire par questionnaire (et pour l'ensemble d'un questionnaire) grâce à l'instruction dièse # N COLONNES PAR DEFAUT. Finalement, le paramètre NCOLS=, qui ne s'applique qu'à une question, a préséance sur les valeurs par défaut.

Le paramètre SUBSET=question nomme la partie ouverte qui sera utilisée pour réduire la liste des catégories de réponses d'une question sur la base du texte des étiquettes de réponses (référez-vous à la description complète de cette option).

Le paramètre CODESIN=question nomme la partie ouverte qui sera utilisée pour réduire la liste des catégories de réponses d'une question sur la base de toute caractéristique d'une base de données associée (référez-vous à la description complète de cette option).

Le paramètre CATEGORIES=question nomme la partie ouverte qui fournira la liste des catégories de réponses (référez-vous à la description complète de cette option).

Le paramètre MUST=(condition) spécifie la condition logique qui exige qu'une réponse soit donnée à la question.

Le paramètre CORNER=(texte) modifie le texte affiché dans le coin gauche de l'en-tête d'un tableau, pour cette question seulement. Il peut contenir un segment pour chaque langue du questionnaire, spécifié grâce à des crochets et à un code à deux lettres (p.ex., [EN]).

  • Référez-vous à la section sur les conditions d'affichage pour ce qui est de la syntaxe des conditions logiques.
  • La condition logique doit figurer entre parenthèses (pour une condition en style xBase) ou entre accolades (pour une condition de style Perl).
  • Ce paramètre s'ajoute aux paramètres MIN et MAX de sorte qu'une question peut avoir un minimum de zéro réponse (c.-à-d., que l'on permette de ne pas y répondre sauf dans les circonstances définies dans la condition MUST).
  • La condition MUST n'est appliquée que si la question est affichée selon sa condition d'affichage.
  • La condition MUST doit être spécifiée en dernier lieu sur la ligne du nom de la question.
  • Exemple d'utilisation : supposons que l'on veuille construire un tableau comportant deux questions côte-à-côte, une cote d'importance dont la dernière catégorie « autre » comporte une partie ouverte et une question sur échelle. Chacune de ces questions a un minimum de zéro réponse puisque certaines personnes ne fourniront pas d'« autre » réponse mais, si une réponse est fournie à l'échelle, une description est nécessaire dans la partie ouverte. Dans ce cas, la condition MUST=(Q2.GT.1) appliquée à Q1 insisterait pour que l'on fournisse une réponse à Q1 si Q2 possède une réponse.

Les MOTS-CLEFS peuvent être l'une ou l'autre ou plusieurs des valeurs suivantes (certaines sont logiquement mutuellement exclusives, d'autres non) :

MOTS-CLEFS TOUCHANT LES CATÉGORIES DE RÉPONSES
ROTATIONLes catégories de réponses sans code de comportement [B]loqué sont affichées en ordre aléatoire (autrefois, la règle était que tous les codes sous 900 étaient permutés; ceci est toujours disponible). Ce mot-clef peut aussi être utilisé avec la syntaxe ROTATION=Qx; la permutation appliquée à la question courante est alors copiée de la permutation Qx (ceci est aussi appelé « permutations parallèles » ou « permutations contrôlées »).
INVERSIONLes catégories de réponses sans code de comportement [B]loqué sont affichées aléatoirement à l'endroit ou à l'envers (autrefois, la règle était que tous les codes sous 900 étaient permutés; ceci est toujours disponible). Ce mot-clef peut aussi être utilisé avec la syntaxe INVERSION=Qx; l'inversion appliquée à la question courante est alors copiée de l'inversion Qx (ceci est aussi appelé « inversions parallèles » ou « inversions contrôlées »).
ALPHALes catégories de réponses sans code de comportement [B]loqué sont triées en ordre alphabétique d'étiquette de réponse dans la langue affichée (autrefois, la règle était que tous les codes sous 900 étaient permutés; ceci est toujours disponible)
DROPDOWNLes catégories de réponses sont présentées dans une liste déroulante plutôt que comme un ensemble de boutons radios ou de cases à cocher
CHECKALLCe mot-clef fixe automatiquement le nombre maximal de réponses possibles au nombre de catégories non-exclusives.
SCALELes catégories de réponses sont affichées sur une échelle horizontale. Seul, ce mot-clef fait en sorte que le navigateur choisit la largeur optimale des colonnes du tableau; dans la syntaxe « SCALE=nn », la largeur des colonnes est fixée à « xx » pixels. Ajoutez C devant « nn » et le tableau est centré sur la page. Ce mot-clef ne fonctionne pas de concert avec la syntaxe de clonage succincte.
FORCEHEADER(ou FORCEENTETE) Quand des questions sont présentées en format tableau, ce mot-clef déclenche l'ajout d'une en-tête de tableau (soit le texte des catégories de réponses) avant la question courante.
ONCEACROSSUn seul répondant peut sélectionner l'une ou l'autre des catégories de réponses (ayant un code inférieur à 9000); les catégories déjà sélectionnées ne sont pas affichées dans la liste des réponses possibles.
NOTESTAnnule les tests de compilation sur les catégories de réponses (utile pour accélérer la compilation quand une question comporte des milliers de catégories de réponses, que cette question a été testée préalablement et qu'elle n'a pas été modifiée depuis).
SEMANTICDécoupe la note en deux morceaux au dernier oblique et place le second morceau parmi les choix de réponse pour rendre l'effet d'une échelle de sémantique différentielle. Note : n'utilisez pas la copie de note ou la copie de catégorie de réponses dans les questions SEMANTIC.
NOPRINTCATDésactive l'impression des catégories de réponse en mode imprimé (utile pour les très longues listes de catégories).
DONOTPRINTDésactive l'impression de la question en mode imprimé.
SUGGaffiche un message d'avertissement d'un nombre insuffisant de réponses seulement une fois (puis accepte un nombre moindre de réponses que spécifié dans le paramètre MIN). Note : ne fonctionne qu'une fois qu'un dossier a été créé dans la base de données.
MOTS-CLEFS TOUCHANT LES CALCULS
BLANK(jamais affichée) Le premier code est attribué à la question si la condition d'affichage est vraie (référez-vous aussi aux calculs)
CALCUL(jamais affichée) La question effectue un calcul et retourne le résultat dans une autre question (ou la même)
RANDOM(jamais affichée) Un nombre aléatoire est attribué à la question (référez-vous aussi aux calculs)
WEIGHTun poids est conservé dans la partie ouverte de cette variable et est utilisé pour les calculs de cwfreq et cwquestionnaire
MOT-CLEFS AFFECTANT L'AFFICHAGE DES BOUTONS
CULDESACLe questionnaire prend fin à cette question sans se rediriger vers un URL externe. La question est affichée sans bouton ou image permettant de passer à la question suivante. Si la question fait partie d'une page comprenant plusieurs questions, seule la dernière question affichée dans la page aura un effet sur l'affichage du bouton.
BACKWALLLe questionnaire n'affiche pas de bouton de recul à la question précédente pour cette question et ne permet pas de reculer plus loin. Si la question fait partie d'une page comprenant plusieurs questions, seule la dernière question affichée dans la page aura un effet sur l'affichage du bouton.
UNLOCKSi la question courante est seule sur une page ou est la dernière question d'une page comportant plus d'une question, un bouton « Sauver et fermer » est ajouté. Sur utilisation, ce bouton valide les réponses, sauvegarde les données, relâche le verrou sur le dossier et ferme la fenêtre du navigateur.
NOSTOPSi la question courante est seule sur une page ou est la dernière question d'une page comportant plus d'une question, le bouton « Stop » n'est pas affiché.
NOTHERMOMETERSuspend l'affichage de la barre de progression pour la page courante (le mot-clef doit être placé sur la première question d'une page multi-question si le thermomètre est affiché en haut de la page et sur la dernière question si le thermomètre est affiché au bas de la page).
NOLANGUAGESuspend l'affichage du/des bouton/s de langue pour la page courante (le mot-clef doit être placé sur la première question d'une page multi-question si le thermomètre est affiché en haut de la page et sur la dernière question si le thermomètre est affiché au bas de la page).
SUBMITUtilise les instructions dièses « # Texte submit » et « Image submit » pour le bouton de Page suivante.
NOPRETESTdésactive l'instruction dièse « # Pretest » pour cette question.
TYPES DE QUESTIONS
RELATIONÉtablit un lien relationnel entre le projet courant et un autre projet contenant des dossiers enfants. Cette question affiche des boutons pour ajouter un enfant, en effacer et en modifier. Référez-vous à la section portant sur les projets hiérarchiques pour plus ample information.
ERASERELDéfinit une question qui sert à demander la confirmation de l'effacement des enfants dans un projet hiérachique. Référez-vous à la section portant sur les projets hiérarchiques pour plus ample information. Une telle question est automatiquement BACKWALL; elle n'est pas affichée dans le cours normal du questionnaire.
NEVERUPDATE(jamais affichée) CallWeb ne modifiera jamais l'information de la base de données pour cette question, sauf par prépopulationement. Ce comportement est utile lorsque CallWeb est une composante d'une base de données plus large.
STOCK(jamais affichée) Ce mot-clef désactive la question qui ne peut être utilisée que pour stocker de l'information produite par une question CALCUL. Il est aussi utilisé pour créer des boîtes de saisie utilisées dans des catégories « Autre, précisez » dans un tableau.
ONLYONCEUne fois qu'une réponse a été enregistrée pour une telle question, CallWeb refuse de changer la réponse fournie. Ce comportement butté est aussi valide pour les parties ouvertes.
AUTONEXTutilisé comme AUTONEXT=n, passe à l'écran suivant du questionnaire automatiquement après n secondes et attribue la première catégorie à la réponse. Les conditions d'affichage sont respectées. Cette instruction exige JavaScript sur le poste client.
MEMOAffiche un tableau de questions et de réponses pour la liste des questions insérée dans le segment de texte de la question (dans le format Q1-Q5, Q7, Q8-Q10, ...); seules les questions ordinaires contenant des réponses sont présentées. Les conditions d'affichage sont respectées.
EMAIL(jamais affichée) La question est utilisée par cwemail.cgi pour envoyer des messages d'invitation ou de notification aux participants
MEMEXCLexclut une question de l'affichage d'une question MEMO.
VERBATIMAffiche toutes les parties ouvertes de type alphanumérique du questionnaire dans une seule fenêtre et permet de faire le ménage de leur contenu. Seules les parties ouvertes contenant quelque chose sont affichées. Les nombres minimum et maximum de réponses d'une question VERBATIM sont fixés à zéro au moment de la compilation. Une telle question ne peut pas faire partie d'un tableau de questions, mais elle peut être insérée dans une page comprenant plusieurs questions et elle peut comporter une condition d'affichage
VBTMEXCLexclut une question de l'affichage d'une question VERBATIM.
QUOTA(jamais affichée) La question contient des instructions pour calculer des quotas de questionnaires complétés.
INFOCATI(affichée seulement par l'interface des interviewers) Utilisé par l'environnement CATI de CallWeb pour identifier les questions dont les valeurs sont présentées aux interviewers avec le numéro de téléphone à signaler. Un champ INFOCATI comportant une partie ouverte de type T affiche un bouton de signalement si le projet utilise un signaleur.
CONTACT(affichée seulement par l'interface des interviewers) Utilisé par l'environnement CATI de CallWeb pour identifier la question qui contient le script de contact d'un sondage téléphonique. Le texte peut utiliser des rappels.
DESTOP(jamais affichée) utilisée dans le bloc de questions atteint par un bouton STOP, elle branche le cheminement du questionnaire à la question depuis laquelle le bouton STOP a été invoqué.
PAGEBREAKUn saut de page est inséré après cette question à l'impression. Cette option peut être utilisée en sus du mode imprimé. Un saut de page n'est PAS inséré à l'intérieur d'un tableau.
GOTOURL(jamais affichée) précise vers quel URL le flot se dirigera. Des détails sont disponibles dans une recette.
NOPARAGRAPHomet de placer le texte de la question à l'intérieur d'un paragraphe HTML portant le style CSS QUESTION.

   

Conception

Texte de la question

Le texte d'une question peut couvrir plusieurs lignes. CallWeb rattache toutes les lignes avant de traiter le texte. Rappelez-vous que l'apparence finale de la question pour le participant, incluant le césures de lignes, est contrôlée par le navigateur.

Exemple d'un segment de texte de question :

    % Texte de la question
       [EN]Are you generally considered a male or a female?
       [FR]Êtes-vous généralement vu(e) comme un homme ou une femme?

Le texte de la question peut contenir des codes HTML. De tels codes sont interprétés directement par le navigateur.

On peut insérer des rappels de réponses précédentes dans le texte de la question. Voir la section Rappels de réponses pour la syntaxe des rappels.

Si le questionnaire comporte plus d'une langue, les segments de chaque langue doivent être précédés d'un code ISO de langue entre crochets (p.ex., [EN]). Un signe égal (=) seul dans un champ texte permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.

Le texte dune question peut être emprunté d'une autre question en insérant le signe égal (=) à gauche du nom de la question dont il faut copier le texte. Cependant, si le texte de la question débute par le signe tilde (~), la copie par le signe égal est désactivée; ceci permet de créer un titre de courriel encodé en UTF-8 et qui commence par un signe égal — le tilde est effacé silencieusement.

Conception

Texte de la question

Le texte d'une question peut couvrir plusieurs lignes. CallWeb rattache toutes les lignes avant de traiter le texte. Rappelez-vous que l'apparence finale de la question pour le participant, incluant le césures de lignes, est contrôlée par le navigateur.

Exemple d'un segment de texte de question :

    % Texte de la question
       [EN]Are you generally considered a male or a female?
       [FR]Êtes-vous généralement vu(e) comme un homme ou une femme?

Le texte de la question peut contenir des codes HTML. De tels codes sont interprétés directement par le navigateur.

On peut insérer des rappels de réponses précédentes dans le texte de la question. Voir la section Rappels de réponses pour la syntaxe des rappels.

Si le questionnaire comporte plus d'une langue, les segments de chaque langue doivent être précédés d'un code ISO de langue entre crochets (p.ex., [EN]). Un signe égal (=) seul dans un champ texte permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.

Le texte dune question peut être emprunté d'une autre question en insérant le signe égal (=) à gauche du nom de la question dont il faut copier le texte. Cependant, si le texte de la question débute par le signe tilde (~), la copie par le signe égal est désactivée; ceci permet de créer un titre de courriel encodé en UTF-8 et qui commence par un signe égal — le tilde est effacé silencieusement.

   

Conception

Note

Les notes sont affichées après le texte de la question et utilisent une mise en page différente. Elles servent aussi à identifier le texte affiché à gauche de la ligne dans une présentation en tableau (référez-vous à la section portant sur les tableaux).

Exemple d'un segment note :

    % Note
       [EN]Please be as specific as possible.
       [FR]Veuillez être aussi précis que possible.

Le texte des notes peut contenir du code HTML. Ce code est interprété directement par le navigateur.

Le texte d'une note peut contenir des rappels de réponses précédentes.

Si le questionnaire comporte plus d'une langue, les segments de chaque langue doivent être précédés d'un code ISO à deux caractères, entre crochets (p.ex., [FR]). Un signe égal (=) seul dans un champ de note permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.

Le texte d'une note peut être emprunté d'une autre question en insérant le signe égal (=) à gauche du nom de la question dont il faut copier le texte.

Clonage de questions

Quand plusieurs questions qui sont exactement les mêmes sauf pour ce qui est du texte de la note (et possiblement de la condition d'affichage)) sont nécessaires (p.ex., pour créer une batterie de questions à présenter dans un tableau), on peut utiliser une syntaxe succincte de clonage. Voici une explication par un exemple :

    Q1
    % question
       Avez-vous déjà :
    % note
       [SUFFIXE:_A]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    % catégories
       Oui
       Non
    % sauts
    % condition
    % partie ouverte
    !

Ce code crée trois questions (Q1_A, Q1_B et Q1_C) qui ont les mêmes caractéristiques sauf le contenu de la note. Ces questions peuvent être placées sur une même page ou dans un tableau, ou non. Si le questionnaire contient plus d'une langue, chaque segment de langue doit être préfixé d'un code de langue entre crochets.

La question réceptrice (Q1 dans l'exemple) n'existe pas du point de vue de CallWeb; seules les questions crées par les suffixes existent réellement. Donc, bien qu'il soit possible de copier depuis et vers les questions suffixes (Q1_A et les autres dans l'exemple), il n'est pas possible de copier depuis et vers la question réceptrice (Q1). En conséquence, l'exemple suivant est légitime :

    Q1
    ...
       [SUFFIXE:_A]=Q0_A
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    ...
    Q2A
    ...
    % note
       =Q1_A
    ...

L'exemple suivant est aussi légitime :

    Q1
    ...
       [SUFFIXE:_A]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    ...
    Q2
    ...
    % note
       [SUFFIXE:_A]=Q1_A
       [SUFFIXE:_B]=Q1_B
       [SUFFIXE:_C]=Q1_C
    ...

Cependant, l'exemple suivant n'est pas valide :

    Q1
    ...
       [SUFFIXE:_A]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    ...
    Q2
    % question
       =Q1
       ## Indice : cet exemple n'est pas valide parce que Q1 est une question réceptrice et qu'en conséquence elle n'existe pas
    ...
    % note
       =Q1
    ...

Nous recommandons fortement de ne pas construire un script qui contient une question ordinaire (p.ex., Q1) et une question réceptrice (p.ex., Q1 + suffixes), ou deux questions réceptrices, portant le même nom. Le compilateur est capable de gérer de telles situations, mais le module cwedit ne le peut pas.

Des conditions d'affichage peuvent être affectées à des suffixes particuliers. Une telle condition d'affichage est insérée entre crochets immédiatement après le segment SUFFIXE qui est entre crochets et immédiatement avant le texte de la note. La condition d'affichage d'un SUFFIXE a préséance sur la condition d'affichage qui est rattachée à la question réceptrice. Donc, dans l'exemple suivant :

    Q2
    % question
       Avez-vous déjà :
    % note
       [SUFFIXE:_A][Q1.EQ.1]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    % catégories
       Oui
       Non
    % sauts
    % condition
       Q1.EQ.2-4
    % partie ouverte
    !

la condition d'affichage du premier énoncé est [Q1.EQ.1] alors que celle des autres énoncés est [Q1.EQ.2-4].

La même logique joue pour le paramètre COIN=(texte) que l'on peut ajouter à la ligne SUFFIXE comme suit :

    Q2
    % question
       Avez-vous déjà :
    % note
       [SUFFIXE:_A][CORNER=([EN]Placer ce texte dans le coin du tableau)]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    % catégories
       Oui
       Non
    % sauts
    % condition
       Q1.EQ.2-4
    % partie ouverte
    !

Le paramètre COIN=(texte) modifie le texte affiché dans le coin supérieur gauche d'un tableau, pour la question courante seulement. Il peut contenir un segment par langue du questionnaire, chaque segment est préfixé d'un code ISO à deux lettres entre crochets.

Les questions SUFFIXE ne sont pas limitées à la construction de tableaux mais elles sont une manière très rapide de créer une série de questions qui partagent un jeu de réponses et qui peuvent être affichées en tableau. Il est parfois utile d'insérer une ligne titre dans un tel tableau; dans l'image ci-contre, les lignes intitulées PRODUCT et FINANCIAL jouent le rôle de titres (aucune donnée n'est recueillie à leur propos). Une façon simple de créer de tels titres est d'ajouter la lettre « T » au mot-clef « SUFFIXE » (donc, « SUFFIXET »). Une question SUFFIXE-titre se voit imposer un nombre minimum de réponses de zéro (pour qu'elle puisse être laissée sans réponse) et toutes ses catégories de réponses reçoivent un code de comportement « N » (en plus de tout autre code de comportement que les catégories de réponse ont déjà) de sorte qu'aucun objet de réponse (une puce ou une boîte à cocher) n'apparaisse dans les cellules de la ligne titre.

Conception

Note

Les notes sont affichées après le texte de la question et utilisent une mise en page différente. Elles servent aussi à identifier le texte affiché à gauche de la ligne dans une présentation en tableau (référez-vous à la section portant sur les tableaux).

Exemple d'un segment note :

    % Note
       [EN]Please be as specific as possible.
       [FR]Veuillez être aussi précis que possible.

Le texte des notes peut contenir du code HTML. Ce code est interprété directement par le navigateur.

Le texte d'une note peut contenir des rappels de réponses précédentes.

Si le questionnaire comporte plus d'une langue, les segments de chaque langue doivent être précédés d'un code ISO à deux caractères, entre crochets (p.ex., [FR]). Un signe égal (=) seul dans un champ de note permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.

Le texte d'une note peut être emprunté d'une autre question en insérant le signe égal (=) à gauche du nom de la question dont il faut copier le texte.

Clonage de questions

Quand plusieurs questions qui sont exactement les mêmes sauf pour ce qui est du texte de la note (et possiblement de la condition d'affichage)) sont nécessaires (p.ex., pour créer une batterie de questions à présenter dans un tableau), on peut utiliser une syntaxe succincte de clonage. Voici une explication par un exemple :

    Q1
    % question
       Avez-vous déjà :
    % note
       [SUFFIXE:_A]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    % catégories
       Oui
       Non
    % sauts
    % condition
    % partie ouverte
    !

Ce code crée trois questions (Q1_A, Q1_B et Q1_C) qui ont les mêmes caractéristiques sauf le contenu de la note. Ces questions peuvent être placées sur une même page ou dans un tableau, ou non. Si le questionnaire contient plus d'une langue, chaque segment de langue doit être préfixé d'un code de langue entre crochets.

La question réceptrice (Q1 dans l'exemple) n'existe pas du point de vue de CallWeb; seules les questions crées par les suffixes existent réellement. Donc, bien qu'il soit possible de copier depuis et vers les questions suffixes (Q1_A et les autres dans l'exemple), il n'est pas possible de copier depuis et vers la question réceptrice (Q1). En conséquence, l'exemple suivant est légitime :

    Q1
    ...
       [SUFFIXE:_A]=Q0_A
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    ...
    Q2A
    ...
    % note
       =Q1_A
    ...

L'exemple suivant est aussi légitime :

    Q1
    ...
       [SUFFIXE:_A]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    ...
    Q2
    ...
    % note
       [SUFFIXE:_A]=Q1_A
       [SUFFIXE:_B]=Q1_B
       [SUFFIXE:_C]=Q1_C
    ...

Cependant, l'exemple suivant n'est pas valide :

    Q1
    ...
       [SUFFIXE:_A]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    ...
    Q2
    % question
       =Q1
       ## Indice : cet exemple n'est pas valide parce que Q1 est une question réceptrice et qu'en conséquence elle n'existe pas
    ...
    % note
       =Q1
    ...

Nous recommandons fortement de ne pas construire un script qui contient une question ordinaire (p.ex., Q1) et une question réceptrice (p.ex., Q1 + suffixes), ou deux questions réceptrices, portant le même nom. Le compilateur est capable de gérer de telles situations, mais le module cwedit ne le peut pas.

Des conditions d'affichage peuvent être affectées à des suffixes particuliers. Une telle condition d'affichage est insérée entre crochets immédiatement après le segment SUFFIXE qui est entre crochets et immédiatement avant le texte de la note. La condition d'affichage d'un SUFFIXE a préséance sur la condition d'affichage qui est rattachée à la question réceptrice. Donc, dans l'exemple suivant :

    Q2
    % question
       Avez-vous déjà :
    % note
       [SUFFIXE:_A][Q1.EQ.1]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    % catégories
       Oui
       Non
    % sauts
    % condition
       Q1.EQ.2-4
    % partie ouverte
    !

la condition d'affichage du premier énoncé est [Q1.EQ.1] alors que celle des autres énoncés est [Q1.EQ.2-4].

La même logique joue pour le paramètre COIN=(texte) que l'on peut ajouter à la ligne SUFFIXE comme suit :

    Q2
    % question
       Avez-vous déjà :
    % note
       [SUFFIXE:_A][CORNER=([EN]Placer ce texte dans le coin du tableau)]fait du vélo
       [SUFFIXE:_B]conduit une voiture
       [SUFFIXE:_C]piloté un avion
    % catégories
       Oui
       Non
    % sauts
    % condition
       Q1.EQ.2-4
    % partie ouverte
    !

Le paramètre COIN=(texte) modifie le texte affiché dans le coin supérieur gauche d'un tableau, pour la question courante seulement. Il peut contenir un segment par langue du questionnaire, chaque segment est préfixé d'un code ISO à deux lettres entre crochets.

Les questions SUFFIXE ne sont pas limitées à la construction de tableaux mais elles sont une manière très rapide de créer une série de questions qui partagent un jeu de réponses et qui peuvent être affichées en tableau. Il est parfois utile d'insérer une ligne titre dans un tel tableau; dans l'image ci-contre, les lignes intitulées PRODUCT et FINANCIAL jouent le rôle de titres (aucune donnée n'est recueillie à leur propos). Une façon simple de créer de tels titres est d'ajouter la lettre « T » au mot-clef « SUFFIXE » (donc, « SUFFIXET »). Une question SUFFIXE-titre se voit imposer un nombre minimum de réponses de zéro (pour qu'elle puisse être laissée sans réponse) et toutes ses catégories de réponses reçoivent un code de comportement « N » (en plus de tout autre code de comportement que les catégories de réponse ont déjà) de sorte qu'aucun objet de réponse (une puce ou une boîte à cocher) n'apparaisse dans les cellules de la ligne titre.

   

Conception

Catégories de réponses

Chaque catégorie de réponse doit être entièrement décrite sur une seule ligne. Rappelez-vous que l'apparence finale pour le participant au sondage, y compris la césure des lignes, est contrôlée par le navigateur du participant. La syntaxe de la ligne de définition d'une catégorie de réponse est l'une des trois suivantes :

    Juste une étiquette
    *nombre*étiquette
    *nombre*code_de_comportement*étiquette

Une étiquette simple se voit attribuer automatiquement un code numérique plus grand d'une unité que le code précédent, en commençant par 1. Si un nombre est fourni entre astérisques, ce nombre devient le code de la catégorie. Les catégories de réponses n'ont pas à être triées selon ce code et les codes n'ont pas à former une séquence.

Les catégories de réponses reçoivent toujours un code numérique. Par défaut, CallWeb réserve quatre positions pour stocker tous les codes de réponses des questions ordinaires (à l'exclusion de la partie ouverte mais on peut utiliser des codes plus larges. Dans ces cas, le compilateur exigera l'instruction dièse « # Largeur extraction ».

Un ou plusieurs codes de comportement peuvent être insérés entre astérisques à la suite du code de réponse (si un code de comportement est nécessaire, un code numérique entre astérisques est requis). Voici une liste des codes de comportement :

Acode toujours affiché; ce code est toujours affiché dans cwfreq.cgi, même si le module a reçu l'instruction de ne pas afficher les catégories sans effectif.
Bcode bloqué; ce code demeure à sa position dans le contexte de permutations, d'inversions et d'ordres alphabétiques. Un code [b]loqué est une ancre. Les codes qui le précèdent ou le suivent sont sujets aux permutations, inversions et ordres alphabétiques. Prenons pour acquis qu'une question ROTATION contient dix codes de 1 à 10 et que les codes 1, 5 et 10 sont [b]loqués; les codes 2 à 4 et 6 à 9 sont présentés dans un ordre aléatoire et les codes 1, 5 et 10 demeurent statiques dans les première, cinquième et dixième positions.
Cpas de virgule; les virgules sont effacées du contenu de la partie ouverte numérique associée à la question.
Dcatégorie par défaut; cette catégorie de réponse est sélectionnée par défaut lors de l'affichage de la question.
Emise en évidence: cette catégorie de réponse est affichée dans la zone du bouton radio et de la case à cocher ainsi que dans la zone de l'étiquette; cette réponse n'est pas sélectionnable.
Fcatégorie forcée; cette catégorie de réponse est affichée peu importe la situation (p.ex., les conditions d'affichage de catégorie de réponse, les questions SUBSET).
Gcapitalisation; la première lettre suivant un délimiteur (virgule, espace, tiret, etc.) dans le texte de la partie ouverte alphanumérique associée à la question est transformée en majuscule.
Hcaché; la catégorie de réponse contient le texte du <label> entourant le texte de la question en mode accessibilité.
Iinvisible; la catégorie de réponse n'est pas affichée dans le questionnaire.
Kéliminer le retour à la ligne avant la boîte d'une partie ouverte alpha-numérique.
Lpréfixe; l'étiquette de la catégorie de réponse est préfixée du texte (et éventuellement du code HTML) contenu dans l'instruction dièse « # LIRE » et est mise en page avec le style .NEPASLIRE .
Men contexte matriciel seulement, l'étiquette de la catégorie de réponse est affichée dans la cellule correspondante du tableau. Les valeurs rappelées sont respectées. En utilisant M et N conjointement, on peut afficher l'étiquette de la catégorie de réponse seule dans une cellule. L'étiquette de catégorie de réponse pourrait n'être formée que d'un rappel de valeur. Par défaut, la cellule de la bannière qui est vis-à-vis la catégorie de réponse M est vide; CallWeb peut placer le texte trouvé à la suite du code [COL] dans cette cellule (p.ex.,
*1*M*[EN]???[COL]DK/NR[FR]???[COL]NSP/PDR
affiche « ??? » dans les cellules du tableau et "DK/NR" ou "NSP/PDR" dans la bannière). Ce système fonctionne aussi avec les listes déroulantes si le texte [COL] est placé dans la première catégorie de réponse.
Ncatégorie non sélectionnable; cette catégorie de réponse ne peut pas être sélectionnée mais son étiquette est affichée; ceci est utile pour insérer des sous-titres dans une longue liste de catégories.
Opartie ouverte optionnelle; si cette catégorie de réponse possede une partie ouverte, la catégorie pourrait être sélectionnée sans fournir une réponse à la partie ouverte.
Ppréfixe; l'étiquette de la catégorie de réponse est préfixée du texte (et éventuellement du code HTML) contenu dans l'instruction dièse « # NE PAS LIRE » et est mise en page avec le style .NEPASLIRE .
Scode spécial; dans une présentation ordinaire de la question, l'étiquette de la catégorie de réponse est mise en page avec le style SPECIAL; en format matriciel, en plus de cette mise en page, la colonne adopte la couleur de l'instruction dièse « # M_SpecialColour » comme si le code était cité dans le paramètre SPECIAL de l'instruction MATRICE.
Tteste la partie ouverte; lorsqu'associé à un code qui ouvre une partie ouverte numérique, T réaffiche la page si la valeur fournie ne se conforme pas aux minimum et au maximum prévus; la valeur saisie sur la seconde page est acceptée peu importe si elle se conforme à ces limites.
Umajuscules; la partie ouverte alphanumériqie de la question est conservée en majuscules.
Vvaleur manquante; cette information est utilisée dans les distributions univariées de cwfreq pour indiquer des valeurs manquantes.
Xcatégorie exclusive; si cette catégorie de réponse est sélectionnée, elle doit l'être seule; ce code de comportement est actif seulement dans le contexte des questions à choix multiples.
<place une boîte de partie ouverte à gauche dans la cellule d'un tableau (c'est la position par défaut); ce code fait de même pour les listes déroulantes en autant qu'il est placé sur le premier code de réponse de la question. En dehors d'un tableau, il place une boîte d'une ligne à gauche de l'étiquette du choix de réponse.
=place une boîte de partie ouverte au centre dans la cellule d'un tableau; ce code fait de même pour les listes déroulantes en autant qu'il est placé sur le premier code de réponse de la question.
>place une boîte de partie ouverte à droite dans la cellule d'un tableau; ce code fait de même pour les listes déroulantes en autant qu'il est placé sur le premier code de réponse de la question. En dehors d'un tableau, il place une boîte d'une ligne à droite de l'étiquette du choix de réponse.
)place le texte défini par le code de comportement « M » (ci-dessus) à droite du bouton radio ou de la case à cocher (à gauche par défaut). Voir aussi « # Position texte M ».
(place le texte défini par le code de comportement « M » (ci-dessus) à gauche du bouton radio ou de la case à cocher (c'est la position par défaut). Voir aussi « # Position texte M ».
~désactive l'affichage du calendrier pour une partie ouverte de type D.

Les segments de langue dans les catégories de réponses sont traités de la même manière que dans le texte de la question. Un signe égal (=) seul dans un champ texte permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.

Exemple d'une catégorie de réponse :

    *9*X*[EN]Don't know[FR]Ne sait pas

On peut définir un nombre illimité de catégories de réopnses pour chaque question. La compilation du questionnaire est évidemment plus longue lorsque le nombre de catégories de réponses augmente.

Copie de catégories de réponses

Il est possible de copier intégralement les catégories de réponses d'une autre quesiton en insérant une seule ligne dans la section des catégories de réponses. Cette ligne contient le signe égale (=) et le nom de la question de laquelle il faut copier, comme dans ce qui suit :

    =Q1

Les questions qui copient et celles de laquelle elles copient n'ont pas à se trouver dans un ordre particulier dans le questionnaire.

Alias de réponses

Les alias de réponses sont des éléments de texte qui sont différents de l'étiquette principale d'une réponse et qui peuvent être rappelés en lieu et place de l'étiquette principale. La syntaxe des alias est comme suit :

    étiquette[ALIAS MP:text][ALIAS NOM:text]

Les codes de langues et les codes de comportements peuvent être utilisés en même temps que les alias comme dans cet exemple :

    *5*D*[EN]label[ALIAS FIRST:text][ALIAS SECOND:text][FR]étiquette[ALIAS FIRST:texte][ALIAS SECOND:texte]

A l'intérieur d'un jeu de codes de réponses, certains codes peuvent posséder un alias et d'autres non. Un code de réponse peut comporter un nombre indéfini d'alias. Les alias doivent être placés à la fin de l'étiquette de la réponse. On peut rappeler un alias en utilisant la syntaxe &QUESTION#alias (p.ex., &Q1#MP).

Attribut « title »

On peut ajouter des étiquettes spéciales à chaque catégorie de réponse pour améliorer l'accessibilité pour les mal-voyants. Ces étiquettes spéciales seront placées dans l'attribut « title » des objets HTML de formulaire pour mieux les identifier. Ces étiquettes sont définies dans une paire de bornes <title></title> dans la définition d'une catégorie de réponse comme ceci :

    *5*D*[EN]label<title>The title goes here</title>[ALIAS FIRST:text][FR]étiquette<title>Le titre va ici</title>[ALIAS FIRST:texte]

L'attribut « title » peut être défini pour toutes les catégories, certaines ou aucune, dans une langue ou plusieurs, selon les besoins. La valeur par défaut est l'étiquette de réponse elle-même.

Cas particuliers : permutations et inversions

CallWeb offre des outils spéciaux pour mettre en oeuvre la permutation et l'inversion de catégories de réponses.

Si la ligne du nom de la question compte le mot-clef « ROTATION », les catégories de réponses sont affichées dans un ordre aléatoire (sujet aux codes comportant le code de comportement B).

Si la ligne du nom de la question compte le mot-clef « INVERSION », les catégories sont présentées dans l'ordre initial ou inversé, de façon aléatoire (sujet aux codes comportant le code de comportement B).

Exemple :

    Q1 ROTATION
    % Question
    [EN]Are you generally considered a male or a female?
    [FR]Êtes-vous généralement vu(e) comme un homme ou une femme?

Cas particulier : conditions d'affichage de catégorie de réponse

Par défaut, toutes les catégories de réponses sont affichées. Cependant, leur affichage peut être rendu conditionnel à des réponses antérieures en insérant une ligne additionnelle devant la catégorie de réponse. Cette ligne additionnelle contient la condition d'affichage entre crochets. Une telle ligne de condition d'affichage n'affecte que la catégorie de réponse qui est définie sur la ligne qui suit immédiatement.

Exemple :

    Étiquette
    [Q1.EQ.1]
    *2*Étiquette
    *3*Étiquette

Dans cet exemple, la seconde catégorie de réponse n'est affichée (et n'est disponible au répondant) que si la valeur de Q1 est 1. Les conditions d'affichage de catégories de réponses sont respectées même lorsque les questions sont présentées sous forme de tableau.

Conception

Catégories de réponses

Chaque catégorie de réponse doit être entièrement décrite sur une seule ligne. Rappelez-vous que l'apparence finale pour le participant au sondage, y compris la césure des lignes, est contrôlée par le navigateur du participant. La syntaxe de la ligne de définition d'une catégorie de réponse est l'une des trois suivantes :

    Juste une étiquette
    *nombre*étiquette
    *nombre*code_de_comportement*étiquette

Une étiquette simple se voit attribuer automatiquement un code numérique plus grand d'une unité que le code précédent, en commençant par 1. Si un nombre est fourni entre astérisques, ce nombre devient le code de la catégorie. Les catégories de réponses n'ont pas à être triées selon ce code et les codes n'ont pas à former une séquence.

Les catégories de réponses reçoivent toujours un code numérique. Par défaut, CallWeb réserve quatre positions pour stocker tous les codes de réponses des questions ordinaires (à l'exclusion de la partie ouverte mais on peut utiliser des codes plus larges. Dans ces cas, le compilateur exigera l'instruction dièse « # Largeur extraction ».

Un ou plusieurs codes de comportement peuvent être insérés entre astérisques à la suite du code de réponse (si un code de comportement est nécessaire, un code numérique entre astérisques est requis). Voici une liste des codes de comportement :

Acode toujours affiché; ce code est toujours affiché dans cwfreq.cgi, même si le module a reçu l'instruction de ne pas afficher les catégories sans effectif.
Bcode bloqué; ce code demeure à sa position dans le contexte de permutations, d'inversions et d'ordres alphabétiques. Un code [b]loqué est une ancre. Les codes qui le précèdent ou le suivent sont sujets aux permutations, inversions et ordres alphabétiques. Prenons pour acquis qu'une question ROTATION contient dix codes de 1 à 10 et que les codes 1, 5 et 10 sont [b]loqués; les codes 2 à 4 et 6 à 9 sont présentés dans un ordre aléatoire et les codes 1, 5 et 10 demeurent statiques dans les première, cinquième et dixième positions.
Cpas de virgule; les virgules sont effacées du contenu de la partie ouverte numérique associée à la question.
Dcatégorie par défaut; cette catégorie de réponse est sélectionnée par défaut lors de l'affichage de la question.
Emise en évidence: cette catégorie de réponse est affichée dans la zone du bouton radio et de la case à cocher ainsi que dans la zone de l'étiquette; cette réponse n'est pas sélectionnable.
Fcatégorie forcée; cette catégorie de réponse est affichée peu importe la situation (p.ex., les conditions d'affichage de catégorie de réponse, les questions SUBSET).
Gcapitalisation; la première lettre suivant un délimiteur (virgule, espace, tiret, etc.) dans le texte de la partie ouverte alphanumérique associée à la question est transformée en majuscule.
Hcaché; la catégorie de réponse contient le texte du <label> entourant le texte de la question en mode accessibilité.
Iinvisible; la catégorie de réponse n'est pas affichée dans le questionnaire.
Kéliminer le retour à la ligne avant la boîte d'une partie ouverte alpha-numérique.
Lpréfixe; l'étiquette de la catégorie de réponse est préfixée du texte (et éventuellement du code HTML) contenu dans l'instruction dièse « # LIRE » et est mise en page avec le style .NEPASLIRE .
Men contexte matriciel seulement, l'étiquette de la catégorie de réponse est affichée dans la cellule correspondante du tableau. Les valeurs rappelées sont respectées. En utilisant M et N conjointement, on peut afficher l'étiquette de la catégorie de réponse seule dans une cellule. L'étiquette de catégorie de réponse pourrait n'être formée que d'un rappel de valeur. Par défaut, la cellule de la bannière qui est vis-à-vis la catégorie de réponse M est vide; CallWeb peut placer le texte trouvé à la suite du code [COL] dans cette cellule (p.ex.,
*1*M*[EN]???[COL]DK/NR[FR]???[COL]NSP/PDR
affiche « ??? » dans les cellules du tableau et "DK/NR" ou "NSP/PDR" dans la bannière). Ce système fonctionne aussi avec les listes déroulantes si le texte [COL] est placé dans la première catégorie de réponse.
Ncatégorie non sélectionnable; cette catégorie de réponse ne peut pas être sélectionnée mais son étiquette est affichée; ceci est utile pour insérer des sous-titres dans une longue liste de catégories.
Opartie ouverte optionnelle; si cette catégorie de réponse possede une partie ouverte, la catégorie pourrait être sélectionnée sans fournir une réponse à la partie ouverte.
Ppréfixe; l'étiquette de la catégorie de réponse est préfixée du texte (et éventuellement du code HTML) contenu dans l'instruction dièse « # NE PAS LIRE » et est mise en page avec le style .NEPASLIRE .
Scode spécial; dans une présentation ordinaire de la question, l'étiquette de la catégorie de réponse est mise en page avec le style SPECIAL; en format matriciel, en plus de cette mise en page, la colonne adopte la couleur de l'instruction dièse « # M_SpecialColour » comme si le code était cité dans le paramètre SPECIAL de l'instruction MATRICE.
Tteste la partie ouverte; lorsqu'associé à un code qui ouvre une partie ouverte numérique, T réaffiche la page si la valeur fournie ne se conforme pas aux minimum et au maximum prévus; la valeur saisie sur la seconde page est acceptée peu importe si elle se conforme à ces limites.
Umajuscules; la partie ouverte alphanumériqie de la question est conservée en majuscules.
Vvaleur manquante; cette information est utilisée dans les distributions univariées de cwfreq pour indiquer des valeurs manquantes.
Xcatégorie exclusive; si cette catégorie de réponse est sélectionnée, elle doit l'être seule; ce code de comportement est actif seulement dans le contexte des questions à choix multiples.
<place une boîte de partie ouverte à gauche dans la cellule d'un tableau (c'est la position par défaut); ce code fait de même pour les listes déroulantes en autant qu'il est placé sur le premier code de réponse de la question. En dehors d'un tableau, il place une boîte d'une ligne à gauche de l'étiquette du choix de réponse.
=place une boîte de partie ouverte au centre dans la cellule d'un tableau; ce code fait de même pour les listes déroulantes en autant qu'il est placé sur le premier code de réponse de la question.
>place une boîte de partie ouverte à droite dans la cellule d'un tableau; ce code fait de même pour les listes déroulantes en autant qu'il est placé sur le premier code de réponse de la question. En dehors d'un tableau, il place une boîte d'une ligne à droite de l'étiquette du choix de réponse.
)place le texte défini par le code de comportement « M » (ci-dessus) à droite du bouton radio ou de la case à cocher (à gauche par défaut). Voir aussi « # Position texte M ».
(place le texte défini par le code de comportement « M » (ci-dessus) à gauche du bouton radio ou de la case à cocher (c'est la position par défaut). Voir aussi « # Position texte M ».
~désactive l'affichage du calendrier pour une partie ouverte de type D.

Les segments de langue dans les catégories de réponses sont traités de la même manière que dans le texte de la question. Un signe égal (=) seul dans un champ texte permet de copier le texte de la langue par défaut dans l'un ou l'autre des autres langues.

Exemple d'une catégorie de réponse :

    *9*X*[EN]Don't know[FR]Ne sait pas

On peut définir un nombre illimité de catégories de réopnses pour chaque question. La compilation du questionnaire est évidemment plus longue lorsque le nombre de catégories de réponses augmente.

Copie de catégories de réponses

Il est possible de copier intégralement les catégories de réponses d'une autre quesiton en insérant une seule ligne dans la section des catégories de réponses. Cette ligne contient le signe égale (=) et le nom de la question de laquelle il faut copier, comme dans ce qui suit :

    =Q1

Les questions qui copient et celles de laquelle elles copient n'ont pas à se trouver dans un ordre particulier dans le questionnaire.

Alias de réponses

Les alias de réponses sont des éléments de texte qui sont différents de l'étiquette principale d'une réponse et qui peuvent être rappelés en lieu et place de l'étiquette principale. La syntaxe des alias est comme suit :

    étiquette[ALIAS MP:text][ALIAS NOM:text]

Les codes de langues et les codes de comportements peuvent être utilisés en même temps que les alias comme dans cet exemple :

    *5*D*[EN]label[ALIAS FIRST:text][ALIAS SECOND:text][FR]étiquette[ALIAS FIRST:texte][ALIAS SECOND:texte]

A l'intérieur d'un jeu de codes de réponses, certains codes peuvent posséder un alias et d'autres non. Un code de réponse peut comporter un nombre indéfini d'alias. Les alias doivent être placés à la fin de l'étiquette de la réponse. On peut rappeler un alias en utilisant la syntaxe &QUESTION#alias (p.ex., &Q1#MP).

Attribut « title »

On peut ajouter des étiquettes spéciales à chaque catégorie de réponse pour améliorer l'accessibilité pour les mal-voyants. Ces étiquettes spéciales seront placées dans l'attribut « title » des objets HTML de formulaire pour mieux les identifier. Ces étiquettes sont définies dans une paire de bornes <title></title> dans la définition d'une catégorie de réponse comme ceci :

    *5*D*[EN]label<title>The title goes here</title>[ALIAS FIRST:text][FR]étiquette<title>Le titre va ici</title>[ALIAS FIRST:texte]

L'attribut « title » peut être défini pour toutes les catégories, certaines ou aucune, dans une langue ou plusieurs, selon les besoins. La valeur par défaut est l'étiquette de réponse elle-même.

Cas particuliers : permutations et inversions

CallWeb offre des outils spéciaux pour mettre en oeuvre la permutation et l'inversion de catégories de réponses.

Si la ligne du nom de la question compte le mot-clef « ROTATION », les catégories de réponses sont affichées dans un ordre aléatoire (sujet aux codes comportant le code de comportement B).

Si la ligne du nom de la question compte le mot-clef « INVERSION », les catégories sont présentées dans l'ordre initial ou inversé, de façon aléatoire (sujet aux codes comportant le code de comportement B).

Exemple :

    Q1 ROTATION
    % Question
    [EN]Are you generally considered a male or a female?
    [FR]Êtes-vous généralement vu(e) comme un homme ou une femme?

Cas particulier : conditions d'affichage de catégorie de réponse

Par défaut, toutes les catégories de réponses sont affichées. Cependant, leur affichage peut être rendu conditionnel à des réponses antérieures en insérant une ligne additionnelle devant la catégorie de réponse. Cette ligne additionnelle contient la condition d'affichage entre crochets. Une telle ligne de condition d'affichage n'affecte que la catégorie de réponse qui est définie sur la ligne qui suit immédiatement.

Exemple :

    Étiquette
    [Q1.EQ.1]
    *2*Étiquette
    *3*Étiquette

Dans cet exemple, la seconde catégorie de réponse n'est affichée (et n'est disponible au répondant) que si la valeur de Q1 est 1. Les conditions d'affichage de catégories de réponses sont respectées même lorsque les questions sont présentées sous forme de tableau.

   

Conception

Sauts simples

La définition d'un saut simple est.. simple : faites la liste des codes de catégories de réponses (séparés par des virgules) à gauche d'un signe égale (=) et placez le nom de la question vers laquelle sauter à droite du signe égale. Il peut y avoir plusieurs définitions de ce type dans une question donnée; chacune doit être sur une ligne à part.

Exemple de saut simple :

    % Sauts
    8,9 = BYEBYE

par défaut, le contenu des questions par dessus lesquelles CallWeb saute est effacé. L'instruction dièse # Sauts nettoyants permet de changer ce comportement pour tout le questionnaire : en lui donnant la valeur « non », tous les sauts du questionnaire deviennent non nettoyants. On peut rendre un saut particulier non nettoyant en préfixant la destination du saut d'un signe « ~ » comme suit :

    % Sauts
    8,9 = ~BYEBYE

Sauts par hyperlien avec JUMP

On peut créer un hyperlien vers une question particulière dans le questionnaire courant grâce à la syntaxe suivante :

    ... {JUMP:QUESTION}texte{/JUMP} ...

Cette syntaxe crée un lien sur le « texte » (qui peut se trouver dans n'importe quel élément d'une question) qui saute immédiatement à la question « QUESTION » sans traiter aucune autre information sur la page courante. Ce type de saut par hyperlien est non nettoyant.

On peut aussi utiliser JUMP pour passer à un autre projet grâce à la syntaxe suivante : {JUMP:QUESTION,projet}.

Finalement, on peut se déplacer vers un dossier particulier d'un autre projet avec la syntaxe suivante : {JUMP:QUESTION,projet,telkey}.

Ces différentes versions de {JUMP:} peuvent toutes produire des liens chiffrés si elles sont appelées avec {JUMPC:}. (Voir la fonction obscurcir.)

Conception

Sauts simples

La définition d'un saut simple est.. simple : faites la liste des codes de catégories de réponses (séparés par des virgules) à gauche d'un signe égale (=) et placez le nom de la question vers laquelle sauter à droite du signe égale. Il peut y avoir plusieurs définitions de ce type dans une question donnée; chacune doit être sur une ligne à part.

Exemple de saut simple :

    % Sauts
    8,9 = BYEBYE

par défaut, le contenu des questions par dessus lesquelles CallWeb saute est effacé. L'instruction dièse # Sauts nettoyants permet de changer ce comportement pour tout le questionnaire : en lui donnant la valeur « non », tous les sauts du questionnaire deviennent non nettoyants. On peut rendre un saut particulier non nettoyant en préfixant la destination du saut d'un signe « ~ » comme suit :

    % Sauts
    8,9 = ~BYEBYE

Sauts par hyperlien avec JUMP

On peut créer un hyperlien vers une question particulière dans le questionnaire courant grâce à la syntaxe suivante :

    ... {JUMP:QUESTION}texte{/JUMP} ...

Cette syntaxe crée un lien sur le « texte » (qui peut se trouver dans n'importe quel élément d'une question) qui saute immédiatement à la question « QUESTION » sans traiter aucune autre information sur la page courante. Ce type de saut par hyperlien est non nettoyant.

On peut aussi utiliser JUMP pour passer à un autre projet grâce à la syntaxe suivante : {JUMP:QUESTION,projet}.

Finalement, on peut se déplacer vers un dossier particulier d'un autre projet avec la syntaxe suivante : {JUMP:QUESTION,projet,telkey}.

Ces différentes versions de {JUMP:} peuvent toutes produire des liens chiffrés si elles sont appelées avec {JUMPC:}. (Voir la fonction obscurcir.)

   

Conception

Condition d'affichage

Une condition d'affichage est une expression logique qui détermine si une question doit être affichée. C'est une façon beaucoup plus robuste que les sauts simples ou les sauts calculés de mettre en oeuvre la logique d'un questionnaire parce que la logique est directement associée à la question de destination.

L'expression logique doit utiliser un format xBase; pour les experts, l'expression peut aussi emprunter une syntaxe Perl et utiliser toute variable disponible dans l'environnement Perl si la condition est entourée d'accolades (« { » et « } »). L'expression logique peut utiliser toute variable définie dans le questionnaire, y inclus les données prépeuplées. Les règles fondamentales de construction des expressions xBase sont les suivantes :

  • les opérateurs de comparaison sont : .EQ., .NE., .GT., .GE., .LT., .LE.
  • Les opérateurs logiques sont : .AND., .OR., .NOT.
  • opérations mathématiques simples comme : +, -, /, *, **
  • les parenthèses affectent l'ordre d'interprétation de l'expression.
  • les langues de questionnaire sont identifiées comme suit : LANGUE(la) ou LANGUAGE(la) où « la » est un code de langue ISO à deux lettres ou une série de ces codes séparés par des espaces ou des virgules.
  • les variables vides sont identifiées comme suit : ISEMPTY(Q1) ou ESTVIDE(Q1) (Q1 est remplacé par le nom de question approprié; ce pourrait être une partie ouverte).
  • les variables non-vides sont identifiées comme suit : NOTEMPTY(Q1) ou NONVIDE(Q1) (Q1 est remplacé par le nom de question approprié; ce pourrait être une partie ouverte).
  • QUESTION(Q1) est vrai si Q1 est la question courante au moment du test. QUESTION(Q1...) est vrai si le nom de la question courante au moment du test débute par Q1.
  • NREPONSES(Q1) retourne le nombre de réponses données à Q1.
  • MOBILE() retourne 1 ou vrai si le questionnaire est affiché sur un appareil mobile (0 autrement).
  • ACCESS() retourne 1 ou vrai si le questionnaire est affiché en mode accessibilité (0 autrement).
  • en utilisant .EQ. et .NE. (sur des réponses simples ou à réponses multiples, ou sur des parties ouvertes numériques entières), le côté droit de la comparaison peut prendre trois formes :
    • Q1.EQ.1 et Q1.NE.1 comparent la réponse de Q1 à un seul entier
    • Q1.EQ.1,3,5 et Q1.NE.1,3,5 comparent la réponse de Q1 à chacun des entiers et retourne vrai si l'une des valeurs correspond (pour .EQ.) ou si aucune des valeurs ne correspond (pour .NE.)
    • Q1.EQ.1-5 et Q1.NE.1-5 comparent la réponse de Q1 à chacun des entiers entre deux bornes et retourne vrai si l'une des valeurs correspond (pour .EQ.) ou si aucune des valeurs ne correspond (pour .NE.)
    • Q1.EQ.1-5, 7 et Q1.NE.1-5, 7 comparent la réponse de Q1 à chacun des entiers entre deux bornes ainsi qu'à une valeur pontuelle (il peut y avoir plusieurs suites ou valeurs ponctuelles séparées par des virgules) et retourne vrai si l'une des valeurs correspond (pour .EQ.) ou si aucune des valeurs ne correspond (pour .NE.)

CallWeb s'occupe d'appliquer la logique xBase aux questions à réponses multiples.

Rappelez-vous que tous les codes de réponses sont numériques. Ceci simplifie la construction des expressions logiques.

Exemple d'un segment de condition d'affichage :

    % Condition d'affichage
    (Q1.GT.2.AND.Q2.EQ.1)

Quand CallWeb rencontre une condition d'affichage d'une valeur « fausse », il efface toutes les données associées à cette question dans le dossier, y compris la partie ouverte s'il y en a une; cependant, il n'efface pas la destination d'une variable CALCUL. Ceci constitue un comportement logique puisque la question n'aurait pas dû être affichée au départ — bien qu'elle a peut-être été affichée légitimement avant que l'usager ne recule et ne modifie certaines de ses réponses. Pour créer une question non affichée où des données puissent être stockées (comme les champs prépeuplés), pensez à utiliser la partie ouverte d'un question de type BLANK question ou les types de question NEVERUPDATE ou STOCK, ou alors, préfixez la condition d'affichage d'un tilde (~) pour indiquer que la condition est non nettoyante (le tilde a la même signification ici que dans les sauts simples)..

Il est possible d'emprunter la condition d'affichage d'une autre question en insérant une ligne dans la section de la condition d'affichage. Cette ligne contient le symbole égale (=) et le nom de la question de laquelle il faut emprunter, comme suit :

    =Q1

Les questions emprunteuses et les questions prêteuses n'ont pas à apparaître dans un ordre particulier dans le questionnaire.

Conception

Condition d'affichage

Une condition d'affichage est une expression logique qui détermine si une question doit être affichée. C'est une façon beaucoup plus robuste que les sauts simples ou les sauts calculés de mettre en oeuvre la logique d'un questionnaire parce que la logique est directement associée à la question de destination.

L'expression logique doit utiliser un format xBase; pour les experts, l'expression peut aussi emprunter une syntaxe Perl et utiliser toute variable disponible dans l'environnement Perl si la condition est entourée d'accolades (« { » et « } »). L'expression logique peut utiliser toute variable définie dans le questionnaire, y inclus les données prépeuplées. Les règles fondamentales de construction des expressions xBase sont les suivantes :

  • les opérateurs de comparaison sont : .EQ., .NE., .GT., .GE., .LT., .LE.
  • Les opérateurs logiques sont : .AND., .OR., .NOT.
  • opérations mathématiques simples comme : +, -, /, *, **
  • les parenthèses affectent l'ordre d'interprétation de l'expression.
  • les langues de questionnaire sont identifiées comme suit : LANGUE(la) ou LANGUAGE(la) où « la » est un code de langue ISO à deux lettres ou une série de ces codes séparés par des espaces ou des virgules.
  • les variables vides sont identifiées comme suit : ISEMPTY(Q1) ou ESTVIDE(Q1) (Q1 est remplacé par le nom de question approprié; ce pourrait être une partie ouverte).
  • les variables non-vides sont identifiées comme suit : NOTEMPTY(Q1) ou NONVIDE(Q1) (Q1 est remplacé par le nom de question approprié; ce pourrait être une partie ouverte).
  • QUESTION(Q1) est vrai si Q1 est la question courante au moment du test. QUESTION(Q1...) est vrai si le nom de la question courante au moment du test débute par Q1.
  • NREPONSES(Q1) retourne le nombre de réponses données à Q1.
  • MOBILE() retourne 1 ou vrai si le questionnaire est affiché sur un appareil mobile (0 autrement).
  • ACCESS() retourne 1 ou vrai si le questionnaire est affiché en mode accessibilité (0 autrement).
  • en utilisant .EQ. et .NE. (sur des réponses simples ou à réponses multiples, ou sur des parties ouvertes numériques entières), le côté droit de la comparaison peut prendre trois formes :
    • Q1.EQ.1 et Q1.NE.1 comparent la réponse de Q1 à un seul entier
    • Q1.EQ.1,3,5 et Q1.NE.1,3,5 comparent la réponse de Q1 à chacun des entiers et retourne vrai si l'une des valeurs correspond (pour .EQ.) ou si aucune des valeurs ne correspond (pour .NE.)
    • Q1.EQ.1-5 et Q1.NE.1-5 comparent la réponse de Q1 à chacun des entiers entre deux bornes et retourne vrai si l'une des valeurs correspond (pour .EQ.) ou si aucune des valeurs ne correspond (pour .NE.)
    • Q1.EQ.1-5, 7 et Q1.NE.1-5, 7 comparent la réponse de Q1 à chacun des entiers entre deux bornes ainsi qu'à une valeur pontuelle (il peut y avoir plusieurs suites ou valeurs ponctuelles séparées par des virgules) et retourne vrai si l'une des valeurs correspond (pour .EQ.) ou si aucune des valeurs ne correspond (pour .NE.)

CallWeb s'occupe d'appliquer la logique xBase aux questions à réponses multiples.

Rappelez-vous que tous les codes de réponses sont numériques. Ceci simplifie la construction des expressions logiques.

Exemple d'un segment de condition d'affichage :

    % Condition d'affichage
    (Q1.GT.2.AND.Q2.EQ.1)

Quand CallWeb rencontre une condition d'affichage d'une valeur « fausse », il efface toutes les données associées à cette question dans le dossier, y compris la partie ouverte s'il y en a une; cependant, il n'efface pas la destination d'une variable CALCUL. Ceci constitue un comportement logique puisque la question n'aurait pas dû être affichée au départ — bien qu'elle a peut-être été affichée légitimement avant que l'usager ne recule et ne modifie certaines de ses réponses. Pour créer une question non affichée où des données puissent être stockées (comme les champs prépeuplés), pensez à utiliser la partie ouverte d'un question de type BLANK question ou les types de question NEVERUPDATE ou STOCK, ou alors, préfixez la condition d'affichage d'un tilde (~) pour indiquer que la condition est non nettoyante (le tilde a la même signification ici que dans les sauts simples)..

Il est possible d'emprunter la condition d'affichage d'une autre question en insérant une ligne dans la section de la condition d'affichage. Cette ligne contient le symbole égale (=) et le nom de la question de laquelle il faut emprunter, comme suit :

    =Q1

Les questions emprunteuses et les questions prêteuses n'ont pas à apparaître dans un ordre particulier dans le questionnaire.

   

Conception

Partie ouverte

Une information alphanumérique, numérique ou d'autres types peut être attachée à n'importe quelle catégorie de réponse. Elle est enregistrée dans un champ distinct qui porte le même nom que la question d'origine auquel est préfixée la lettre « A ». La définition des parties ouvertes suit la syntaxe suivante : liste des codes de catégories de réponses séparée par des virgules, à gauche d'un signe égale (=), et suivi d'instructions décrivant la partie ouverte, à droite du signe égale.

Exemple de segment de partie ouverte :

    % Partie ouverte
    9 = C80

La syntaxe de l'instruction de partie ouverte utilise les codes suivants (selon le type de donnée attendu).

SyntaxeUtilisationExplication
Clargeurpartie ouverte alphanumériqueoù « largeur » est le nombre de caractères du champ
Nlargeur.décimales min maxpartie ouverte numérique« largeur » est le nombre de caractères du champ numérique;
« min » est la valeur minimale acceptée; ce peut être une constante, le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1) ou une expression Perl entre accolades;
« max » est la valeur maximale acceptée; ce peut être une constante, le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1) ou une expression Perl entre accolades
Mlargeurmot de passeoù « largeur » est le nombre de caractères du champ
Elargeuradresse de courrielpour ouvrir une boîte texte de 40 caractères qui est validée comme une adresse de courriel associée au code 4, utiliser : 4 = E40
UlargeurURLpour ouvrir une boîte texte de 40 caractères qui est validée comme une adresse Web associée au code 4, utiliser : 4 = U40. Les caractères « http:// » sont ajoutés au besoin et la validation suivante est effectuée : la chaîne doit contenir au moins un point mais pas d'arobas
Plargeurcode postal canadienvoir l'exemple donné pour le code E, ci-haut
Slargeurtrois premières lettres d'un code postal canadienvoir le code P
Tlargeurnuméro de téléphonedemande un numéro de téléphone à dix chiffres (les caractères non numériques sont effacés avant que le numéro ne soit reformatté comme suit : (xxx)xxx-xxxx)
D min maxdateles champs de date contiennent toujours huit caractères; le système attend une date formattée comme AAAAMMJJ et accepte les obliques, les espaces et les tirets entre les groupes de chiffres; si le navigateur accepte le code JavaScript, un clic dans la boîte de date appelle un calendrier avec lequel la personne peut choisir une date.
« min » est la valeur minimale acceptée; ce peut être une constante ou le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1) ou une expression Perl entre accolades;
« max » est la valeur maximale acceptée; ce peut être une constante ou le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1) ou une expression Perl entre accolades
H min maxheureles champs d'heure sont toujours présentés comme des champs textes de quatre caractères; le système attend une heure formattée comme HHMM et accepte les obliques, les espaces, les tirets et la lettre « h » entre les groupes de chiffres;
« min » est la valeur minimale acceptée; ce peut être une constante ou le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1);
« max » est la valeur maximale acceptée; ce peut être une constante ou le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1)
Ilargeuradresse IPpour ouvrir une boîte texte de 15 caractères qui est validée comme une adresse IP associée au code 4, utiliser : 4 = I15
Rlargeur lignes colonnes expression-régulièreexpression régulièrepour ouvrir une boîte texte de 7 caractères qui est validée comme un code de cours qui ressemble à XXX:XXX associé au code de réponse 4, utiliser :
4 = R15 1 15 [a-zA-Z0-9]{3}:[a-zA-Z0-9]{3}
Dans le cas de ce type de partie ouverte, le nombre de lignes et de colonnes doivent être précisés. Références aux expressions régulières : 1, 2, 3. 4, 5
Llargeur [condition]partie ouverte de liste déroulanteoù « largeur » est le nombre de caractères du champ; ceci affiche une partie ouverte de type C précédée d'une liste déroulante des valeurs déjà sauvegardées dans les données pour cette question. Une condition en syntaxe MYSQL utilisant toute donnée disponible peut être ajoutée entre crochets pour limiter les valeurs affichées dans la liste déroulante (par exemple, [Q1=1] ou [AQ1="ABC"]). À l'utilisation, une sélection dans la liste déroulante a préséance sur le texte saisi dans la boîte
Flargeurpartie ouverte permettant de téléverser un fichier vers le serveuroù « largeur » est le nombre de caractères du champ. L'instruction dièse # GENERAL UPLOAD PARMS définit la localisation des téléversements ainsi que les contraintes imposées à la taille et aux types de fichiers permis. Les fichiers sont enregistrés dans un tableau MysQL et, optionnellement, dans le répertoire de téléversement, et leur nom utilise les informations suivantes : le nom du projet, le _telkey, le nom de la question ouverte et l'extension du fichier téléversé au départ. Il ne peut pas y avoir plus d'une question de type F par page de questionnaire.
W il s'agit d'un modificateur de la partie ouverte C qui interprète la limite en termes de mots plutôt que de caractères dans une partie ouverte multi-ligne.

Contrôler la taille de la boîte de saisie

La plupart des parties ouvertes sont présentées comme des boîtes de quatre lignes et quarante colonnes par défaut. La taille de la boîte peut être déterminée au cas par cas grâce à la syntaxe suivante :

    paramètre_de_partie_ouverte n_lignes n_colonnes

comme dans

    C30 1 20

qui ouvre une boîte d'une ligne et vingt colonnes contenant une réponse alphanumérique de trente caractères.

Note : A moins que « # Contraindre la longueur des reponses » vaille OUI, les boîtes de plusieurs lignes ne contrôlent pas le nombre de caractères qui y sont saisis; la limite du nombre de caractères est alors utilisée seulement à l'extraction d'un fichier à colonnes fixes. Les boîtes d'une seule ligne limitent la saisie au nombre de caractères précisé dans la déclaration de la partie ouverte. Si « # Contraindre la longueur des reponses » vaut OUI, et que le modificateur W accompagne la déclaration C (p.ex., CW100 2 30), la limite fixée (ici 100) concerne les mots et non les caractères.

Les parties ouvertes numériques ouvrent toujours une boîte d'une seule ligne; la largeur de la boîte est fonction du nombre de caractères déclaré dans la définition de la partie ouverte.

Mise en page des valeurs numériques

Par défaut, les valeurs numériques fournies dans les parties ouvertes ne sont pas formattées; en fait, les symboles additionnels comme le signe de dollar ou de pourcentage sont éliminés de la valeur saisie et les virgules décimales françaises sont remplacées par des points décimaux anglais.

Par contre, la syntaxe suivante permet d'afficher une version formattée de la partie ouverte dans les boîtes de saisie et dans les rappels de réponses :

    1 = N5 FORMAT=formatxx

  • « FORMAT= » est un mot-clef;
  • « format » est l'une des valeurs suivantes :
    • NUM : pour une valeur numérique simple utilisant xx décimales
    • DOLLAR ou DOLLARS : pour une valeur numéraire exprimée en dollars
    • POUND ou POUNDS : pour une valeur numéraire exprimée en livres sterling
    • EURO ou EUROS : pour une valeur numéraire exprimée en euro
    • PERCENT ou POURCENT ou % : pour un pourcentage
    • TELEPHONE : pour un numéro de téléphone enregistré comme une valeur à dix chiffres
    • ZERO: retourne une valeur entière remplie de zéros à gauche
  • « xx » est le nombre de décimales à afficher (sauf pour TELEPHONE où aucun xx n'est attendu et ZERO où xx est le nombre de positions occupées par la valeur entière après formattage).

Donc, 1 = N6.2 0 100 FORMAT=DOLLAR2 affiche une partie ouverte comme une valeur en dollars avec deux décimales.

Notez que la largeur du champ (6 dans l'exemple ci-haut) détermine la largeur de la boîte de saisie; cette largeur doit suffire à afficher la valeur formattée.

Notez aussi que le mot-clef « format » peut être remplacé par une valeur en format Perl (entre accolades); ceci permet le formattage conditionnel (p.ex., afficher des montants numéraires en fonction d'une question précédente).

Conception

Partie ouverte

Une information alphanumérique, numérique ou d'autres types peut être attachée à n'importe quelle catégorie de réponse. Elle est enregistrée dans un champ distinct qui porte le même nom que la question d'origine auquel est préfixée la lettre « A ». La définition des parties ouvertes suit la syntaxe suivante : liste des codes de catégories de réponses séparée par des virgules, à gauche d'un signe égale (=), et suivi d'instructions décrivant la partie ouverte, à droite du signe égale.

Exemple de segment de partie ouverte :

    % Partie ouverte
    9 = C80

La syntaxe de l'instruction de partie ouverte utilise les codes suivants (selon le type de donnée attendu).

SyntaxeUtilisationExplication
Clargeurpartie ouverte alphanumériqueoù « largeur » est le nombre de caractères du champ
Nlargeur.décimales min maxpartie ouverte numérique« largeur » est le nombre de caractères du champ numérique;
« min » est la valeur minimale acceptée; ce peut être une constante, le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1) ou une expression Perl entre accolades;
« max » est la valeur maximale acceptée; ce peut être une constante, le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1) ou une expression Perl entre accolades
Mlargeurmot de passeoù « largeur » est le nombre de caractères du champ
Elargeuradresse de courrielpour ouvrir une boîte texte de 40 caractères qui est validée comme une adresse de courriel associée au code 4, utiliser : 4 = E40
UlargeurURLpour ouvrir une boîte texte de 40 caractères qui est validée comme une adresse Web associée au code 4, utiliser : 4 = U40. Les caractères « http:// » sont ajoutés au besoin et la validation suivante est effectuée : la chaîne doit contenir au moins un point mais pas d'arobas
Plargeurcode postal canadienvoir l'exemple donné pour le code E, ci-haut
Slargeurtrois premières lettres d'un code postal canadienvoir le code P
Tlargeurnuméro de téléphonedemande un numéro de téléphone à dix chiffres (les caractères non numériques sont effacés avant que le numéro ne soit reformatté comme suit : (xxx)xxx-xxxx)
D min maxdateles champs de date contiennent toujours huit caractères; le système attend une date formattée comme AAAAMMJJ et accepte les obliques, les espaces et les tirets entre les groupes de chiffres; si le navigateur accepte le code JavaScript, un clic dans la boîte de date appelle un calendrier avec lequel la personne peut choisir une date.
« min » est la valeur minimale acceptée; ce peut être une constante ou le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1) ou une expression Perl entre accolades;
« max » est la valeur maximale acceptée; ce peut être une constante ou le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1) ou une expression Perl entre accolades
H min maxheureles champs d'heure sont toujours présentés comme des champs textes de quatre caractères; le système attend une heure formattée comme HHMM et accepte les obliques, les espaces, les tirets et la lettre « h » entre les groupes de chiffres;
« min » est la valeur minimale acceptée; ce peut être une constante ou le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1);
« max » est la valeur maximale acceptée; ce peut être une constante ou le nom d'une variable dans le questionnaire (p.ex., Q1 ou AQ1)
Ilargeuradresse IPpour ouvrir une boîte texte de 15 caractères qui est validée comme une adresse IP associée au code 4, utiliser : 4 = I15
Rlargeur lignes colonnes expression-régulièreexpression régulièrepour ouvrir une boîte texte de 7 caractères qui est validée comme un code de cours qui ressemble à XXX:XXX associé au code de réponse 4, utiliser :
4 = R15 1 15 [a-zA-Z0-9]{3}:[a-zA-Z0-9]{3}
Dans le cas de ce type de partie ouverte, le nombre de lignes et de colonnes doivent être précisés. Références aux expressions régulières : 1, 2, 3. 4, 5
Llargeur [condition]partie ouverte de liste déroulanteoù « largeur » est le nombre de caractères du champ; ceci affiche une partie ouverte de type C précédée d'une liste déroulante des valeurs déjà sauvegardées dans les données pour cette question. Une condition en syntaxe MYSQL utilisant toute donnée disponible peut être ajoutée entre crochets pour limiter les valeurs affichées dans la liste déroulante (par exemple, [Q1=1] ou [AQ1="ABC"]). À l'utilisation, une sélection dans la liste déroulante a préséance sur le texte saisi dans la boîte
Flargeurpartie ouverte permettant de téléverser un fichier vers le serveuroù « largeur » est le nombre de caractères du champ. L'instruction dièse # GENERAL UPLOAD PARMS définit la localisation des téléversements ainsi que les contraintes imposées à la taille et aux types de fichiers permis. Les fichiers sont enregistrés dans un tableau MysQL et, optionnellement, dans le répertoire de téléversement, et leur nom utilise les informations suivantes : le nom du projet, le _telkey, le nom de la question ouverte et l'extension du fichier téléversé au départ. Il ne peut pas y avoir plus d'une question de type F par page de questionnaire.
W il s'agit d'un modificateur de la partie ouverte C qui interprète la limite en termes de mots plutôt que de caractères dans une partie ouverte multi-ligne.

Contrôler la taille de la boîte de saisie

La plupart des parties ouvertes sont présentées comme des boîtes de quatre lignes et quarante colonnes par défaut. La taille de la boîte peut être déterminée au cas par cas grâce à la syntaxe suivante :

    paramètre_de_partie_ouverte n_lignes n_colonnes

comme dans

    C30 1 20

qui ouvre une boîte d'une ligne et vingt colonnes contenant une réponse alphanumérique de trente caractères.

Note : A moins que « # Contraindre la longueur des reponses » vaille OUI, les boîtes de plusieurs lignes ne contrôlent pas le nombre de caractères qui y sont saisis; la limite du nombre de caractères est alors utilisée seulement à l'extraction d'un fichier à colonnes fixes. Les boîtes d'une seule ligne limitent la saisie au nombre de caractères précisé dans la déclaration de la partie ouverte. Si « # Contraindre la longueur des reponses » vaut OUI, et que le modificateur W accompagne la déclaration C (p.ex., CW100 2 30), la limite fixée (ici 100) concerne les mots et non les caractères.

Les parties ouvertes numériques ouvrent toujours une boîte d'une seule ligne; la largeur de la boîte est fonction du nombre de caractères déclaré dans la définition de la partie ouverte.

Mise en page des valeurs numériques

Par défaut, les valeurs numériques fournies dans les parties ouvertes ne sont pas formattées; en fait, les symboles additionnels comme le signe de dollar ou de pourcentage sont éliminés de la valeur saisie et les virgules décimales françaises sont remplacées par des points décimaux anglais.

Par contre, la syntaxe suivante permet d'afficher une version formattée de la partie ouverte dans les boîtes de saisie et dans les rappels de réponses :

    1 = N5 FORMAT=formatxx

  • « FORMAT= » est un mot-clef;
  • « format » est l'une des valeurs suivantes :
    • NUM : pour une valeur numérique simple utilisant xx décimales
    • DOLLAR ou DOLLARS : pour une valeur numéraire exprimée en dollars
    • POUND ou POUNDS : pour une valeur numéraire exprimée en livres sterling
    • EURO ou EUROS : pour une valeur numéraire exprimée en euro
    • PERCENT ou POURCENT ou % : pour un pourcentage
    • TELEPHONE : pour un numéro de téléphone enregistré comme une valeur à dix chiffres
    • ZERO: retourne une valeur entière remplie de zéros à gauche
  • « xx » est le nombre de décimales à afficher (sauf pour TELEPHONE où aucun xx n'est attendu et ZERO où xx est le nombre de positions occupées par la valeur entière après formattage).

Donc, 1 = N6.2 0 100 FORMAT=DOLLAR2 affiche une partie ouverte comme une valeur en dollars avec deux décimales.

Notez que la largeur du champ (6 dans l'exemple ci-haut) détermine la largeur de la boîte de saisie; cette largeur doit suffire à afficher la valeur formattée.

Notez aussi que le mot-clef « format » peut être remplacé par une valeur en format Perl (entre accolades); ceci permet le formattage conditionnel (p.ex., afficher des montants numéraires en fonction d'une question précédente).

   

Conception

Rappel de réponses

CallWeb peut rappeler trois types d'information dans le texte des questions, dans les notes et dans les catégories de réponses :

SyntaxeActionNotes
&questionRappel du texte de l'étiquette de la réponse choisieRappeler une question RELATION de cette façon insère un tableau des enfants là où le rappel est effectué.
&@questionRappel du code de réponse choisi (le code de réponse associé à une question ordinaire)Rappeler une question RELATION de cette façon insère le nombre d'enfants là où le rappel est effectué.
&&AquestionRappel de la réponse dans la partie ouverte fournie (tant pour les parties ouvertes numériques qu'alphanumériques qu'autres) 
&question#nRappel de l'ALIAS « n » du code de réponse choisi. Référez-vous à la page portant sur les catégories de réponses pour une présentation du concept d'alias.Si aucun alias n'existe pour la catégorie de réponse choisie, l'étiquette principale est affichée. Cette syntaxe est utile pour adapter le rappel d'une réponse au contexte d'une question (par exemple, pour ajouter un article ou changer la capitalisation.)

Le rappel de réponses peut être effectué sur tout type de question, que ce soit des questions ordinaires posées au cours du question, des questions BLANK, des questions CALCUL, ou autres.

Exemple de rappel de réponse de la question Q1 :

    % Texte de la question
    [EN]Earlier, you mentioned that you are generally considered a &Q1? Was it always the case?
    [FR]Vous avez mentionné plus tôt que vous êtes généralement vu(e) comme un(e) &Q1? Est-ce que cela a toujours été le cas?

Instruction dièse de rappel

Des valeurs de rappel particulières peuvent être créées grâce aux instructions « # Recall » ou « # Rappel ». Voici la syntaxe de cette instruction :

    # Rappel etiquette = [EN]recalled_text[FR]texte_rappelé

Ces valeurs sont rappelées en utilisant la syntaxe suivante : &#ETIQUETTE. Par exemple, tous les icônes « Nouveau » dans cette documentation apparaissent grâce au rappel &#NEW qui est défini par l'instruction dièse suivante :

    # Rappel NEW = [EN]<img src="cwdoc/new_en.gif" style="vertical-align:middle">[FR]<img src="cwdoc/new_fr.gif" style="vertical-align:middle">.

Pour éviter les collisions avec les symboles HTML, etiquette doit être rappelée en majuscules et doit débuter par une lettre. L'étiquette peut contenir des lettres, des chiffres et le trait souligné.

# RAPPEL (ou # RECALL) peut utiliser des conditions d'affichage de sorte que différentes substitutions peuvent avoir lieu dans différentes circonstances. Les conditions d'affichage sont placées immédiatement avant le texte de la valeur rappelée, comme ceci :

    # Rappel WORD = [AQ1.LE.1][EN]word[FR]mot[AQ1.GT.1][EN]words[FR]mots

Dans cet exemple, &#WORD rappelle « mot » (au singulier) si AQ1 est plus petit ou égal à 1 et « mots » (au pluriel) si AQ1 est plus grand que 1.

La condition d'affichage est exprimée en syntaxe xBase à moins qu'elle ne soit à l'intérieur d'accolades auquel cas elle est exprimée en syntaxe Perl. Si la condition d'affichage contient un crochet fermé (comme une expression régulière Perl qui inclut des classes de caractères), utilisez des crochets ouverts et fermés doubles pour délimiter la condition (comme dans [[{condition}]]). CallWeb utilise le texte rappelé de la première condition d'affichage qui correspond au contexte. La condition [AUTREMENT] est toujours vraie; elle peut donc avantageusement compléter une liste de conditions.

Si le rappel est suivi d'un tilde (p.ex. &#WORD~), ce caractère sert de délimiteur pour le nom du rappel et il n'est PAS transmis à la page de questionnaire ce qui permet de ne pas avoir d'espace entre le rappel et le texte qui suit le rappel.

Caractéristiques avancées

Les valeurs rappelées sont insérées dans une borne HTML <SPAN> pour leur attribuer le style SUBSTITUT. Ceci peut entrer en conflit avec l'affichage de certaines valeurs rappelées — particulièrement si les valeurs en question sont placées dans des hyperliens. Pour éviter l'ajout du style SUBSTITUT, insérez un tilde (~) entre les symboles de rappel et le nom de la variable, comme ceci :

    % Texte de la question
    [EN]Earlier, you mentioned that you are generally considered a &~Q1? Was it always the case?
    [FR]Vous avez mentionné plus tôt que vous êtes généralement vu(e) comme un(e) &~Q1? Est-ce que cela a toujours été le cas?

Dans un script CallWeb, on peut rappeler n'importe quelle variable disponible dans l'environnement Perl (voir l'annexe portant sur les données de contexte, en particulier). La syntaxe de rappel est alors {$variable}. Par exemple, l'en-tête de page suivante afficherait le numéro du dossier :

    # ENTETE FR = Votre code d'accès est {$_telkey}

Les valeurs rappelées peuvent contenir des rappels de valeurs. Par exemple, l'instruction suivante est valide et rappelle la valeur _telkey en utilisant &#TELKEY :

    # Rappel TELKEY = {$_telkey}

Il y a un autre type de rappel (bien qu'il s'agisse de plus que d'un simple rappel). Toute expression Perl (ici, on n'est pas limité aux noms de variables) peut être affichée, là où des substitutions sont permises, en utilisant la syntaxe suivante :

    <EXECUTE>expression Perl</EXECUTE>

Grâce à cette syntaxe, on peut afficher le résultat d'un calcul complexe sans avoir à l'enregistrer au préalable dans un champ de question.

Il est aussi possible de calculer le résultat d'un rappel dans une question ou dans une borne EXECUTE. Référez-vous à la fonction « substitue » dans la page portant sur les questions calculées.

Finalement, voici une forme spécialisée de substitution : <crypt>texte</crypt>. Le texte entre les bornes est chiffré en utilisant la fonction obscurcir. Il y a une application particulière de ce type de substitution. Les options accompagnant une adresse de questionnaier CallWeb peuvent être camouflées en utilisant une syntaxe comme celle-ci :

    http://quelquedomaine.com/cwx.cgi?_crypt=<crypt>_proj=CEPROJET&_telkey=QUELQUETELKEY</crypt>

qui produit

    http://quelquedomaine.com/cwx.cgi?_crypt=0648090e370615051124242c671d137e0a060535173b4c271476110c2116016c1f322319

Utilisé dans une invitation par courriel, par exemple, CallWeb chiffre la valeur entre les bornes <crypt></crypt> et associe le résultat à l'option d'URL _crypt. Cette option est décompressée par CallWeb pour recouvrer les options et valeurs initiales que le texte chiffré contient. Il est possible de ne chiffrer qu'une partie des options d'URL s'il y a un avantage à ce faire.

Conception

Rappel de réponses

CallWeb peut rappeler trois types d'information dans le texte des questions, dans les notes et dans les catégories de réponses :

SyntaxeActionNotes
&questionRappel du texte de l'étiquette de la réponse choisieRappeler une question RELATION de cette façon insère un tableau des enfants là où le rappel est effectué.
&@questionRappel du code de réponse choisi (le code de réponse associé à une question ordinaire)Rappeler une question RELATION de cette façon insère le nombre d'enfants là où le rappel est effectué.
&&AquestionRappel de la réponse dans la partie ouverte fournie (tant pour les parties ouvertes numériques qu'alphanumériques qu'autres) 
&question#nRappel de l'ALIAS « n » du code de réponse choisi. Référez-vous à la page portant sur les catégories de réponses pour une présentation du concept d'alias.Si aucun alias n'existe pour la catégorie de réponse choisie, l'étiquette principale est affichée. Cette syntaxe est utile pour adapter le rappel d'une réponse au contexte d'une question (par exemple, pour ajouter un article ou changer la capitalisation.)

Le rappel de réponses peut être effectué sur tout type de question, que ce soit des questions ordinaires posées au cours du question, des questions BLANK, des questions CALCUL, ou autres.

Exemple de rappel de réponse de la question Q1 :

    % Texte de la question
    [EN]Earlier, you mentioned that you are generally considered a &Q1? Was it always the case?
    [FR]Vous avez mentionné plus tôt que vous êtes généralement vu(e) comme un(e) &Q1? Est-ce que cela a toujours été le cas?

Instruction dièse de rappel

Des valeurs de rappel particulières peuvent être créées grâce aux instructions « # Recall » ou « # Rappel ». Voici la syntaxe de cette instruction :

    # Rappel etiquette = [EN]recalled_text[FR]texte_rappelé

Ces valeurs sont rappelées en utilisant la syntaxe suivante : &#ETIQUETTE. Par exemple, tous les icônes « Nouveau » dans cette documentation apparaissent grâce au rappel &#NEW qui est défini par l'instruction dièse suivante :

    # Rappel NEW = [EN]<img src="cwdoc/new_en.gif" style="vertical-align:middle">[FR]<img src="cwdoc/new_fr.gif" style="vertical-align:middle">.

Pour éviter les collisions avec les symboles HTML, etiquette doit être rappelée en majuscules et doit débuter par une lettre. L'étiquette peut contenir des lettres, des chiffres et le trait souligné.

# RAPPEL (ou # RECALL) peut utiliser des conditions d'affichage de sorte que différentes substitutions peuvent avoir lieu dans différentes circonstances. Les conditions d'affichage sont placées immédiatement avant le texte de la valeur rappelée, comme ceci :

    # Rappel WORD = [AQ1.LE.1][EN]word[FR]mot[AQ1.GT.1][EN]words[FR]mots

Dans cet exemple, &#WORD rappelle « mot » (au singulier) si AQ1 est plus petit ou égal à 1 et « mots » (au pluriel) si AQ1 est plus grand que 1.

La condition d'affichage est exprimée en syntaxe xBase à moins qu'elle ne soit à l'intérieur d'accolades auquel cas elle est exprimée en syntaxe Perl. Si la condition d'affichage contient un crochet fermé (comme une expression régulière Perl qui inclut des classes de caractères), utilisez des crochets ouverts et fermés doubles pour délimiter la condition (comme dans [[{condition}]]). CallWeb utilise le texte rappelé de la première condition d'affichage qui correspond au contexte. La condition [AUTREMENT] est toujours vraie; elle peut donc avantageusement compléter une liste de conditions.

Si le rappel est suivi d'un tilde (p.ex. &#WORD~), ce caractère sert de délimiteur pour le nom du rappel et il n'est PAS transmis à la page de questionnaire ce qui permet de ne pas avoir d'espace entre le rappel et le texte qui suit le rappel.

Caractéristiques avancées

Les valeurs rappelées sont insérées dans une borne HTML <SPAN> pour leur attribuer le style SUBSTITUT. Ceci peut entrer en conflit avec l'affichage de certaines valeurs rappelées — particulièrement si les valeurs en question sont placées dans des hyperliens. Pour éviter l'ajout du style SUBSTITUT, insérez un tilde (~) entre les symboles de rappel et le nom de la variable, comme ceci :

    % Texte de la question
    [EN]Earlier, you mentioned that you are generally considered a &~Q1? Was it always the case?
    [FR]Vous avez mentionné plus tôt que vous êtes généralement vu(e) comme un(e) &~Q1? Est-ce que cela a toujours été le cas?

Dans un script CallWeb, on peut rappeler n'importe quelle variable disponible dans l'environnement Perl (voir l'annexe portant sur les données de contexte, en particulier). La syntaxe de rappel est alors {$variable}. Par exemple, l'en-tête de page suivante afficherait le numéro du dossier :

    # ENTETE FR = Votre code d'accès est {$_telkey}

Les valeurs rappelées peuvent contenir des rappels de valeurs. Par exemple, l'instruction suivante est valide et rappelle la valeur _telkey en utilisant &#TELKEY :

    # Rappel TELKEY = {$_telkey}

Il y a un autre type de rappel (bien qu'il s'agisse de plus que d'un simple rappel). Toute expression Perl (ici, on n'est pas limité aux noms de variables) peut être affichée, là où des substitutions sont permises, en utilisant la syntaxe suivante :

    <EXECUTE>expression Perl</EXECUTE>

Grâce à cette syntaxe, on peut afficher le résultat d'un calcul complexe sans avoir à l'enregistrer au préalable dans un champ de question.

Il est aussi possible de calculer le résultat d'un rappel dans une question ou dans une borne EXECUTE. Référez-vous à la fonction « substitue » dans la page portant sur les questions calculées.

Finalement, voici une forme spécialisée de substitution : <crypt>texte</crypt>. Le texte entre les bornes est chiffré en utilisant la fonction obscurcir. Il y a une application particulière de ce type de substitution. Les options accompagnant une adresse de questionnaier CallWeb peuvent être camouflées en utilisant une syntaxe comme celle-ci :

    http://quelquedomaine.com/cwx.cgi?_crypt=<crypt>_proj=CEPROJET&_telkey=QUELQUETELKEY</crypt>

qui produit

    http://quelquedomaine.com/cwx.cgi?_crypt=0648090e370615051124242c671d137e0a060535173b4c271476110c2116016c1f322319

Utilisé dans une invitation par courriel, par exemple, CallWeb chiffre la valeur entre les bornes <crypt></crypt> et associe le résultat à l'option d'URL _crypt. Cette option est décompressée par CallWeb pour recouvrer les options et valeurs initiales que le texte chiffré contient. Il est possible de ne chiffrer qu'une partie des options d'URL s'il y a un avantage à ce faire.

   

Conception

Questions calculées

Questions BLANK

Si le mot-clef « BLANK » apparaît sur la ligne de nom de question, alors

  • la question ne s'affiche pas à l'écran;
  • la valeur de la première catégorie de réponse est attribuée à la question;
  • le cas échéant, le questionnaire continue après avoir effectué le saut simple associé à la première catégorie de réponse.

Une question BLANK peut comporter une condition d'affichage pour attribuer une valeur conditionnellement à d'autres réponses ou pour réaliser des sauts complexes.

Sauts complexes

Un saut simple associé au premier choix de réponse d'une question BLANK est respecté. Les questions BLANK peuvent être utilisées pour faire des sauts complexes en utilisant la condition d'affichage, c.-à-d., que la logique de saut complexe est placée dans la condition d'affichage alors que la destination du saut est associée à la première catégorie de réponse.

Les sauts complexes peuvent aussi être mis en oeuvre par le biais de questions CALCUL (voir le prochain paragraphe). Dans ce cas, un calcul est effectué; il retourne une valeur dans la même question (par exemple, mais ce n'est pas nécessaire, en autant qu'il existe une valeur dans la question CALCUL pour contrôler le saut); et les catégories de réponses sont associées à un saut simple. Par exemple, en utilisant une variable de contexte, le code suivant vérifie l'heure et ajuste de flot du questionnaire en conséquence :

    REDIRECT CALCUL
    % Texte
    REDIRECT = ( $contexte{heure} < 120000 ) ? 1 : 2
    % Catégories
    *1*AM
    *2*PM
    % Sauts simples
    1 = ~Q_AM
    2 = ~Q_PM
    % Condition
    % Ouverte
    ! ===================================================<

Questions CALCUL

Si le mot-clef « CALCUL » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le texte de la question se conforme à la syntaxe suivante :

    variable_de_sortie = expression_perl

Cet énoncé retourne le résultat de l'évaluation de « expression_perl » dans « variable_de_sortie ». L'« expression_perl » doit respecter la syntaxe Perl et les noms de questions doivent être précédés d'un signe de dollar ($). Référez-vous au questionnaire de l'ÉchantiCalc du Réseau Circum; il fournit plusieurs exemples de calculs.

Quelques fonctions spéciales peuvent être utilisées dans une question CALCUL pour prendre en charge des besoins spécifiques aux sondages. On retrouve entre autres les suivantes :

add_call_cetappelcette fonction est utilisée pour ajouter une entrée dans l'historique d'appel pour comptabiliser un questionnaire complété sur le Web. Voir le livre de recettes CallWeb pour une description complète de son utilisation.
add_to_dateutilisée pour ajouter ou retrancher du temps d'une valeur date-heure. Voir le livre de recettes CallWeb pour une description complète de son utilisation.
calc_graphutilisée comme calc_graph(field => Q1), cette fonction produit un graphe des données de Q1 et l'insère là où la fonction est appelée. La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
combine_into_multipleutilisée comme Q5 = combine_into_multiple($Q1, $Q2, ...), cette fonction combine les réponses de différentes questions fermées (simples ou multiples) en une seule valeur multiple. La valeur retournée ne contient pas de doublons.
decouvrir (ou uncover)utilisée comme ACHAINE = decouvrir("chaîne"), cette fonction retourne la version décodée de la chaîne encodée par la fonction obscurcir.
dernier_accesutilisée comme Q2=dernier_acces("argument"), cette fonction retourne de l'information sur le dernier accès au dossier. Arguments : « date » retourne les 8 chiffres de la date (AAAAMMJJ); « heure » retourne les 6 chiffres de l'heure (HHMMSS); « dateheure » retourne les 14 chiffres de la valeur date-heure (AAAAMMJJHHMMSS).
emailutilisée comme AWHEN_EMAIL_SENT=email("blabla\@domain.com",$AEMAIL_ADDRESS,"EMAIL_ENGLISH"), cette fonction envoie un courriel à AEMAIL_ADDRESS sur la base du texte contenu dans EMAIL_ENGLISH et place la date et l'heure de l'envoi dans AWHEN_EMAIL_SENT. Arguments additionnels, en ordre : le nombre maximum de caractères des lignes de la portion texte du message (65 par défaut), une adresse d'envoi de copie conforme, une adresse d'envoi de copie cachée et une adresse de courriel à placer dans le champ sender.
ferme_le_navigateurutilisée comme ""=ferme_le_navigateur(), cette fonction produit le code JavaScript requis pour fermer la fenêtre du navigateur.
indexpositionutilisée comme Q2=indexposition(nombre,nombre,nombre,...), cette fonction retourne la position du Nième plus grand nombre où N est le premier nombre fourni. Le plus grand chiffre est en position 1. Donc, indexposition(2,1,3,5,5,7,9) retourne 5 parce que 7 est le second plus grand nombre et qu'il est en 5ième position.
maxutilisée comme Qx=max(nombre,nombre,nombre,...), cette fonction retourne le plus grande nombre.
minutilisée comme Qx=min(nombre,nombre,nombre,...), cette fonction retourne le plus petit nombre.
n_appelsutilisée comme AQ=n_appels(), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier; utilisée comme AQ=n_appels("Code1","Code2"), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier qui comportent le code de fin d'appel Code1 ou Code2; utilisée comme AQ=n_appels("Code*","Nocode"), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier qui affichent un code de disposition qui commence par Code ou un code Nocode. Il peut y avoir plusieurs arguments de ce type.
n_dossiersutilisée comme Q2=n_dossiers("CONDITION","PROJET"), cette fonction retourne le nombre de dossiers correspondant à la condition (en syntaxe MySQL, sans mot-clef WHERE) dans le projet mentionné. Si le nom du projet est absent, le projet courant est utilisé.
n_selectionsutilisée comme Q2=n_selections($Q1,1,2,3,4), cette fonction retourne le nombre de réponses dans Q1 parmi une liste de réponses valides données à la suite.
n_suchutilisée comme NSELECT1=n_such(1,4,9,"Q1-Q10"), cette fonction retourne le nombre de réponses égalent à 1, 4 ou 9 parmi les réponses données aux questions Q1 à Q10.
obscurcir (ou cover)utilisée comme ACHAINE = obscurcir("chaîne"), cette fonction retourne une version chiffrée de la chaîne qui peut ensuite être décodée avec la fonction decouvrir. Cette fonction utilise un algorithme simple de chiffrement qui retourne des caractères ASCII imprimables.
positionsutilisée comme POS = positions(nombre,nombre,nombre,...), cette fonction retourne les positions du premier nombre de la liste constituée des nombres qui suivent le premier nombre; les positions sont délimitées par le délimiteur des questions à réponses multiples. Donc, positions(5,1,3,5,5,7,9) retourne 3µ4.
pull_valueutilisée comme AQX = pull_value(MOTCLEF,QUESTION,PROJET,CONDITION), cette fonction extrait les valeurs trouvées dans la question QUESTION du projet PROJET dans les dossiers qui correspondent à la condition MySQL CONDITION. La fonction retourne une liste de valeurs délimitées par des caractères mu. Le MOTCLEF peut être « TOUT » ou « UNIQUE » pour retourner toutes les valeurs, même les doublons ou les valeurs uniques. Les valeurs sont retournées sans ordre particulier. Exemple : AQX = pull_value("TOUT","maquestion","monprojet","RESERVE <> 1") place une liste des valeurs de « maquestion » de « monproject » où REVERVE est différent de 1 dans AQX dans le projet courant.
push_valueutilisée comme AQX = push_value(VALEUR,QUESTION,PROJET,CONDITION,LIMITE), cette fonction place VALEUR dans le champ QUESTION du projet PROJET dans l'unique dossier de ce projet qui correspond à la CONDITION (exprimée en syntaxe MySQL). La fonction retourne le _telkey du dossier qui a été modifié (dans AQX dans notre exemple). Si quelque chose cloche, la fonction retourne une chaîne vide plutôt qu'un _telkey valide. Si plus d'un dossier de PROJET correspond à la CONDITION, la fonction retourne aussi une chaîne vide... à moins que LIMITE ne soit 1 auquel cas la fonction sélectionne aléatoirement un des _telkeys qui correspond à la CONDITION. Exemple : AQX = push_value("1","RESERVE","monprojet","RESERVE <> 1",1). Ceci place un 1 dans la question RESERVE de monprojet dans un dossier choisi aléatoirement parmi les dossiers de monprojet où RESERVE ne contient pas 1 et retourne la valeur du _telkey modifié dans AQX.
put_values_in_caseutilisée comme AQX = put_values_in_case(clef=>valeur, clef=>valeur, ...), cette fonction place des valeurs dans des champs d'un enregistrement particulier d'un certain projet. La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
random_integerutilisée comme AQX = random_integer(n), cette fonction retourne un entier positif entre 1 et « n ». « n » peut être une valeur fixe comme 10 ou une valeur stockée dans une question CallWeb comme $AQ1.
random_integer2utilisée comme QX = random_integer2(n,"QX"), cette fonction retourne un entier positif entre 1 et « n ». « n » peut être une valeur fixe comme 10 ou une valeur stockée dans une question CallWeb comme $AQ1. La sélection d'un entier aléatoire est faite parmi les entiers possibles qui ont été choisis le moins souvent dans QX au moment d'appeler cette fonction. Par exemple, cherchant un entier aléatoire entre 1 et 3, si 1 a été choisi deux fois et 2 et 3 une seule fois, 2 ou 3 sera choisi aléatoirement. Ceci assure une distribution plate de tous les entiers entre 1 et n à terme. Pour utiliser une distribution autre que plate, on peut demander un entier aléatoire entre 1 et 100 et agir en fonction de parts de 100 (p.ex., sauter la question suivante si l'entier aléatoire est moins que 51).
random_subsetutilisée comme COMBO = random_subset($MULTIQ,n), cette fonction retourne une sélection aléatoire de « n » réponses parmi les réponses fournies à la question multiple « MULTIQ ». La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
recodeutilisée comme Q4RECODE = recode("Q4","Q4RECODE","1,2,3=1","4-6=2","ELSE=3"), cette fonction retourne la valeur codée de Q4 (une question fermée) dans Q4RECODE en utilisant les règles qui suivent le second argument de la fonction. (Toujours dans le même exemple) Si on peut donner plus d'une réponse à Q4 (question à réponses multiples). recode retourne autant de valeurs recodées que possible; autrement, Q4RECODE contient la première catégorie interceptée par les règles. Par exemple, si Q4 contient les réponses 1, 2 et 5, recode retourne 1 et 2 si Q4RECODE est une question à réponses multiples et seulement 1 si elle est une question à réponse unique. Les règles qui suivraient la clause « ELSE » ne seraient jamais testées.
record_wavutilisée comme ANOMFICHIER = record_wav("start") ou PROCESSUS = record_wav("stop"), cette fonction démarre ou arrête l'enregistrement du flux reçu par le microphone de l'ordinateur. Ceci est utilisé en entrevue en face-à-face. Plus d'information dans le livre de recettes.
residualutilisée comme Q3C=residual($Q2,$Q3A,$Q3B,...), cette fonction retourne les réponses de Q2 desquelles on a éliminé les réponses de Q3A et Q3B (il peut y avoir n'importe quel nombre d'argument); cette fonction a été développée pour identifier la troisième sélection dans Q2 (une question permettant trois sélections) une fois que la sélection principale (dans Q3A) et la seconde sélection (dans Q3B) sont exclues.
sauf_codesutilisée comme Q1B = sauf_codes($Q1,1,2,3), cette fonction retourne une réponse multiréponse de laquelle les codes listés (ici, 1, 2 et 3) sont retirés.
select_random_combinationutilisée comme COMBO = select_random_combination(parmi,nombre,exclusif,autre_combinaison,autre_combinaison,...), cette fonction retourne une combinaison de « nombre » d'entiers entre 1 et « parmi ». La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
shuffle_code_labelsutilisée comme AQy = shuffle_code_labels("Qx","[FR], [EN], ","[FR] et[EN] and"), cette fonction retourne une liste du texte de toutes les catégories de réponse de Qx, dans un ordre aléatoire, séparée par le second argument; le troisième argument fournit le lien entre l'avant-dernière et la dernière catégorie de réponse (typiquement « et », mais ce pourrait être « ou » ou alors une virgule, par exemple). Les substitutions et les conditions d'affichage sont respectées..
straightlinedutilisée comme BINAIRE=straightlined("Q1-Q10","QFLAG"), elle retourne un 1 si toutes les réponses de Q1 à Q10 sont les mêmes (straightlining). QFLAG est un nom de question optionnel; s'il est présent, deux choses se passent : d'abord, un 1 est stocké dans ce champ si le test échoue; ensuite, le test n'est pas fait s'il y a déjà un 1 dans ce champ. Voir le livre de recettes CallWeb pour plus d'information.
substituesubstitue("&Q1") or substitue("&@Q1") or substitue("&&AQ1") est une chaîne de texte produite par les fonctions de rappel
test_email_addressutilisée comme AQX = test_email_address(adresse courriel), cette fonction vérifie si une adresse de courriel est correcte. Voir la recette associée. Assurez-vous de donner à l'option d'installation test_email_address_hostname le nom d'un sous-domaine qui résoud à l'adresse IP du serveur utilisé pour faire le test.
time_betweenutilisée comme AQX = time_between($ATEMPS1,$ATEMPS2,"unité"), cette fonction retourne le nombre d'unités de temps entre les deux premières valeurs; les choix d'unités sont SECONDES, MINUTES, HEURES et JOURS. Les valeurs de temps sont représentées comme AAAAMMJJ au moins; on peut ajouter les heures (HH), les minutes (MM) et les secondes (SS) — les valeurs de temps sont en fait allongées à 14 caractères en ajoutant autant de zéros que nécessaire à droite de la valeur.

BOUTON CALCULE

Il est parfois utile de faire un calcul mathématique sur une page, comme faire le total d'une série de réponses numériques et afficher le résultat. On peut faire cela en ajoutant un bouton à la page; ce bouton fera les opérations programmées dans une question CALCUL et réaffichera la même page, où un rappel de valeurs pourrait afficher les nouvelles informations.

Syntaxe de BOUTON CALCULE :

<COMPUTE BUTTON>QUESTION_CALCUL, texte</COMPUTE BUTTON>
ou
<BOUTON CALCULE>QUESTION_CALCUL, texte</BOUTON CALCULE>

QUESTION_CALCUL est le nom de la question CALCUL déclenchée par le bouton. Le texte qui suit QUESTION_CALCUL et une virgule est affiché sur le bouton. Si le texte est le nom d'un fichier (d'image), cette image est utilisée pour afficher le bouton. Dans ce cas, un troisième segment peut comporter le texte ALT de l'image. Une quatrième portion, toujours délimitée par une virgule, peut contenir le mot-clef NOTEST pour s'assurer que le calcul sous le bouton soit effectué même si les données sur la page ne se conforment pas aux tests normaux de validation.

Par exemple, le code suivant :

    Q3 MIN=0 MAX=1
    % question
    [EN]How many people from each of the following age groups live in your household, including you who have already indicated being over 17?
    [FR]Combien de personnes de chacun des groupes d'âges suivants votre ménage compte-t-il en vous incluant et compte tenu que vous avez déjà indiqué être âgé de plus de 17 ans?
    % note
    [SUFFIX:A][EN]Less than 10 years old[FR]Moins de 10 ans
    [SUFFIX:B][EN]From 11 to 17 years old[FR]De 11 à 17 ans
    [SUFFIX:C][EN]18 and more[FR]18 ans ou plus
    % catégories
    *1*=*[EN]Number of people[FR]Nombre de personnes
    % sauts
    % condition
    % ouverte
    1 = N2.0 0 10
    ! ==================================================
    Q3D MIN=0 MAX=1
    % question
    =Q3A
    % note
    [EN]<COMPUTE BUTTON>CALCQ3, cw/sumup.gif</COMPUTE BUTTON>[FR]<BOUTON CALCULE>CALCQ3, Additionner</BOUTON CALCULE>
    % catégories
    *1*NM*[EN]&&ACALCQ3[FR]&&ACALCQ3
    % sauts
    % condition
    % ouverte
    ! ==================================================
    CALCQ3 CALCUL
    % question
    ACALCQ3 = $AQ3A + $AQ3B + $AQ3C
    % note
    % catégories

    % sauts
    % condition
    % ouverte
    1 = N3.0 0 999
    ! ==================================================

affiche le tableau suivant :

 Nombre de personnes
Moins de 10 ans
De 11 à 17 ans
18 ans ou plus
(valeur rappelée de &&ACALCQ3 ici)

Note : d'autres logiciels de sondage Web utilisent JavaScript pour de telles opérations; pour être cohérent avec la philosophie de CallWeb, aucun JavaScript n'est utilisé pour programmer les BOUTON CALCULE. De plus, les opérations déclenchées par BOUTON CALCULE sont laissées au libre choix du concepteur du questionnaire (p.ex., total, somme des produits, extraction de données, manipulation de chaîne de caractères) puisqu'elles sont encapsulées dans une question CALCUL qui peut faire n'importe quelle opération et modifier plusieurs champs d'un seul coup.

La condition d'affichage de la question CALCUL déclenchée par le bouton est respectée.

Questions RANDOM

RANDT est obsolète. Veuillez utiliser la fonction random_integer décrite plus haut.

Si le mot-clef « RANDOM » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le reste de la question se conforme à l'une des syntaxes suivantes :

    RANDT(nombre,variable_de_sortie)
    RANDT(variable_d_entree,variable_de_sortie)

La fonction RANDT retourne, dans « variable_de_sortie », un entier aléatoirement choisi entre 1 et « nombre » ou la valeur de la question « variable_d_entree ».

Conception

Questions calculées

Questions BLANK

Si le mot-clef « BLANK » apparaît sur la ligne de nom de question, alors

  • la question ne s'affiche pas à l'écran;
  • la valeur de la première catégorie de réponse est attribuée à la question;
  • le cas échéant, le questionnaire continue après avoir effectué le saut simple associé à la première catégorie de réponse.

Une question BLANK peut comporter une condition d'affichage pour attribuer une valeur conditionnellement à d'autres réponses ou pour réaliser des sauts complexes.

Sauts complexes

Un saut simple associé au premier choix de réponse d'une question BLANK est respecté. Les questions BLANK peuvent être utilisées pour faire des sauts complexes en utilisant la condition d'affichage, c.-à-d., que la logique de saut complexe est placée dans la condition d'affichage alors que la destination du saut est associée à la première catégorie de réponse.

Les sauts complexes peuvent aussi être mis en oeuvre par le biais de questions CALCUL (voir le prochain paragraphe). Dans ce cas, un calcul est effectué; il retourne une valeur dans la même question (par exemple, mais ce n'est pas nécessaire, en autant qu'il existe une valeur dans la question CALCUL pour contrôler le saut); et les catégories de réponses sont associées à un saut simple. Par exemple, en utilisant une variable de contexte, le code suivant vérifie l'heure et ajuste de flot du questionnaire en conséquence :

    REDIRECT CALCUL
    % Texte
    REDIRECT = ( $contexte{heure} < 120000 ) ? 1 : 2
    % Catégories
    *1*AM
    *2*PM
    % Sauts simples
    1 = ~Q_AM
    2 = ~Q_PM
    % Condition
    % Ouverte
    ! ===================================================<

Questions CALCUL

Si le mot-clef « CALCUL » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le texte de la question se conforme à la syntaxe suivante :

    variable_de_sortie = expression_perl

Cet énoncé retourne le résultat de l'évaluation de « expression_perl » dans « variable_de_sortie ». L'« expression_perl » doit respecter la syntaxe Perl et les noms de questions doivent être précédés d'un signe de dollar ($). Référez-vous au questionnaire de l'ÉchantiCalc du Réseau Circum; il fournit plusieurs exemples de calculs.

Quelques fonctions spéciales peuvent être utilisées dans une question CALCUL pour prendre en charge des besoins spécifiques aux sondages. On retrouve entre autres les suivantes :

add_call_cetappelcette fonction est utilisée pour ajouter une entrée dans l'historique d'appel pour comptabiliser un questionnaire complété sur le Web. Voir le livre de recettes CallWeb pour une description complète de son utilisation.
add_to_dateutilisée pour ajouter ou retrancher du temps d'une valeur date-heure. Voir le livre de recettes CallWeb pour une description complète de son utilisation.
calc_graphutilisée comme calc_graph(field => Q1), cette fonction produit un graphe des données de Q1 et l'insère là où la fonction est appelée. La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
combine_into_multipleutilisée comme Q5 = combine_into_multiple($Q1, $Q2, ...), cette fonction combine les réponses de différentes questions fermées (simples ou multiples) en une seule valeur multiple. La valeur retournée ne contient pas de doublons.
decouvrir (ou uncover)utilisée comme ACHAINE = decouvrir("chaîne"), cette fonction retourne la version décodée de la chaîne encodée par la fonction obscurcir.
dernier_accesutilisée comme Q2=dernier_acces("argument"), cette fonction retourne de l'information sur le dernier accès au dossier. Arguments : « date » retourne les 8 chiffres de la date (AAAAMMJJ); « heure » retourne les 6 chiffres de l'heure (HHMMSS); « dateheure » retourne les 14 chiffres de la valeur date-heure (AAAAMMJJHHMMSS).
emailutilisée comme AWHEN_EMAIL_SENT=email("blabla\@domain.com",$AEMAIL_ADDRESS,"EMAIL_ENGLISH"), cette fonction envoie un courriel à AEMAIL_ADDRESS sur la base du texte contenu dans EMAIL_ENGLISH et place la date et l'heure de l'envoi dans AWHEN_EMAIL_SENT. Arguments additionnels, en ordre : le nombre maximum de caractères des lignes de la portion texte du message (65 par défaut), une adresse d'envoi de copie conforme, une adresse d'envoi de copie cachée et une adresse de courriel à placer dans le champ sender.
ferme_le_navigateurutilisée comme ""=ferme_le_navigateur(), cette fonction produit le code JavaScript requis pour fermer la fenêtre du navigateur.
indexpositionutilisée comme Q2=indexposition(nombre,nombre,nombre,...), cette fonction retourne la position du Nième plus grand nombre où N est le premier nombre fourni. Le plus grand chiffre est en position 1. Donc, indexposition(2,1,3,5,5,7,9) retourne 5 parce que 7 est le second plus grand nombre et qu'il est en 5ième position.
maxutilisée comme Qx=max(nombre,nombre,nombre,...), cette fonction retourne le plus grande nombre.
minutilisée comme Qx=min(nombre,nombre,nombre,...), cette fonction retourne le plus petit nombre.
n_appelsutilisée comme AQ=n_appels(), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier; utilisée comme AQ=n_appels("Code1","Code2"), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier qui comportent le code de fin d'appel Code1 ou Code2; utilisée comme AQ=n_appels("Code*","Nocode"), cette fontion retourne le nombre d'appels dans l'historique d'appel du dossier qui affichent un code de disposition qui commence par Code ou un code Nocode. Il peut y avoir plusieurs arguments de ce type.
n_dossiersutilisée comme Q2=n_dossiers("CONDITION","PROJET"), cette fonction retourne le nombre de dossiers correspondant à la condition (en syntaxe MySQL, sans mot-clef WHERE) dans le projet mentionné. Si le nom du projet est absent, le projet courant est utilisé.
n_selectionsutilisée comme Q2=n_selections($Q1,1,2,3,4), cette fonction retourne le nombre de réponses dans Q1 parmi une liste de réponses valides données à la suite.
n_suchutilisée comme NSELECT1=n_such(1,4,9,"Q1-Q10"), cette fonction retourne le nombre de réponses égalent à 1, 4 ou 9 parmi les réponses données aux questions Q1 à Q10.
obscurcir (ou cover)utilisée comme ACHAINE = obscurcir("chaîne"), cette fonction retourne une version chiffrée de la chaîne qui peut ensuite être décodée avec la fonction decouvrir. Cette fonction utilise un algorithme simple de chiffrement qui retourne des caractères ASCII imprimables.
positionsutilisée comme POS = positions(nombre,nombre,nombre,...), cette fonction retourne les positions du premier nombre de la liste constituée des nombres qui suivent le premier nombre; les positions sont délimitées par le délimiteur des questions à réponses multiples. Donc, positions(5,1,3,5,5,7,9) retourne 3µ4.
pull_valueutilisée comme AQX = pull_value(MOTCLEF,QUESTION,PROJET,CONDITION), cette fonction extrait les valeurs trouvées dans la question QUESTION du projet PROJET dans les dossiers qui correspondent à la condition MySQL CONDITION. La fonction retourne une liste de valeurs délimitées par des caractères mu. Le MOTCLEF peut être « TOUT » ou « UNIQUE » pour retourner toutes les valeurs, même les doublons ou les valeurs uniques. Les valeurs sont retournées sans ordre particulier. Exemple : AQX = pull_value("TOUT","maquestion","monprojet","RESERVE <> 1") place une liste des valeurs de « maquestion » de « monproject » où REVERVE est différent de 1 dans AQX dans le projet courant.
push_valueutilisée comme AQX = push_value(VALEUR,QUESTION,PROJET,CONDITION,LIMITE), cette fonction place VALEUR dans le champ QUESTION du projet PROJET dans l'unique dossier de ce projet qui correspond à la CONDITION (exprimée en syntaxe MySQL). La fonction retourne le _telkey du dossier qui a été modifié (dans AQX dans notre exemple). Si quelque chose cloche, la fonction retourne une chaîne vide plutôt qu'un _telkey valide. Si plus d'un dossier de PROJET correspond à la CONDITION, la fonction retourne aussi une chaîne vide... à moins que LIMITE ne soit 1 auquel cas la fonction sélectionne aléatoirement un des _telkeys qui correspond à la CONDITION. Exemple : AQX = push_value("1","RESERVE","monprojet","RESERVE <> 1",1). Ceci place un 1 dans la question RESERVE de monprojet dans un dossier choisi aléatoirement parmi les dossiers de monprojet où RESERVE ne contient pas 1 et retourne la valeur du _telkey modifié dans AQX.
put_values_in_caseutilisée comme AQX = put_values_in_case(clef=>valeur, clef=>valeur, ...), cette fonction place des valeurs dans des champs d'un enregistrement particulier d'un certain projet. La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
random_integerutilisée comme AQX = random_integer(n), cette fonction retourne un entier positif entre 1 et « n ». « n » peut être une valeur fixe comme 10 ou une valeur stockée dans une question CallWeb comme $AQ1.
random_integer2utilisée comme QX = random_integer2(n,"QX"), cette fonction retourne un entier positif entre 1 et « n ». « n » peut être une valeur fixe comme 10 ou une valeur stockée dans une question CallWeb comme $AQ1. La sélection d'un entier aléatoire est faite parmi les entiers possibles qui ont été choisis le moins souvent dans QX au moment d'appeler cette fonction. Par exemple, cherchant un entier aléatoire entre 1 et 3, si 1 a été choisi deux fois et 2 et 3 une seule fois, 2 ou 3 sera choisi aléatoirement. Ceci assure une distribution plate de tous les entiers entre 1 et n à terme. Pour utiliser une distribution autre que plate, on peut demander un entier aléatoire entre 1 et 100 et agir en fonction de parts de 100 (p.ex., sauter la question suivante si l'entier aléatoire est moins que 51).
random_subsetutilisée comme COMBO = random_subset($MULTIQ,n), cette fonction retourne une sélection aléatoire de « n » réponses parmi les réponses fournies à la question multiple « MULTIQ ». La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
recodeutilisée comme Q4RECODE = recode("Q4","Q4RECODE","1,2,3=1","4-6=2","ELSE=3"), cette fonction retourne la valeur codée de Q4 (une question fermée) dans Q4RECODE en utilisant les règles qui suivent le second argument de la fonction. (Toujours dans le même exemple) Si on peut donner plus d'une réponse à Q4 (question à réponses multiples). recode retourne autant de valeurs recodées que possible; autrement, Q4RECODE contient la première catégorie interceptée par les règles. Par exemple, si Q4 contient les réponses 1, 2 et 5, recode retourne 1 et 2 si Q4RECODE est une question à réponses multiples et seulement 1 si elle est une question à réponse unique. Les règles qui suivraient la clause « ELSE » ne seraient jamais testées.
record_wavutilisée comme ANOMFICHIER = record_wav("start") ou PROCESSUS = record_wav("stop"), cette fonction démarre ou arrête l'enregistrement du flux reçu par le microphone de l'ordinateur. Ceci est utilisé en entrevue en face-à-face. Plus d'information dans le livre de recettes.
residualutilisée comme Q3C=residual($Q2,$Q3A,$Q3B,...), cette fonction retourne les réponses de Q2 desquelles on a éliminé les réponses de Q3A et Q3B (il peut y avoir n'importe quel nombre d'argument); cette fonction a été développée pour identifier la troisième sélection dans Q2 (une question permettant trois sélections) une fois que la sélection principale (dans Q3A) et la seconde sélection (dans Q3B) sont exclues.
sauf_codesutilisée comme Q1B = sauf_codes($Q1,1,2,3), cette fonction retourne une réponse multiréponse de laquelle les codes listés (ici, 1, 2 et 3) sont retirés.
select_random_combinationutilisée comme COMBO = select_random_combination(parmi,nombre,exclusif,autre_combinaison,autre_combinaison,...), cette fonction retourne une combinaison de « nombre » d'entiers entre 1 et « parmi ». La syntaxe complète et l'utilisation de cette fonction sont décrites dans le livre de recettes CallWeb.
shuffle_code_labelsutilisée comme AQy = shuffle_code_labels("Qx","[FR], [EN], ","[FR] et[EN] and"), cette fonction retourne une liste du texte de toutes les catégories de réponse de Qx, dans un ordre aléatoire, séparée par le second argument; le troisième argument fournit le lien entre l'avant-dernière et la dernière catégorie de réponse (typiquement « et », mais ce pourrait être « ou » ou alors une virgule, par exemple). Les substitutions et les conditions d'affichage sont respectées..
straightlinedutilisée comme BINAIRE=straightlined("Q1-Q10","QFLAG"), elle retourne un 1 si toutes les réponses de Q1 à Q10 sont les mêmes (straightlining). QFLAG est un nom de question optionnel; s'il est présent, deux choses se passent : d'abord, un 1 est stocké dans ce champ si le test échoue; ensuite, le test n'est pas fait s'il y a déjà un 1 dans ce champ. Voir le livre de recettes CallWeb pour plus d'information.
substituesubstitue("&Q1") or substitue("&@Q1") or substitue("&&AQ1") est une chaîne de texte produite par les fonctions de rappel
test_email_addressutilisée comme AQX = test_email_address(adresse courriel), cette fonction vérifie si une adresse de courriel est correcte. Voir la recette associée. Assurez-vous de donner à l'option d'installation test_email_address_hostname le nom d'un sous-domaine qui résoud à l'adresse IP du serveur utilisé pour faire le test.
time_betweenutilisée comme AQX = time_between($ATEMPS1,$ATEMPS2,"unité"), cette fonction retourne le nombre d'unités de temps entre les deux premières valeurs; les choix d'unités sont SECONDES, MINUTES, HEURES et JOURS. Les valeurs de temps sont représentées comme AAAAMMJJ au moins; on peut ajouter les heures (HH), les minutes (MM) et les secondes (SS) — les valeurs de temps sont en fait allongées à 14 caractères en ajoutant autant de zéros que nécessaire à droite de la valeur.

BOUTON CALCULE

Il est parfois utile de faire un calcul mathématique sur une page, comme faire le total d'une série de réponses numériques et afficher le résultat. On peut faire cela en ajoutant un bouton à la page; ce bouton fera les opérations programmées dans une question CALCUL et réaffichera la même page, où un rappel de valeurs pourrait afficher les nouvelles informations.

Syntaxe de BOUTON CALCULE :

<COMPUTE BUTTON>QUESTION_CALCUL, texte</COMPUTE BUTTON>
ou
<BOUTON CALCULE>QUESTION_CALCUL, texte</BOUTON CALCULE>

QUESTION_CALCUL est le nom de la question CALCUL déclenchée par le bouton. Le texte qui suit QUESTION_CALCUL et une virgule est affiché sur le bouton. Si le texte est le nom d'un fichier (d'image), cette image est utilisée pour afficher le bouton. Dans ce cas, un troisième segment peut comporter le texte ALT de l'image. Une quatrième portion, toujours délimitée par une virgule, peut contenir le mot-clef NOTEST pour s'assurer que le calcul sous le bouton soit effectué même si les données sur la page ne se conforment pas aux tests normaux de validation.

Par exemple, le code suivant :

    Q3 MIN=0 MAX=1
    % question
    [EN]How many people from each of the following age groups live in your household, including you who have already indicated being over 17?
    [FR]Combien de personnes de chacun des groupes d'âges suivants votre ménage compte-t-il en vous incluant et compte tenu que vous avez déjà indiqué être âgé de plus de 17 ans?
    % note
    [SUFFIX:A][EN]Less than 10 years old[FR]Moins de 10 ans
    [SUFFIX:B][EN]From 11 to 17 years old[FR]De 11 à 17 ans
    [SUFFIX:C][EN]18 and more[FR]18 ans ou plus
    % catégories
    *1*=*[EN]Number of people[FR]Nombre de personnes
    % sauts
    % condition
    % ouverte
    1 = N2.0 0 10
    ! ==================================================
    Q3D MIN=0 MAX=1
    % question
    =Q3A
    % note
    [EN]<COMPUTE BUTTON>CALCQ3, cw/sumup.gif</COMPUTE BUTTON>[FR]<BOUTON CALCULE>CALCQ3, Additionner</BOUTON CALCULE>
    % catégories
    *1*NM*[EN]&&ACALCQ3[FR]&&ACALCQ3
    % sauts
    % condition
    % ouverte
    ! ==================================================
    CALCQ3 CALCUL
    % question
    ACALCQ3 = $AQ3A + $AQ3B + $AQ3C
    % note
    % catégories

    % sauts
    % condition
    % ouverte
    1 = N3.0 0 999
    ! ==================================================

affiche le tableau suivant :

 Nombre de personnes
Moins de 10 ans
De 11 à 17 ans
18 ans ou plus
(valeur rappelée de &&ACALCQ3 ici)

Note : d'autres logiciels de sondage Web utilisent JavaScript pour de telles opérations; pour être cohérent avec la philosophie de CallWeb, aucun JavaScript n'est utilisé pour programmer les BOUTON CALCULE. De plus, les opérations déclenchées par BOUTON CALCULE sont laissées au libre choix du concepteur du questionnaire (p.ex., total, somme des produits, extraction de données, manipulation de chaîne de caractères) puisqu'elles sont encapsulées dans une question CALCUL qui peut faire n'importe quelle opération et modifier plusieurs champs d'un seul coup.

La condition d'affichage de la question CALCUL déclenchée par le bouton est respectée.

Questions RANDOM

RANDT est obsolète. Veuillez utiliser la fonction random_integer décrite plus haut.

Si le mot-clef « RANDOM » apparaît sur la ligne de nom de question, CallWeb s'attend à ce que le reste de la question se conforme à l'une des syntaxes suivantes :

    RANDT(nombre,variable_de_sortie)
    RANDT(variable_d_entree,variable_de_sortie)

La fonction RANDT retourne, dans « variable_de_sortie », un entier aléatoirement choisi entre 1 et « nombre » ou la valeur de la question « variable_d_entree ».

   

Conception

Commenter un script

Il est souvent utile d'ajouter des commentaires dans les scripts CallWeb pour fournir des explications sur les intentions du concepteur. Les solutions utilisées pourraient ne pas être aussi éloquentes pour un autre concepteur appelé à modifier un script.

Il peut y avoir deux catégories de commentaires dans un script CallWeb :

  • les commentaires qui sont détruits au cours de la compilation; il s'agit de toutes les lignes du script qui débutent par au moins deux dièses (qui peuvent être précédés d'un ou plusieurs espaces ou caractères de tabulation);
  • les commentaires qui sont sauvegardés au cours de la compilation et qui sont affichés sur les imprimés produits par le module cwquestionnaire; ces commentaires sont placés à la fin d'une ligne de script, après un espace et deux signes dièses. Ils sont associés au segment de la question où ils sont placés et ils sont imprimés en conséquence par cwquestionnaire.

Voici les positions reconnues de commentaires imprimables :

    Q3A ## Commentaire de nom de question
    % question ## Commentaire de segment de question
      [EN]How many people from each of the following age groups live in your household, including you who have already indicated being over 17?
      [FR]Combien de personnes de chacun des groupes d'âges suivants votre ménage compte-t-il en vous incluant et compte tenu que vous avez déjà indiqué être âgé de plus de 17 ans?
    % note ## Commentaire de segment de more
      [EN]18 and more[FR]18 ans ou plus
    % catégories ## Commentaire de segment de catégories
      *1*=*[EN]Number of people[FR]Nombre de personnes ## Commentaire spécifique de catégorie
    % sauts
      1 = Q99 ## Commentaire spécifique de saut
    % condition
      Q1.EQ.1 ## Commentaire de segment de condition
    % ouverte
      1 = N2.0 0 10 ## Commentaire spécifique de partie ouverte
    ! ==================================================

Notez que les commentaires imprimables ne sont compatibles ni avec cwedit.cgi, ni avec la syntaxe de copie qui utilise un signe égale (=).

Conception

Commenter un script

Il est souvent utile d'ajouter des commentaires dans les scripts CallWeb pour fournir des explications sur les intentions du concepteur. Les solutions utilisées pourraient ne pas être aussi éloquentes pour un autre concepteur appelé à modifier un script.

Il peut y avoir deux catégories de commentaires dans un script CallWeb :

  • les commentaires qui sont détruits au cours de la compilation; il s'agit de toutes les lignes du script qui débutent par au moins deux dièses (qui peuvent être précédés d'un ou plusieurs espaces ou caractères de tabulation);
  • les commentaires qui sont sauvegardés au cours de la compilation et qui sont affichés sur les imprimés produits par le module cwquestionnaire; ces commentaires sont placés à la fin d'une ligne de script, après un espace et deux signes dièses. Ils sont associés au segment de la question où ils sont placés et ils sont imprimés en conséquence par cwquestionnaire.

Voici les positions reconnues de commentaires imprimables :

    Q3A ## Commentaire de nom de question
    % question ## Commentaire de segment de question
      [EN]How many people from each of the following age groups live in your household, including you who have already indicated being over 17?
      [FR]Combien de personnes de chacun des groupes d'âges suivants votre ménage compte-t-il en vous incluant et compte tenu que vous avez déjà indiqué être âgé de plus de 17 ans?
    % note ## Commentaire de segment de more
      [EN]18 and more[FR]18 ans ou plus
    % catégories ## Commentaire de segment de catégories
      *1*=*[EN]Number of people[FR]Nombre de personnes ## Commentaire spécifique de catégorie
    % sauts
      1 = Q99 ## Commentaire spécifique de saut
    % condition
      Q1.EQ.1 ## Commentaire de segment de condition
    % ouverte
      1 = N2.0 0 10 ## Commentaire spécifique de partie ouverte
    ! ==================================================

Notez que les commentaires imprimables ne sont compatibles ni avec cwedit.cgi, ni avec la syntaxe de copie qui utilise un signe égale (=).

   

Structure du questionnaire

Introduction

Un questionnaire CallWeb de base contient une série d'instructions qui définissent des questions et des variables. Une autre jeu de commandes définit la structure du questionnaire. Ces instructions sont placées dans le fichier de questionnaire et sont caractérisées par le fait qu'elles débutent par une signe dièse (#). Chacune de ces instructions doit se retrouver sur une seule ligne dans le fichier de questionnaire (une instruction dièse par ligne; une ligne par instruction dièse).

Structure du questionnaire

Introduction

Un questionnaire CallWeb de base contient une série d'instructions qui définissent des questions et des variables. Une autre jeu de commandes définit la structure du questionnaire. Ces instructions sont placées dans le fichier de questionnaire et sont caractérisées par le fait qu'elles débutent par une signe dièse (#). Chacune de ces instructions doit se retrouver sur une seule ligne dans le fichier de questionnaire (une instruction dièse par ligne; une ligne par instruction dièse).

   

Structure du questionnaire

Pages

Par défaut, CallWeb place une question par page de navigateur. L'instruction # ECRAN change ce comportement par défaut. Elle utilise la syntaxe suivante :

    # Ecran NOM = VAR1 - VAR2

  • NOM est le nom de la page; toute chaîne alphanumérique unique dans le questionnaire est acceptable;
  • VAR1 est le nom de la première question à placer dans la page;
  • VAR2 est le nom de la dernière question à placer dans la page; évidemment, VAR2 doit se retrouver après VAR1 dans l'ordre du questionnaire.

Limites : on ne peut pas faire de sauts à l'intérieur d'une page. De plus, les sauts simples sont respectés seulement à la dernière question de la page. De plus, les questions de types BLANK et CALCUL ne peuvent pas fonctionner à l'intérieur d'une page; leur utilisation dans un page est interdite; elles devraient donc être placées entre les pages définies par des instructions ECRAN.

Structure du questionnaire

Pages

Par défaut, CallWeb place une question par page de navigateur. L'instruction # ECRAN change ce comportement par défaut. Elle utilise la syntaxe suivante :

    # Ecran NOM = VAR1 - VAR2

  • NOM est le nom de la page; toute chaîne alphanumérique unique dans le questionnaire est acceptable;
  • VAR1 est le nom de la première question à placer dans la page;
  • VAR2 est le nom de la dernière question à placer dans la page; évidemment, VAR2 doit se retrouver après VAR1 dans l'ordre du questionnaire.

Limites : on ne peut pas faire de sauts à l'intérieur d'une page. De plus, les sauts simples sont respectés seulement à la dernière question de la page. De plus, les questions de types BLANK et CALCUL ne peuvent pas fonctionner à l'intérieur d'une page; leur utilisation dans un page est interdite; elles devraient donc être placées entre les pages définies par des instructions ECRAN.

   

Structure du questionnaire

Tableaux

Par défaut, CallWeb place une question par page de navigateur. L'instruction # MATRICE change ce comportement par défaut. Quand une série de variables appartiennent à un tableau :

  • le texte de la question de la première variable est affiché;
  • la note de chaque question devient l'étiquette de chacune des lignes et;
  • les catégories de réponses de la première question déterminent les étiquettes des colonnes et leur ordre.

La syntaxe de l'instruction « # MATRICE » est la suivante :

    # MATRICE NOM = VAR1 - VAR2 ENTETE=n PIXELS=n COLVARS=n POSITION=x FORCE_CODES TRANSPOSE SPECIAL=(n,...) COIN=(...) VALIDATION

  • NOM est le nom de la matrice; toute chaîne alphanumérique unique dans le questionnaire est acceptable;
  • VAR1 est le nom de la première question à inclure dans le tableau;
  • VAR2 est le nom de la dernière question à inclure dans le tableau; évidemment, VAR2 doit se retrouver après VAR1 dans l'ordre du questionnaire. Les autres arguments sont optionnels et leur étude devrait être réservée aux utilisateurs plus avancés;
  • ENTETE=n est la fréquence à laquelle les en-têtes de colonnes sont répétées dans le tableau, exprimée en nombre de questions (-1 signifie aucune répétition);
  • PIXELS=n est le nombre de pixels que le navigateur devrait tenter d'utiliser pour chaque colonne de réponse (-1 laisse toute latitude au navigateur de calculer la disposition du tableau);
  • VARSCOL=n est le nombre de variables à empiler en colonnes;
    • la valeur par défaut est -1, ce qui signifie que les colonnes d'un tableau sont définies par la première variable dans la série incluse dans le tableau;
    • une valeur de 1 a la même signification sauf qu'elle demande à CallWeb de placer le texte de la question dans le tableau, au-dessus et à travers les catégories de réponses;
    • une valeur plus grande que 1 signifie que le tableau affiche ce nombre de variables en colonnes du tableau — évidemment, le nombre de variables dans le tableau doit être un multiple du nombre de questions utilisées pour composer les colonnes; le système affiche les premières VARSCOL questions dans la première ligne du tableau, suivi des VARSCOL questions suivantes dans la deuxième ligne, etc.; dans le fichier de script, les variables doivent être ordonnées selon la séquence d'utilisation dans le tableau, c'est-à-dire, de gauche à droite et du haut vers le bas (si le tableau comporte 8 questions (Q1-Q8) et utilise deux variables colonnes, Q1 et Q2 sont affichées sur la première ligne, dans cet ordre, Q3 et Q4 sur la seconde, etc.);
  • POSITION=x indique la position du tableau sur la page : « GAUCHE » place le tableau à la marge de gauche; « DROITE » fait de même à droite; « CENTRE » centre le tableau horizontalement sur la page. La valeur par défaut est GAUCHE.
  • FORCE_CODES est un mot-clef qui force les questions du tableau à utiliser leurs propres codes de réponses (sans lui, chaque question de la matrice utilise les codes des questions de la première ligne); ce mot-clef ne peut pas être utilisé de concert avec des codes de réponses permutés; par exemple, on peut utiliser FORCE_CODES pour afficher une liste déroulante de provinces et territoires dans un tableau qui, autrement, contiendrait des boîtes de texte;
  • TRANSPOSE inverse la présentation des lignes et des colonnes. Par défaut, CallWeb affiche les catégories de réponses en colonnes et les questions en lignes de sorte qu'une ou plusieurs sélections sont attendues sur chaque ligne; avec TRANSPOSE, les questions composent les colonnes et les catégories de réponses, les lignes de sorte qu'une ou plusieurs réponses sont attendues dans chaque colonne. Par exemple, le niveau d'éducation des parents pourrait faire l'objet de deux questions où une sélection serait faite dans la première colonne pour la mère et une sélection dans la seconde pour le père;
  • SPECIAL est une instruction qui identifie les codes de réponses qui sont colorés différemment de la couleur normale du tableau. La couleur normale est définie par l'instruction # M_COULEURCELLULES alors que les codes cités dans SPECIAL utilisent l'instruction # M_COULEURSPECIALE. La cellule d'en-tête d'une colonne SPECIAL, qui est normalement colorée grâce à l'instruction # M_COULEURTITRESCOLONNES, porte aussi la couleur spéciale. Toutes les variables colonnes d'un tableau partagent ces codes spéciaux de sorte que, si le code 9 est cité dans SPECIAL, tous les codes 9 de toutes les variables colonnes sont colorées en conséquence. Référez-vous aussi au code de comportement « S » de catégorie de réponse.;
  • COIN est un texte entre parenthèses qui apparaît dans le coin supérieur gauche du tableau; les codes de langues de format [xx] peuvent être utilisés dans ce texte; si le texte inclut des parenthèses, insérez les en tant que codes HTML &# où une parenthèse ouvrante est le code &#40; et une parenthèse fermante est &#41;
  • VALIDATION est une instruction de validation spéciale portant sur l'ensemble du tableau; les instructions de validation incluent :
    • EXCLUSIF(min,max,A)
      cette instruction de validation exige que le répondant fournisse seulement une réponse par colonne du tableau; le système accepte un minimum de MIN réponses entre les valeurs 1 et MAX; si l'argument « A » est fourni, le test est effectué sur les parties ouvertes des questions du tableau; autrement, il est effectué sur les questions ordinaires.
    • ORDRE(min,max,A)
      cette instruction de validation place les mêmes exigences que EXCLUSIF sauf que les réponses sont interprétées comme des rangs de préférence; donc, les réponses doivent inclure, à tout le moins, toutes les valeurs entre 1 et MIN dans un maximum de MAX réponses.

Note importante : par définition, les tableaux sont définis dans des pages; donc, les questions composant un tableau doivent être placées dans la même page avec une instruction # ECRAN.

Les instructions suivantes montrent un exemple qui inclut page, tableau et permutation :

    # Ecran Alpha = Q1-Q10
    # Matrice Beta = Q2-Q8
    # Permutation Gamma = Q3-Q7

Structure du questionnaire

Tableaux

Par défaut, CallWeb place une question par page de navigateur. L'instruction # MATRICE change ce comportement par défaut. Quand une série de variables appartiennent à un tableau :

  • le texte de la question de la première variable est affiché;
  • la note de chaque question devient l'étiquette de chacune des lignes et;
  • les catégories de réponses de la première question déterminent les étiquettes des colonnes et leur ordre.

La syntaxe de l'instruction « # MATRICE » est la suivante :

    # MATRICE NOM = VAR1 - VAR2 ENTETE=n PIXELS=n COLVARS=n POSITION=x FORCE_CODES TRANSPOSE SPECIAL=(n,...) COIN=(...) VALIDATION

  • NOM est le nom de la matrice; toute chaîne alphanumérique unique dans le questionnaire est acceptable;
  • VAR1 est le nom de la première question à inclure dans le tableau;
  • VAR2 est le nom de la dernière question à inclure dans le tableau; évidemment, VAR2 doit se retrouver après VAR1 dans l'ordre du questionnaire. Les autres arguments sont optionnels et leur étude devrait être réservée aux utilisateurs plus avancés;
  • ENTETE=n est la fréquence à laquelle les en-têtes de colonnes sont répétées dans le tableau, exprimée en nombre de questions (-1 signifie aucune répétition);
  • PIXELS=n est le nombre de pixels que le navigateur devrait tenter d'utiliser pour chaque colonne de réponse (-1 laisse toute latitude au navigateur de calculer la disposition du tableau);
  • VARSCOL=n est le nombre de variables à empiler en colonnes;
    • la valeur par défaut est -1, ce qui signifie que les colonnes d'un tableau sont définies par la première variable dans la série incluse dans le tableau;
    • une valeur de 1 a la même signification sauf qu'elle demande à CallWeb de placer le texte de la question dans le tableau, au-dessus et à travers les catégories de réponses;
    • une valeur plus grande que 1 signifie que le tableau affiche ce nombre de variables en colonnes du tableau — évidemment, le nombre de variables dans le tableau doit être un multiple du nombre de questions utilisées pour composer les colonnes; le système affiche les premières VARSCOL questions dans la première ligne du tableau, suivi des VARSCOL questions suivantes dans la deuxième ligne, etc.; dans le fichier de script, les variables doivent être ordonnées selon la séquence d'utilisation dans le tableau, c'est-à-dire, de gauche à droite et du haut vers le bas (si le tableau comporte 8 questions (Q1-Q8) et utilise deux variables colonnes, Q1 et Q2 sont affichées sur la première ligne, dans cet ordre, Q3 et Q4 sur la seconde, etc.);
  • POSITION=x indique la position du tableau sur la page : « GAUCHE » place le tableau à la marge de gauche; « DROITE » fait de même à droite; « CENTRE » centre le tableau horizontalement sur la page. La valeur par défaut est GAUCHE.
  • FORCE_CODES est un mot-clef qui force les questions du tableau à utiliser leurs propres codes de réponses (sans lui, chaque question de la matrice utilise les codes des questions de la première ligne); ce mot-clef ne peut pas être utilisé de concert avec des codes de réponses permutés; par exemple, on peut utiliser FORCE_CODES pour afficher une liste déroulante de provinces et territoires dans un tableau qui, autrement, contiendrait des boîtes de texte;
  • TRANSPOSE inverse la présentation des lignes et des colonnes. Par défaut, CallWeb affiche les catégories de réponses en colonnes et les questions en lignes de sorte qu'une ou plusieurs sélections sont attendues sur chaque ligne; avec TRANSPOSE, les questions composent les colonnes et les catégories de réponses, les lignes de sorte qu'une ou plusieurs réponses sont attendues dans chaque colonne. Par exemple, le niveau d'éducation des parents pourrait faire l'objet de deux questions où une sélection serait faite dans la première colonne pour la mère et une sélection dans la seconde pour le père;
  • SPECIAL est une instruction qui identifie les codes de réponses qui sont colorés différemment de la couleur normale du tableau. La couleur normale est définie par l'instruction # M_COULEURCELLULES alors que les codes cités dans SPECIAL utilisent l'instruction # M_COULEURSPECIALE. La cellule d'en-tête d'une colonne SPECIAL, qui est normalement colorée grâce à l'instruction # M_COULEURTITRESCOLONNES, porte aussi la couleur spéciale. Toutes les variables colonnes d'un tableau partagent ces codes spéciaux de sorte que, si le code 9 est cité dans SPECIAL, tous les codes 9 de toutes les variables colonnes sont colorées en conséquence. Référez-vous aussi au code de comportement « S » de catégorie de réponse.;
  • COIN est un texte entre parenthèses qui apparaît dans le coin supérieur gauche du tableau; les codes de langues de format [xx] peuvent être utilisés dans ce texte; si le texte inclut des parenthèses, insérez les en tant que codes HTML &# où une parenthèse ouvrante est le code &#40; et une parenthèse fermante est &#41;
  • VALIDATION est une instruction de validation spéciale portant sur l'ensemble du tableau; les instructions de validation incluent :
    • EXCLUSIF(min,max,A)
      cette instruction de validation exige que le répondant fournisse seulement une réponse par colonne du tableau; le système accepte un minimum de MIN réponses entre les valeurs 1 et MAX; si l'argument « A » est fourni, le test est effectué sur les parties ouvertes des questions du tableau; autrement, il est effectué sur les questions ordinaires.
    • ORDRE(min,max,A)
      cette instruction de validation place les mêmes exigences que EXCLUSIF sauf que les réponses sont interprétées comme des rangs de préférence; donc, les réponses doivent inclure, à tout le moins, toutes les valeurs entre 1 et MIN dans un maximum de MAX réponses.

Note importante : par définition, les tableaux sont définis dans des pages; donc, les questions composant un tableau doivent être placées dans la même page avec une instruction # ECRAN.

Les instructions suivantes montrent un exemple qui inclut page, tableau et permutation :

    # Ecran Alpha = Q1-Q10
    # Matrice Beta = Q2-Q8
    # Permutation Gamma = Q3-Q7

   

Structure du questionnaire

Permutation de questions

Par défaut, CallWeb affiche les questions dans l'ordre dans lesquelles elles sont définies dans le questionnaire. Cet ordre peut être affecté par des sauts simples et par des sauts complexes. Il peut aussi être rendu aléatoire par la permutation de questions.

CallWeb utilise l'instruction # PERMUTATION pour définir des ensembles de questions consécutives qui sont présentées en ordre aléatoire. La syntaxe est la suivante :

    # Permutation NOM = VAR1 - VAR2 PAS=pas LIMITE=limite COMME=permutation

  • NOM est le nom de la permutation; toute chaîne alphanumérique unique dans le questionnaire est acceptable;
  • VAR1 est la première variable à inclure dans l'ensemble à permuter;
  • VAR2 est la dernière variable à inclure dans l'ensemble à permuter; évidemment, VAR2 doit être placée après VAR1 dans l'ordre du questionnaire;
  • PAS est le nombre de variables dans chaque bloc à permuter (défaut = 1);
  • LIMITE est le nombre de blocs de variables (les blocs sont définis par le paramètre PAS) à afficher (défaut = tous);
  • COMME est le nom d'une autre permutation qui définit l'ordre de la permutation courante (défaut, aucune).

Dans l'exemple suivant,

    # Permutation 1 = Q5-Q10 PAS=2

Q6 vient toujours après Q5, tout comme Q8 par rapport à Q7 et Q10 par rapport à Q9. Cependant, les trois paires sont présentées en ordre aléatoire aux participants, comme :

    Q7-Q8, Q5-Q6, Q9-Q10
    ou
    Q9-Q10, Q7-Q8, Q5-Q6

Dans l'exemple suivant,

    # Permutation 1 = Q5-Q10 PAS=1 LIMITE=2

Seulement deux questions, choisies au hasard dans la série Q5 à Q10, sont affichées, dans un ordre aléatoire.

Dans l'exemple suivant,

    # Permutation 1 = Q5-Q14 PAS=2 LIMITE=2

Seulement deux blocs de deux questions, choisis au hasard dans la série Q5 à Q14, sont affichées. Ce pourrait être Q7-Q8 et Q11-Q12, par exemple.

Les conditions d'affichage affectent quelles variables sont affichées à travers tout le questionnaire, y inclus dans les permutations.

Permutations parallèles

Il est parfois nécessaire que l'ordre de présentation d'une seconde série de questions soit le même que celui d'une première série de questions permutées. Le paramètre COMME= prend ceci en charge; il fournit le nom d'une première permutation qui contrôle la seconde, dans laquelle est placé le paramètre COMME. Par exemple :

    # Permutation P1 = Q5-Q14 PAS=2 LIMITE=2
    # Permutation P2 = Q15-Q24 COMME=P1

La permutation P2 sera présentée dans le même ordre que la permutation P1. Notez que les paramètres COMME n'ont pas préséance sur les paramètres PAS et LIMITE. Par contre, le nombre de questions dans les deux permutations doit être le même. Des conditions d'affichage différentes peuvent s'appliquer et affecter le nombre de questions affichées dans un questionnaire donné mais l'ordre de présentation des questions affichées sera le même que dans la permutation contrôlante.

Permutations à l'intérieur de permutations: imbriquer les permutations à l'infini

Toutes les caractéristiques décrites ci-haut peuvent être utilisées dans des permutations qui sont effectuées à l'intérieur de permutations. Par exemple, dans les définitions suivantes :

    # Permutation E001 = Q1-Q15 PAS=5
    # Permutation I002 = Q1-Q5
    # Permutation I003 = Q11-Q12
  • une permutation extérieure (E001) traite trois blocs de cinq questions qui apparaîtront en ordre aléatoire (p.ex., parfois Q1-Q5 suivi de Q11-Q15, puis Q6-Q10);
  • une permutation intérieure (I002) affiche Q1 à Q5 en ordre aléatoire;
  • une autre permutation intérieure (I003) permet à Q11 et à Q12 d'apparaître en ordre aléatoire (notez qu'une permutation intérieure n'a pas à utiliser un bloc entier de la permutation extérieure).

Les questions d'une permutation ne peuvent pas chevaucher des blocs d'une permutation extérieure, De plus, une permutation ne peut pas inclure des questions qui font partie d'une permutation extérieure et d'autres qui n'en font pas partie.

Note : l'imbrication de permutations fonctionne seulement si les noms des permutations sont choisis de sorte que, dans chaque cas, la permutation extérieure est placée avant la permutation intérieure dans l'ordre alphabétique des noms de permutations

L'imbrication de permutations ne connaît pas de limite (p.ex., permutations dans des permutations dans des permutations dans des ...).

Structure du questionnaire

Permutation de questions

Par défaut, CallWeb affiche les questions dans l'ordre dans lesquelles elles sont définies dans le questionnaire. Cet ordre peut être affecté par des sauts simples et par des sauts complexes. Il peut aussi être rendu aléatoire par la permutation de questions.

CallWeb utilise l'instruction # PERMUTATION pour définir des ensembles de questions consécutives qui sont présentées en ordre aléatoire. La syntaxe est la suivante :

    # Permutation NOM = VAR1 - VAR2 PAS=pas LIMITE=limite COMME=permutation

  • NOM est le nom de la permutation; toute chaîne alphanumérique unique dans le questionnaire est acceptable;
  • VAR1 est la première variable à inclure dans l'ensemble à permuter;
  • VAR2 est la dernière variable à inclure dans l'ensemble à permuter; évidemment, VAR2 doit être placée après VAR1 dans l'ordre du questionnaire;
  • PAS est le nombre de variables dans chaque bloc à permuter (défaut = 1);
  • LIMITE est le nombre de blocs de variables (les blocs sont définis par le paramètre PAS) à afficher (défaut = tous);
  • COMME est le nom d'une autre permutation qui définit l'ordre de la permutation courante (défaut, aucune).

Dans l'exemple suivant,

    # Permutation 1 = Q5-Q10 PAS=2

Q6 vient toujours après Q5, tout comme Q8 par rapport à Q7 et Q10 par rapport à Q9. Cependant, les trois paires sont présentées en ordre aléatoire aux participants, comme :

    Q7-Q8, Q5-Q6, Q9-Q10
    ou
    Q9-Q10, Q7-Q8, Q5-Q6

Dans l'exemple suivant,

    # Permutation 1 = Q5-Q10 PAS=1 LIMITE=2

Seulement deux questions, choisies au hasard dans la série Q5 à Q10, sont affichées, dans un ordre aléatoire.

Dans l'exemple suivant,

    # Permutation 1 = Q5-Q14 PAS=2 LIMITE=2

Seulement deux blocs de deux questions, choisis au hasard dans la série Q5 à Q14, sont affichées. Ce pourrait être Q7-Q8 et Q11-Q12, par exemple.

Les conditions d'affichage affectent quelles variables sont affichées à travers tout le questionnaire, y inclus dans les permutations.

Permutations parallèles

Il est parfois nécessaire que l'ordre de présentation d'une seconde série de questions soit le même que celui d'une première série de questions permutées. Le paramètre COMME= prend ceci en charge; il fournit le nom d'une première permutation qui contrôle la seconde, dans laquelle est placé le paramètre COMME. Par exemple :

    # Permutation P1 = Q5-Q14 PAS=2 LIMITE=2
    # Permutation P2 = Q15-Q24 COMME=P1

La permutation P2 sera présentée dans le même ordre que la permutation P1. Notez que les paramètres COMME n'ont pas préséance sur les paramètres PAS et LIMITE. Par contre, le nombre de questions dans les deux permutations doit être le même. Des conditions d'affichage différentes peuvent s'appliquer et affecter le nombre de questions affichées dans un questionnaire donné mais l'ordre de présentation des questions affichées sera le même que dans la permutation contrôlante.

Permutations à l'intérieur de permutations: imbriquer les permutations à l'infini

Toutes les caractéristiques décrites ci-haut peuvent être utilisées dans des permutations qui sont effectuées à l'intérieur de permutations. Par exemple, dans les définitions suivantes :

    # Permutation E001 = Q1-Q15 PAS=5
    # Permutation I002 = Q1-Q5
    # Permutation I003 = Q11-Q12
  • une permutation extérieure (E001) traite trois blocs de cinq questions qui apparaîtront en ordre aléatoire (p.ex., parfois Q1-Q5 suivi de Q11-Q15, puis Q6-Q10);
  • une permutation intérieure (I002) affiche Q1 à Q5 en ordre aléatoire;
  • une autre permutation intérieure (I003) permet à Q11 et à Q12 d'apparaître en ordre aléatoire (notez qu'une permutation intérieure n'a pas à utiliser un bloc entier de la permutation extérieure).

Les questions d'une permutation ne peuvent pas chevaucher des blocs d'une permutation extérieure, De plus, une permutation ne peut pas inclure des questions qui font partie d'une permutation extérieure et d'autres qui n'en font pas partie.

Note : l'imbrication de permutations fonctionne seulement si les noms des permutations sont choisis de sorte que, dans chaque cas, la permutation extérieure est placée avant la permutation intérieure dans l'ordre alphabétique des noms de permutations

L'imbrication de permutations ne connaît pas de limite (p.ex., permutations dans des permutations dans des permutations dans des ...).

   

Structure du questionnaire

Projets hiérarchiques

Habituellement, toutes les données d'un projet sont conservées dans une seule base de données CallWeb. Parfois, cependant, une structure de données plus complexe est appropriée. Pensons par exemple à une étude sur l'emploi dans les familles. Une partie du questionnaire porterait sur le ménage; une autre viserait de l'information sur chaque membre du ménage. Bien sûr, il est possible de créer suffisamment de blocs de questions pour accomoder le plus grand ménage possible, mais cette approche pourrait ne pas être la plus efficiente sur le plan de la collecte de données. C'est plutôt un cas adapté à une structure hiérarchique.

Dans les projets hiérarchiques, un projet CallWeb maître agit comme base de données parent (dans notre exemple, ce projet viserait le ménage). Un ou plusieurs projets CallWeb « enfants » sont reliés au projet maître pour permettre autant de « relations » avec les enfants que nécessaire. Dans notre exemple, chaque membre du ménage constituerait un enfant du projet maître portant sur le ménage. Chaque relation enfant est un projet CallWeb différent; il peut y avoir autant de relations de ce type dans un projet et les projets enfants peuvent eux-mêmes avoir des projets enfants. Par exemple, un ménage pourrait comporter plusieurs membres et chaque membre pourrait avoir plusieurs emplois.

Syntaxe

Les projets hiérarchiques sont définis par des questions de type RELATION.

  • Dans une question RELATION, les nombres minimum et maximum de réponses réfèrent au nombre de dossiers enfants. Établir les minimum et maximum à 1 et 3 assure que les participants ajoutent au moins 1 et au plus 3 enfants. Les valeurs par défaut sont 0 et 9999 respectivement.
  • Le nombre de dossiers enfants est enregistré dans la question RELATION elle-même au moment de passer à la page suivante.
  • Une question RELATION ne comporte pas de texte. Donc, elle sera habituellement insérée dans une page comportant une autre question qui fournirait contexte et explications. Une question RELATION ne peut pas être sur la même page que d'autres questions recueillant des réponses; la raison de cette contrainte est que les liens d'ajout ou de modification des relations ouvrent un second questionnaire sans sauvegarder les données de la page courante du questionnaire parent.
  • Le segment de texte de la question RELATION est utilisé pour fournir les paramètres de la relation, en utilisant la syntaxe suivante (notez que les virgules et les obliques sont significatifs!) :
Paramètre Exemple de valeur Explication
child_project=children,nom du projet CallWeb enfant
parent_telkey_varname_in_child_project=parent_telkey,nom de la variable dans le projet enfant qui contiendra le code _telkey du parent qui lui est associé
display_from_child_project=Q1/Q2/AQ3,une liste séparée par des obliques des valeurs de l'enfant qui sont affichées dans le tableau synthèse dans le projet parent. Chaque nom de question peut être précédé d'une condition d'affichage entre crochets. Si la condition d'affichage requiert une virgule, insérez-la comme &#virgule; (avec le point-virgule à la fin); si elle requiert un oblique, insérez-le comme &#oblique; (avec le point-virgule à la fin).
copy_into_children=Q11/Q12/AQ13,(optionnel) une liste séparée par des obliques des valeurs à copier depuis le parent dans l'enfant (elles doivent exister dans les deux projets et être attribuables dans l'enfant [voir # QUESTIONS ATTRIBUABLES])
child_subset_in_sql=Q1=1,(optionnel) une expression MySQL valide (sans le mot-clef « WHERE »); s'il est présent, ce paramètre détermine la liste des dossiers enfants affichés par la question RELATION; il a préséance sur la sélection des dossiers contenant la valeur « parent_telkey_varname_in_child_project ». Cette expression ne peut pas contenir des virgules puisque la virgule sert de séparateur.
erase_question=QCONFIRM,(optionnel) nom de la question du questionnaire parent qui est utilisée pour demander de confirmer une demande d'effacement d'un dossier enfant. En l'absence de ce paramètre, les effacements sont faits sans confirmation. La question « erase_question » doit posséder un type ERASEREL. Elle n'est pas affichée dans le cheminement normal à travers le questionnaire et elle reçoit automatiquement le type BACKWALL.
erase_code=1,(optionnel) code numérique de la question « erase_question » qui indique que la demande d'effacement a été confirmée; il est obligatoire si « erase_question » est définie. Par exemple, si la question de confirmation est « Voulez-vous vraiment effacer ce dossier? » et que le code 1 est « Oui », alors on utilisera « erase_code=1 » dans la question RELATION.
erase_calcul=QCALCUL,(optionnel) nom d'une question CALCUL du questionnaire parent qui est exécutée lorsqu'un dossier enfant est effacé alors que « erase_question » égale « erase_code ».
read_also=Q99,(optionnel) une liste séparée par des obliques des valeurs de l'enfant à lire en plus pour assurer toutes les substitutions requises pour l'affichage.
order_by=Q99,(optionnel) une liste séparée par des obliques de valeurs à utiliser pour trier les lignes du tableau des enfants.
crypt=oui,(optionnel) oui ou non, les liens vers les enfants sont-ils chiffrés.
add_button=oui,(optionnel) oui ou non, le bouton Ajouter est-il affiché au-dessus du tableau d'enfants?

Informations utiles

  • Utilisez une partie ouverte (e.g., APARENTCODE) pour enregistrer les nombreux caractères de parent_telkey_varname_in_child_project.
  • Les variables copiées du parent vers l'enfant (parent_telkey_varname_in_child_project et copy_into_children) devrait probablement être des questions de type STOCK pour qu'elles en soient pas affichées dans l'enfant.
  • Dans le projet enfant, les variables copiées du parent doivent faire partie d'une instruction # Questions attribuables pour que le projet enfant accepte leurs valeurs.
  • Il existe des valeurs par défaut pour le texte affiché sur les boutons d'ajout, de modification et de destruction des dossiers enfants et pour le bouton de rafraîchissement de la page. Ces textes peuvent être modifiés par des instructions dièses préfixées des mots # Text relation.
  • Pour des raisons techniques, le bouton de rafraîchissement des questions relations n'est pas compatible avec le mode démonstration. Le même résultat peut être obtenu en mode démonstration en reculant à une question précédant la question RELATION et en avançant à nouveau.
  • Le rappel d'une question RELATION comme &@QUESTION insère le nombre d'enfants à l'endroit du rappel. Pour une question RELATION, rappeler &QUESTION insère le tableau complet des enfants à l'endroit du rappel.
  • Le projet enfant doit inclure une instruction « # URL » pointant vers le questionnaire parent. Cet URL dervait utiliser une syntaxe comme celle-ci :
    # URL = callweb.cgi?_proj=PARENT_NAME&_lang=EN&_telkey={$APARENT_TELKEY}&_debute=RELATION_QUESTION
    où PARENT_NAME est le nom du projet parent, APARENT_TELKEY est le nom de la question contenant le _telkey parent dans le projet enfant (parent_telkey_varname_in_child_project, ci-haut) et RELATION_QUESTION est le nom de la question RELATION dans le projet parent.

Interface usager pour le participant

En atteignant une question RELATION, le participant voit un bouton « Ajouter » et un bouton « Mettre à jour ». En réponse à un clic sur le bouton « Ajouter », le système ouvre un questionnaire enfant; à la fin du questionnaire enfant, le système réaffiche le questionnaire parent avec un tableau décrivant l'enfant ou les enfants. Dans ce tableau, un lien permet au participant de modifier un dossier enfant ou de l'effacer. Ce tableau affiche aussi de l'information sur chacun des enfants en utilisant le texte des questions et des réponses que l'on trouve dans le projet enfant. Un autre texte peut être affiché pour les questions et les catégories de réponse en plaçant ce texte alternatif dans les segments appropriés du questionnaire enfant entre des bornes <parent></parent>. Par exemple,

*1*Ceci est le texte de la catégorie 1 <parent>Catégorie 1</parent>

afficherait « Ceci est le texte de la catégorie 1 » dans le questionnaire enfant mais afficherait « Catégorie 1 » dans le rableau récapitulatif dans le parent.

Extraire de l'information des dossiers enfants

Les données enfants sont enregistrées dans un projet CallWeb séparé du projet parent. Néanmoins, il est possible d'extraire de l'information du projet enfant et d'utiliser cette information dans le questionnaire parent.

La fonction apropos_relations peut être utilisée dans des questions CALCUL pour faire des extractions. La syntaxe générale de cette fonction est comme suit :

    DESTINATION = apropos_relations("QUESTION_RELATION","TYPE_DE_DONNEES","PARAMETRES_OPTIONNELS")

Le tableau suivant détaille les types de données disponibles et les paramètres qui leur sont associés.

Type de donnéesParamètreExemple
N(aucun)apropos_relations("REL","N")
TOTAL ou SUMvariable enfant à totaliserapropos_relations("REL","TOTAL","AQ1")
MINvariable enfant dont on veut le minimumapropos_relations("REL","MIN","AQ1")
MAXvariable enfant dont on veut le maximumapropos_relations("REL","MAX","AQ1")
AVGvariable enfant dont on veut la moyenneapropos_relations("REL","AVG","AQ1")
STDvariable enfant dont on veut l'écart-typeapropos_relations("REL","STD","AQ1")

Structure du questionnaire

Projets hiérarchiques

Habituellement, toutes les données d'un projet sont conservées dans une seule base de données CallWeb. Parfois, cependant, une structure de données plus complexe est appropriée. Pensons par exemple à une étude sur l'emploi dans les familles. Une partie du questionnaire porterait sur le ménage; une autre viserait de l'information sur chaque membre du ménage. Bien sûr, il est possible de créer suffisamment de blocs de questions pour accomoder le plus grand ménage possible, mais cette approche pourrait ne pas être la plus efficiente sur le plan de la collecte de données. C'est plutôt un cas adapté à une structure hiérarchique.

Dans les projets hiérarchiques, un projet CallWeb maître agit comme base de données parent (dans notre exemple, ce projet viserait le ménage). Un ou plusieurs projets CallWeb « enfants » sont reliés au projet maître pour permettre autant de « relations » avec les enfants que nécessaire. Dans notre exemple, chaque membre du ménage constituerait un enfant du projet maître portant sur le ménage. Chaque relation enfant est un projet CallWeb différent; il peut y avoir autant de relations de ce type dans un projet et les projets enfants peuvent eux-mêmes avoir des projets enfants. Par exemple, un ménage pourrait comporter plusieurs membres et chaque membre pourrait avoir plusieurs emplois.

Syntaxe

Les projets hiérarchiques sont définis par des questions de type RELATION.

  • Dans une question RELATION, les nombres minimum et maximum de réponses réfèrent au nombre de dossiers enfants. Établir les minimum et maximum à 1 et 3 assure que les participants ajoutent au moins 1 et au plus 3 enfants. Les valeurs par défaut sont 0 et 9999 respectivement.
  • Le nombre de dossiers enfants est enregistré dans la question RELATION elle-même au moment de passer à la page suivante.
  • Une question RELATION ne comporte pas de texte. Donc, elle sera habituellement insérée dans une page comportant une autre question qui fournirait contexte et explications. Une question RELATION ne peut pas être sur la même page que d'autres questions recueillant des réponses; la raison de cette contrainte est que les liens d'ajout ou de modification des relations ouvrent un second questionnaire sans sauvegarder les données de la page courante du questionnaire parent.
  • Le segment de texte de la question RELATION est utilisé pour fournir les paramètres de la relation, en utilisant la syntaxe suivante (notez que les virgules et les obliques sont significatifs!) :
Paramètre Exemple de valeur Explication
child_project=children,nom du projet CallWeb enfant
parent_telkey_varname_in_child_project=parent_telkey,nom de la variable dans le projet enfant qui contiendra le code _telkey du parent qui lui est associé
display_from_child_project=Q1/Q2/AQ3,une liste séparée par des obliques des valeurs de l'enfant qui sont affichées dans le tableau synthèse dans le projet parent. Chaque nom de question peut être précédé d'une condition d'affichage entre crochets. Si la condition d'affichage requiert une virgule, insérez-la comme &#virgule; (avec le point-virgule à la fin); si elle requiert un oblique, insérez-le comme &#oblique; (avec le point-virgule à la fin).
copy_into_children=Q11/Q12/AQ13,(optionnel) une liste séparée par des obliques des valeurs à copier depuis le parent dans l'enfant (elles doivent exister dans les deux projets et être attribuables dans l'enfant [voir # QUESTIONS ATTRIBUABLES])
child_subset_in_sql=Q1=1,(optionnel) une expression MySQL valide (sans le mot-clef « WHERE »); s'il est présent, ce paramètre détermine la liste des dossiers enfants affichés par la question RELATION; il a préséance sur la sélection des dossiers contenant la valeur « parent_telkey_varname_in_child_project ». Cette expression ne peut pas contenir des virgules puisque la virgule sert de séparateur.
erase_question=QCONFIRM,(optionnel) nom de la question du questionnaire parent qui est utilisée pour demander de confirmer une demande d'effacement d'un dossier enfant. En l'absence de ce paramètre, les effacements sont faits sans confirmation. La question « erase_question » doit posséder un type ERASEREL. Elle n'est pas affichée dans le cheminement normal à travers le questionnaire et elle reçoit automatiquement le type BACKWALL.
erase_code=1,(optionnel) code numérique de la question « erase_question » qui indique que la demande d'effacement a été confirmée; il est obligatoire si « erase_question » est définie. Par exemple, si la question de confirmation est « Voulez-vous vraiment effacer ce dossier? » et que le code 1 est « Oui », alors on utilisera « erase_code=1 » dans la question RELATION.
erase_calcul=QCALCUL,(optionnel) nom d'une question CALCUL du questionnaire parent qui est exécutée lorsqu'un dossier enfant est effacé alors que « erase_question » égale « erase_code ».
read_also=Q99,(optionnel) une liste séparée par des obliques des valeurs de l'enfant à lire en plus pour assurer toutes les substitutions requises pour l'affichage.
order_by=Q99,(optionnel) une liste séparée par des obliques de valeurs à utiliser pour trier les lignes du tableau des enfants.
crypt=oui,(optionnel) oui ou non, les liens vers les enfants sont-ils chiffrés.
add_button=oui,(optionnel) oui ou non, le bouton Ajouter est-il affiché au-dessus du tableau d'enfants?

Informations utiles

  • Utilisez une partie ouverte (e.g., APARENTCODE) pour enregistrer les nombreux caractères de parent_telkey_varname_in_child_project.
  • Les variables copiées du parent vers l'enfant (parent_telkey_varname_in_child_project et copy_into_children) devrait probablement être des questions de type STOCK pour qu'elles en soient pas affichées dans l'enfant.
  • Dans le projet enfant, les variables copiées du parent doivent faire partie d'une instruction # Questions attribuables pour que le projet enfant accepte leurs valeurs.
  • Il existe des valeurs par défaut pour le texte affiché sur les boutons d'ajout, de modification et de destruction des dossiers enfants et pour le bouton de rafraîchissement de la page. Ces textes peuvent être modifiés par des instructions dièses préfixées des mots # Text relation.
  • Pour des raisons techniques, le bouton de rafraîchissement des questions relations n'est pas compatible avec le mode démonstration. Le même résultat peut être obtenu en mode démonstration en reculant à une question précédant la question RELATION et en avançant à nouveau.
  • Le rappel d'une question RELATION comme &@QUESTION insère le nombre d'enfants à l'endroit du rappel. Pour une question RELATION, rappeler &QUESTION insère le tableau complet des enfants à l'endroit du rappel.
  • Le projet enfant doit inclure une instruction « # URL » pointant vers le questionnaire parent. Cet URL dervait utiliser une syntaxe comme celle-ci :
    # URL = callweb.cgi?_proj=PARENT_NAME&_lang=EN&_telkey={$APARENT_TELKEY}&_debute=RELATION_QUESTION
    où PARENT_NAME est le nom du projet parent, APARENT_TELKEY est le nom de la question contenant le _telkey parent dans le projet enfant (parent_telkey_varname_in_child_project, ci-haut) et RELATION_QUESTION est le nom de la question RELATION dans le projet parent.

Interface usager pour le participant

En atteignant une question RELATION, le participant voit un bouton « Ajouter » et un bouton « Mettre à jour ». En réponse à un clic sur le bouton « Ajouter », le système ouvre un questionnaire enfant; à la fin du questionnaire enfant, le système réaffiche le questionnaire parent avec un tableau décrivant l'enfant ou les enfants. Dans ce tableau, un lien permet au participant de modifier un dossier enfant ou de l'effacer. Ce tableau affiche aussi de l'information sur chacun des enfants en utilisant le texte des questions et des réponses que l'on trouve dans le projet enfant. Un autre texte peut être affiché pour les questions et les catégories de réponse en plaçant ce texte alternatif dans les segments appropriés du questionnaire enfant entre des bornes <parent></parent>. Par exemple,

*1*Ceci est le texte de la catégorie 1 <parent>Catégorie 1</parent>

afficherait « Ceci est le texte de la catégorie 1 » dans le questionnaire enfant mais afficherait « Catégorie 1 » dans le rableau récapitulatif dans le parent.

Extraire de l'information des dossiers enfants

Les données enfants sont enregistrées dans un projet CallWeb séparé du projet parent. Néanmoins, il est possible d'extraire de l'information du projet enfant et d'utiliser cette information dans le questionnaire parent.

La fonction apropos_relations peut être utilisée dans des questions CALCUL pour faire des extractions. La syntaxe générale de cette fonction est comme suit :

    DESTINATION = apropos_relations("QUESTION_RELATION","TYPE_DE_DONNEES","PARAMETRES_OPTIONNELS")

Le tableau suivant détaille les types de données disponibles et les paramètres qui leur sont associés.

Type de donnéesParamètreExemple
N(aucun)apropos_relations("REL","N")
TOTAL ou SUMvariable enfant à totaliserapropos_relations("REL","TOTAL","AQ1")
MINvariable enfant dont on veut le minimumapropos_relations("REL","MIN","AQ1")
MAXvariable enfant dont on veut le maximumapropos_relations("REL","MAX","AQ1")
AVGvariable enfant dont on veut la moyenneapropos_relations("REL","AVG","AQ1")
STDvariable enfant dont on veut l'écart-typeapropos_relations("REL","STD","AQ1")

   

Structure du questionnaire

Interruption

Un bouton donnant aux participants la capacité d'interrompre le questionnaire peut être ajouté à toutes les pages du questionnaire avec l'instruction # BOUTON STOP. Par défaut, # BOUTON STOP est désactivée :

    # Bouton stop = non

Pour afficher un bouton d'interruption, donnez à l'instruction la valeur « oui » et, après une virgule, ajouter le nom de la question vers laquelle le participant sera redirigé sur interruption, comme dans :

    # Bouton stop = oui, Q99

Cette instruction force l'affichage du bouton d'interruption sur chaque page du questionnaire. Si le participant clique sur ce bouton, il sera redirigé vers la question Q99 mais, s'il revient au questionnaire plus tard, il recommencera à la page atteinte lorsque l'interruption a été demandée.

Le bouton STOP button peut aussi être affiché conditionnellement sur la base d'une condition d'affichage placée en lieu et place du Oui, entre crochets. Par exemple :

    # Bouton stop = [QTYPE.EQ.1], Q99

affiche le bouton STOP seulement si QTYPE egale 1.

Le concepteur de questionnaire a le contrôle sur ce qui se passe sur la page vers laquelle l'interruption est redirigée. Ce pourrait être une page sans bouton (BACKWALL, CULDESAC et NOSTOP) affichant quelque message ou l'URL requis pour revenir dans le questionnaire. Ce pourrait être une série de questions calculées qui enverraient un courriel au participant avec des instructions. Ce peut être tout ce que CallWeb sait faire grâce à ses caractéristiques et questions.

Le texte du bouton d'interruption est contrôlé par l'instruction # TEXTE STOP. Chaque langue du questionnaire peut avoir son texte, comme dans :

    # TEXTE STOP = [EN]Stop[FR]Arrêt

Le bouton d'interruption peut aussi être une image. Référez-vous à l'instruction # IMAGE STOP.

Quoiqu'un bloc de questions STOP est souvent utilisé pour arrêter un questionnaire à un endroit différent d'où le questionnaire sera repris ensuite, il peut aussi être utilisé pour atteindre une série de questions spéciales depuis n'importe où dans le questionnaire et revenir ensuite dans le cheminement normal. Pour réussir ce tour de force, il faut ajouter une instruction # Bouton stop, brancher vers une zone isolée du questionnaire et terminer le bloc avec une question de type DESTOP. Celle-ci retourne à la question depuis laquelle le bouton STOP a été invoqué.

Structure du questionnaire

Interruption

Un bouton donnant aux participants la capacité d'interrompre le questionnaire peut être ajouté à toutes les pages du questionnaire avec l'instruction # BOUTON STOP. Par défaut, # BOUTON STOP est désactivée :

    # Bouton stop = non

Pour afficher un bouton d'interruption, donnez à l'instruction la valeur « oui » et, après une virgule, ajouter le nom de la question vers laquelle le participant sera redirigé sur interruption, comme dans :

    # Bouton stop = oui, Q99

Cette instruction force l'affichage du bouton d'interruption sur chaque page du questionnaire. Si le participant clique sur ce bouton, il sera redirigé vers la question Q99 mais, s'il revient au questionnaire plus tard, il recommencera à la page atteinte lorsque l'interruption a été demandée.

Le bouton STOP button peut aussi être affiché conditionnellement sur la base d'une condition d'affichage placée en lieu et place du Oui, entre crochets. Par exemple :

    # Bouton stop = [QTYPE.EQ.1], Q99

affiche le bouton STOP seulement si QTYPE egale 1.

Le concepteur de questionnaire a le contrôle sur ce qui se passe sur la page vers laquelle l'interruption est redirigée. Ce pourrait être une page sans bouton (BACKWALL, CULDESAC et NOSTOP) affichant quelque message ou l'URL requis pour revenir dans le questionnaire. Ce pourrait être une série de questions calculées qui enverraient un courriel au participant avec des instructions. Ce peut être tout ce que CallWeb sait faire grâce à ses caractéristiques et questions.

Le texte du bouton d'interruption est contrôlé par l'instruction # TEXTE STOP. Chaque langue du questionnaire peut avoir son texte, comme dans :

    # TEXTE STOP = [EN]Stop[FR]Arrêt

Le bouton d'interruption peut aussi être une image. Référez-vous à l'instruction # IMAGE STOP.

Quoiqu'un bloc de questions STOP est souvent utilisé pour arrêter un questionnaire à un endroit différent d'où le questionnaire sera repris ensuite, il peut aussi être utilisé pour atteindre une série de questions spéciales depuis n'importe où dans le questionnaire et revenir ensuite dans le cheminement normal. Pour réussir ce tour de force, il faut ajouter une instruction # Bouton stop, brancher vers une zone isolée du questionnaire et terminer le bloc avec une question de type DESTOP. Celle-ci retourne à la question depuis laquelle le bouton STOP a été invoqué.

   

Apparence du questionnaire

Introduction

L'apparence du questionnaire est contrôlée par trois sources d'information : un fichier de styles, plusieurs instructions dièses et des paramètres fournis dans le questionnaire même.

Apparence du questionnaire

Introduction

L'apparence du questionnaire est contrôlée par trois sources d'information : un fichier de styles, plusieurs instructions dièses et des paramètres fournis dans le questionnaire même.

   

Apparence du questionnaire

Structure de la page et gabarits

À son plus simple, la page de questionnaire CallWeb (voir l'exemple plus bas) est une construction verticale qui comporte les pièces suivantes :

  • une en-tête, contrôlée par l'instruction # Entete
  • une série facultative de boutons présentés à l'horizontale, contrôlée par l'énoncé # Ordre des boutons haut
  • le corps de la page qui contient les questions
  • une série de boutons présentés à l'horizontale, contrôlée par l'énoncé # Ordre des boutons bas
  • un pied de page, contrôlé par l'énoncé # Pied

Cette structure linéaire et les instructions dièses qui lui sont attachées permettent de créer une grande variété de questionnaires d'apparence différente et de créer des pages sur mesure. Demeurant relativement simple, cette structure est toutefois contraignante : elle ne peut être que d'orientation verticale et l'intégration de visuels d'autres sources (p.ex., un site Web corporatif) est ardue et limitée. L'instruction # Gabarit se défait de la contrainte de composition verticale du questionnaire.

Structure contrôlée par un gabarit

L'instruction # Gabarit fournit une seconde méthode de composition de la page de questionnaire. Elle identifie le nom d'un fichier HTML à partir duquel la page de questionnaire est composée. Ce fichier HTML pourrait par exemple être une copie d'une page type du site Web d'une organisation ou une structure normalisée de site Web (p.ex., les pages de normalisation des sites Web du Gouvernement du Canada). Dans cette page HTML, on dispose des marqueurs que CallWeb substitue par des morceaux de pages de questionnaires. Les marqueurs reconnus sont les suivants :

MarqueurContenu correspondantNotes
&*ENTETEEn-tête de la page contrôlée par # EnteteCe marqueur n'a pas à se trouver au haut de la page.
&*BOUTONSHAUTSérie horizontale de boutons contrôlée par # Ordre des boutons hautCe marqueur n'a pas à se trouver au haut de la page.
&*CORPSQuestions à afficherCe marqueur n'a pas à se trouver au milieu de la page.
&*BOUTONSBASSérie horizontale de boutons contrôlée par plusieurs instructions dièsesCe marqueur n'a pas à se trouver au bas de la page.
&*PIEDPied de page contrôlé par # PiedCe marqueur n'a pas à se trouver au bas de la page.
&*BOUTONSH:... (notez le deux-points)Série horizontale de boutons sélectionnés par la liste de lettres qui suit le deux-points. Les lettres en question sont les suivantes : [B]ack, [N]ext, [U]nlock, [L]angue, [T]hermomètre, [S]top. Par exemple, &*BOUTONSH:BN affiche un bouton de recul et un bouton d'avancement, dans cet ordre.Ce marqueur, comme les autres, peut se retrouver n'importe où sur la page.
&*BOUTONSV:... (notez le deux-points)Série verticale de boutons sélectionnés par la liste de lettres qui suit le deux-points. Les lettres en question sont les suivantes : [B]ack, [N]ext, [U]nlock, [L]angue, [T]hermomètre, [S]top. Par exemple, &*BOUTONSV:BN affiche un bouton de recul et un bouton d'avancement, dans cet ordre.Ce marqueur, comme les autres, peut se retrouver n'importe où sur la page.

Ces marqueurs peuvent être placés n'importe où dans la page HTML de gabarit. Ceci permet, par exemple, de placer un bouton de recul à la page précédente à gauche des questions et un bouton d'avance à droite. Aucun de ces marqueurs n'est obligatoire et les marqueurs peuvent être répétés (p.ex., il peut y avoir plusieurs marqueurs &*BOUTONSH:...)

Note technique : la page de gabarit doit être composée en tenant compte que le questionnaire est produit depuis le répertoire racine de l'instance de CallWeb. En conséquence, les liens vers les objets (p.ex., images, styles, hyperliens) doivent être relatifs à ce répertoire racine (ce qui est plus flexible) ou être absolus (ce qui est plus simple).

Apparence du questionnaire

Structure de la page et gabarits

À son plus simple, la page de questionnaire CallWeb (voir l'exemple plus bas) est une construction verticale qui comporte les pièces suivantes :

  • une en-tête, contrôlée par l'instruction # Entete
  • une série facultative de boutons présentés à l'horizontale, contrôlée par l'énoncé # Ordre des boutons haut
  • le corps de la page qui contient les questions
  • une série de boutons présentés à l'horizontale, contrôlée par l'énoncé # Ordre des boutons bas
  • un pied de page, contrôlé par l'énoncé # Pied

Cette structure linéaire et les instructions dièses qui lui sont attachées permettent de créer une grande variété de questionnaires d'apparence différente et de créer des pages sur mesure. Demeurant relativement simple, cette structure est toutefois contraignante : elle ne peut être que d'orientation verticale et l'intégration de visuels d'autres sources (p.ex., un site Web corporatif) est ardue et limitée. L'instruction # Gabarit se défait de la contrainte de composition verticale du questionnaire.

Structure contrôlée par un gabarit

L'instruction # Gabarit fournit une seconde méthode de composition de la page de questionnaire. Elle identifie le nom d'un fichier HTML à partir duquel la page de questionnaire est composée. Ce fichier HTML pourrait par exemple être une copie d'une page type du site Web d'une organisation ou une structure normalisée de site Web (p.ex., les pages de normalisation des sites Web du Gouvernement du Canada). Dans cette page HTML, on dispose des marqueurs que CallWeb substitue par des morceaux de pages de questionnaires. Les marqueurs reconnus sont les suivants :

MarqueurContenu correspondantNotes
&*ENTETEEn-tête de la page contrôlée par # EnteteCe marqueur n'a pas à se trouver au haut de la page.
&*BOUTONSHAUTSérie horizontale de boutons contrôlée par # Ordre des boutons hautCe marqueur n'a pas à se trouver au haut de la page.
&*CORPSQuestions à afficherCe marqueur n'a pas à se trouver au milieu de la page.
&*BOUTONSBASSérie horizontale de boutons contrôlée par plusieurs instructions dièsesCe marqueur n'a pas à se trouver au bas de la page.
&*PIEDPied de page contrôlé par # PiedCe marqueur n'a pas à se trouver au bas de la page.
&*BOUTONSH:... (notez le deux-points)Série horizontale de boutons sélectionnés par la liste de lettres qui suit le deux-points. Les lettres en question sont les suivantes : [B]ack, [N]ext, [U]nlock, [L]angue, [T]hermomètre, [S]top. Par exemple, &*BOUTONSH:BN affiche un bouton de recul et un bouton d'avancement, dans cet ordre.Ce marqueur, comme les autres, peut se retrouver n'importe où sur la page.
&*BOUTONSV:... (notez le deux-points)Série verticale de boutons sélectionnés par la liste de lettres qui suit le deux-points. Les lettres en question sont les suivantes : [B]ack, [N]ext, [U]nlock, [L]angue, [T]hermomètre, [S]top. Par exemple, &*BOUTONSV:BN affiche un bouton de recul et un bouton d'avancement, dans cet ordre.Ce marqueur, comme les autres, peut se retrouver n'importe où sur la page.

Ces marqueurs peuvent être placés n'importe où dans la page HTML de gabarit. Ceci permet, par exemple, de placer un bouton de recul à la page précédente à gauche des questions et un bouton d'avance à droite. Aucun de ces marqueurs n'est obligatoire et les marqueurs peuvent être répétés (p.ex., il peut y avoir plusieurs marqueurs &*BOUTONSH:...)

Note technique : la page de gabarit doit être composée en tenant compte que le questionnaire est produit depuis le répertoire racine de l'instance de CallWeb. En conséquence, les liens vers les objets (p.ex., images, styles, hyperliens) doivent être relatifs à ce répertoire racine (ce qui est plus flexible) ou être absolus (ce qui est plus simple).

   

Apparence du questionnaire

Mise en forme du texte

CallWeb s'attend à trouver un fichier de styles appelé « style.css » dans le répertoire du questionnaire; en son absence, CallWeb utilise le style.css qui se trouve dans le répertoire des ressources (habituellement gr/), et finalement dans le répertoire racine de l'installation CallWeb. L'instruction # Stylesheet peut aussi être utilisée pour préciser le nom d'un fichier de style dans un projet particulier.

Pour obtenir l'apparence officielle de CallWeb, on place ce fichier de style dans le répertoire gr/ et les instructions suivantes dans le fichier etc/usager.conf :

    _M_COULEURTITRESCOLONNES = #4578A6
    _M_COULEURCELLULES2 = #D5EBFF
    _M_COULEURCELLULES = #E8F4FF
    _M_COULEURBORDURES = #A8B4BF

L'explication de la syntaxe des styles dépasse le propos de ce manuel; plusieurs bonnes références sont disponibles, de même que plusieurs sites Web. (http://www.w3.org/TR/REC-CSS1 est une référence clef.) Le fichier de styles doit contenir certains styles de base utilisés par CallWeb et peut en définir davantage.

Styles CallWeb (notez que la capitalisation des noms de styles compte dans certains navigateurs et que CallWeb utilise des noms en majuscules) :

  • .QUESTION
    utilisé pour la mise en forme du texte de la question;
  • .REPONSE
    utilisé pour la mise en forme du texte des catégories de réponses dans leur format normal;
  • .AUTOSUBMIT
    utilisé pour la mise en forme du texte des catégories de réponses sujettes à # Auto submit; le style suivant est particulièrement utile :
    .AUTOSUBMIT { padding-right: 20px; background: transparent url(../gr/autosubmit.gif) no-repeat center right; }
  • .NOTE
    utilisé pour la mise en forme du texte des notes;
  • .COLONNE
    utilisé pour la mise en forme du texte des catégories de réponses en format tableau;
  • .LIGNE
    utilisé pour la mise en forme du texte des items (notes) en format tableau;
  • .SUBSTITUT
    utilisé pour la mise en forme du texte rappelé dans le texte de la question, de la note ou des catégories de réponses;
  • .THERMOMETRE
    utilisé pour la mise en forme du texte du thermomètre;
  • .MATRICE, .MATRICE2, .MATRICE3
    attribué à tous les tableaux de questions (qui affichent les questions comme des lignes et les catégories de réponses comme des colonnes); utile pour placer les tableaux horizontalement;
  • .CATEGORYTABLE
    atribué à tous les tableaux HTML qui structurent les catégories de réponses;
  • .BOUTONS
    attribué au tableau des boutons; utile pour placer les boutons horizontalement;
  • .ERREUR
    utilisé pour la mise en forme du texte des messages d'erreur;
  • .H5
    utilisé pour la mise en forme de certaines en-têtes;
  • .EQUIVALENTH5
    utilisé pour la mise en forme de certaines en-têtes d'utilitaires;
  • .EQUIVALENTH6
    utilisé pour la mise en forme des noms des questions dans certaines circonstances;
  • .NEPASLIRE
    utilisé pour la mise en forme des catégories de réponses comportant le code de comportement P;
  • .LIRE
    utilisé pour la mise en forme des catégories de réponses comportant le code de comportement L;
  • .SPECIAL
    utilisé pour la mise en forme des catégories de réponses comportant le code de comportement S.
  • .BUTTON
    utilisé pour la mise en forme des boutons comme Page précédente et Page suivante.
  • .DROPDOWN
    utilisé pour la mise en forme des listes déroulantes.
  • .NUMBOX
    utilisé pour la mise en forme des boîtes numériques de parties ouvertes.
  • .TEXTBOX
    utilisé pour la mise en forme des boîtes simples ou multi-lignes (parties ouvertes).
  • .CATI_APP_BUTTON_O
    utilisé pour la mise en forme des boutons CATI de rendez-vous avec commentaire obligatoire.
  • .CATI_APP_BUTTON_F
    utilisé pour la mise en forme des boutons CATI de rendez-vous avec commentaire facultatif.
  • .CATI_APP_BUTTON_A
    utilisé pour la mise en forme des boutons CATI de rendez-vous sans commentaire.
  • .CATI_OTH_BUTTON_O
    utilisé pour la mise en forme des boutons CATI autres que rendez-vous avec commentaire obligatoire.
  • .CATI_OTH_BUTTON_F
    utilisé pour la mise en forme des boutons CATI autres que rendez-vous avec commentaire facultatif.
  • .CATI_OTH_BUTTON_A
    utilisé pour la mise en forme des boutons CATI autres que rendez-vous sans commentaire.
  • .CATI_QUE_BUTTON
    utilisé pour la mise en forme le bouton CATI qui ouvre le questionnaire.
  • .CATI_TEL_BUTTON
    utilisé pour la mise en forme des boutons CATI qui changent le numéro de téléphone.
  • .CATI_ACT_BUTTON
    utilisé pour la mise en forme des boutons CATI d'actions (nouveau numéro, recherche, terminé).
  • .PERMBUTTON
    utilisé pour la mise en forme des boutons d'envois de formulaires administratifs.

Styles facultatifs :

  • BODY
    fixe le fond de page, la police par défaut et les marges de page du questionnaire en entier. (En ce qui a trait à la mise en page du texte, nous préférons établir un style pour chacune des bornes HTML de base pour que tous les navigateurs se comportent de la même façon. Les principales bornes utilisées par CallWeb sont P, TABLE, TR et TD.)

Autres styles :

  • tout autre style peut être défini et utilisé dans le texte d'une question, d'une note ou d'une catégorie de réponse par le biais de la borne SPAN, comme suit : <SPAN CLASS=style>texte</SPAN>

Mise en page du texte

Apparence du questionnaire

Mise en forme du texte

CallWeb s'attend à trouver un fichier de styles appelé « style.css » dans le répertoire du questionnaire; en son absence, CallWeb utilise le style.css qui se trouve dans le répertoire des ressources (habituellement gr/), et finalement dans le répertoire racine de l'installation CallWeb. L'instruction # Stylesheet peut aussi être utilisée pour préciser le nom d'un fichier de style dans un projet particulier.

Pour obtenir l'apparence officielle de CallWeb, on place ce fichier de style dans le répertoire gr/ et les instructions suivantes dans le fichier etc/usager.conf :

    _M_COULEURTITRESCOLONNES = #4578A6
    _M_COULEURCELLULES2 = #D5EBFF
    _M_COULEURCELLULES = #E8F4FF
    _M_COULEURBORDURES = #A8B4BF

L'explication de la syntaxe des styles dépasse le propos de ce manuel; plusieurs bonnes références sont disponibles, de même que plusieurs sites Web. (http://www.w3.org/TR/REC-CSS1 est une référence clef.) Le fichier de styles doit contenir certains styles de base utilisés par CallWeb et peut en définir davantage.

Styles CallWeb (notez que la capitalisation des noms de styles compte dans certains navigateurs et que CallWeb utilise des noms en majuscules) :

  • .QUESTION
    utilisé pour la mise en forme du texte de la question;
  • .REPONSE
    utilisé pour la mise en forme du texte des catégories de réponses dans leur format normal;
  • .AUTOSUBMIT
    utilisé pour la mise en forme du texte des catégories de réponses sujettes à # Auto submit; le style suivant est particulièrement utile :
    .AUTOSUBMIT { padding-right: 20px; background: transparent url(../gr/autosubmit.gif) no-repeat center right; }
  • .NOTE
    utilisé pour la mise en forme du texte des notes;
  • .COLONNE
    utilisé pour la mise en forme du texte des catégories de réponses en format tableau;
  • .LIGNE
    utilisé pour la mise en forme du texte des items (notes) en format tableau;
  • .SUBSTITUT
    utilisé pour la mise en forme du texte rappelé dans le texte de la question, de la note ou des catégories de réponses;
  • .THERMOMETRE
    utilisé pour la mise en forme du texte du thermomètre;
  • .MATRICE, .MATRICE2, .MATRICE3
    attribué à tous les tableaux de questions (qui affichent les questions comme des lignes et les catégories de réponses comme des colonnes); utile pour placer les tableaux horizontalement;
  • .CATEGORYTABLE
    atribué à tous les tableaux HTML qui structurent les catégories de réponses;
  • .BOUTONS
    attribué au tableau des boutons; utile pour placer les boutons horizontalement;
  • .ERREUR
    utilisé pour la mise en forme du texte des messages d'erreur;
  • .H5
    utilisé pour la mise en forme de certaines en-têtes;
  • .EQUIVALENTH5
    utilisé pour la mise en forme de certaines en-têtes d'utilitaires;
  • .EQUIVALENTH6
    utilisé pour la mise en forme des noms des questions dans certaines circonstances;
  • .NEPASLIRE
    utilisé pour la mise en forme des catégories de réponses comportant le code de comportement P;
  • .LIRE
    utilisé pour la mise en forme des catégories de réponses comportant le code de comportement L;
  • .SPECIAL
    utilisé pour la mise en forme des catégories de réponses comportant le code de comportement S.
  • .BUTTON
    utilisé pour la mise en forme des boutons comme Page précédente et Page suivante.
  • .DROPDOWN
    utilisé pour la mise en forme des listes déroulantes.
  • .NUMBOX
    utilisé pour la mise en forme des boîtes numériques de parties ouvertes.
  • .TEXTBOX
    utilisé pour la mise en forme des boîtes simples ou multi-lignes (parties ouvertes).
  • .CATI_APP_BUTTON_O
    utilisé pour la mise en forme des boutons CATI de rendez-vous avec commentaire obligatoire.
  • .CATI_APP_BUTTON_F
    utilisé pour la mise en forme des boutons CATI de rendez-vous avec commentaire facultatif.
  • .CATI_APP_BUTTON_A
    utilisé pour la mise en forme des boutons CATI de rendez-vous sans commentaire.
  • .CATI_OTH_BUTTON_O
    utilisé pour la mise en forme des boutons CATI autres que rendez-vous avec commentaire obligatoire.
  • .CATI_OTH_BUTTON_F
    utilisé pour la mise en forme des boutons CATI autres que rendez-vous avec commentaire facultatif.
  • .CATI_OTH_BUTTON_A
    utilisé pour la mise en forme des boutons CATI autres que rendez-vous sans commentaire.
  • .CATI_QUE_BUTTON
    utilisé pour la mise en forme le bouton CATI qui ouvre le questionnaire.
  • .CATI_TEL_BUTTON
    utilisé pour la mise en forme des boutons CATI qui changent le numéro de téléphone.
  • .CATI_ACT_BUTTON
    utilisé pour la mise en forme des boutons CATI d'actions (nouveau numéro, recherche, terminé).
  • .PERMBUTTON
    utilisé pour la mise en forme des boutons d'envois de formulaires administratifs.

Styles facultatifs :

  • BODY
    fixe le fond de page, la police par défaut et les marges de page du questionnaire en entier. (En ce qui a trait à la mise en page du texte, nous préférons établir un style pour chacune des bornes HTML de base pour que tous les navigateurs se comportent de la même façon. Les principales bornes utilisées par CallWeb sont P, TABLE, TR et TD.)

Autres styles :

  • tout autre style peut être défini et utilisé dans le texte d'une question, d'une note ou d'une catégorie de réponse par le biais de la borne SPAN, comme suit : <SPAN CLASS=style>texte</SPAN>

Mise en page du texte

   

Apparence du questionnaire

Couleurs et disposition

Plusieurs instructions dièses contrôlent la mise en page de nombreux aspects de l'apparence du questionnaire. Une autre page de cette documentation identifie les composantes de la page qui sont contrôlées par les styles.

Colours and layout

Toutes les sorties en forme de tableaux (les tableaux et les questions MEMO dans les questionnaires mais aussi les tableaux de paramètres dans les modules utilitaires, l'affichage des dossiers dans cwnav, les tableaux dans cwfreq, etc.) sont produits à partir du même protocole. Ce protocole utilise les instructions dièses enregistrées dans le questionnaire pour mettre ces tableaux en forme. Si le questionnaire ne contient pas d'instruction pour un aspect particulier de la sortie en tableau, CallWeb utilise un défaut d'installation enregistré dans le répertoire de configuration. En l'absence d'instructions à cet endroit, des défauts s'appliquent.

Couleurs avancées et mise en forme

Il est possible de contrôler plus finement la mise en forme des questions en tableau en utilisant un fichier de styles. Pour activer ce mode avancé, il faut le demander avec l'instruction dièse suivante :

# Styles pour matrices = oui

Dans ce mode, le format des cellules de tableaux est contrôlé par une collection de styles plutôt que par les instructions dièses illustrées ci-haut. L'image suivante documente quel style contrôle quelle cellule. Les lignes de texte qui suivent l'image décrivent les énoncés utilisés dans le fichier style.css (notez que tous les noms de styles sont en majuscules).

Advanced colours and layout

 .ORDINARY_CELL_A, .ORDINARY_CELL_A0, .ORDINARY_CELL_A1 { background: #E4EDF9; }
.ORDINARY_CELL_A2 { background: #F9FAFF; }
.ORDINARY_CELL_B, .ORDINARY_CELL_B0, .ORDINARY_CELL_B1 { background: #FFFFFF; }
.ORDINARY_CELL_B2 { background: #CCCCCC; }
.SPECIAL_COLUMN0 { background: #FFFFFF; }
.SPECIAL_COLUMN1 { background: #FFFF66; }
.SPECIAL_COLUMN2 { background: #CCFF00; }
.SPECIAL_LINE_A0 { background: #FFFFFF; }
.SPECIAL_LINE_B0 { background: #CCCCCC; }
.SPECIAL_CELL1 { background: #FFFFCC; }
.SPECIAL_CELL2 { background: #CCFF99; }

Voici comment le tout fonctionne :

  • d'abord, notez que le tableau est divisé en trois sections verticales (parce qu'il y a deux questions côte à côte; il y aurait deux sections s'il y avait une seule question et quatre s'il y avait trois questions, etc.) :
    • la première section verticale est la colonne des étiquettes des lignes; notez que tous les noms de styles se terminent par « 0 »;
    • la deuxième section verticale correspond à la première question; les noms de tous ses styles se terminent par « 1 »;
    • la troisième section verticale correspond à la deuxième question; les noms de tous ses styles se terminent par « 2 »;
    • s'il y avait plus de questions verticales, la numérotation suivrait.
  • ensuite, notez que, dans le corps du tableau, la couleur des lignes alterne pour les lignes paires et les lignes impaires; les noms des styles correspondant aux lignes impaires portent un « A » à l'avant-dernier caractère alors que les lignes paires y portent un « B »;
  • il y a 4 préfixes de noms de styles :
    • SPECIAL_COLUMN (qui devient SPECIAL_COLUMN0, SPECIAL_COLUMN1 et SPECIAL_COLUMN2 pour les différentes sections verticales) contrôle les en-têtes de colonnes;
    • SPECIAL_LINE_ (qui devient SPECIAL_LINE_A0 pour les lignes impaires dans la section 0, etc.) contrôle les en-têtes de lignes;
    • SPECIAL_CELL (qui devient SPECIAL_CELL0 et SPECIAL_CELL1 pour les différentes sections verticales) contrôle les cellules définies comme « spéciales » dans un code de comportement de catégorie de réponse ou dans l'instruction dièse de définition d'un tableau;
    • ORDINARY_CELL_ (qui devient ORDINARY_CELL_A1, ORDINARY_CELL_B1, ORDINARY_CELL_A2 et ORDINARY_CELL_B2 pour les lignes impaires et paires des sections 1 et 2, etc.) contrôle les cellules du corps du tableau.
  • si ce mode est utilisé dans un projet, il touche aussi la présentation des tableaux dans les modules utilitaires. Il est donc utile de définir les styles suivants (qui ne sont pas utilisés dans les tableaux de questions mais le sont dans d'autres contextes) : ORDINARY_CELL_A, .ORDINARY_CELL_A0, .ORDINARY_CELL_B, .ORDINARY_CELL_B0.

Apparence du questionnaire

Couleurs et disposition

Plusieurs instructions dièses contrôlent la mise en page de nombreux aspects de l'apparence du questionnaire. Une autre page de cette documentation identifie les composantes de la page qui sont contrôlées par les styles.

Colours and layout

Toutes les sorties en forme de tableaux (les tableaux et les questions MEMO dans les questionnaires mais aussi les tableaux de paramètres dans les modules utilitaires, l'affichage des dossiers dans cwnav, les tableaux dans cwfreq, etc.) sont produits à partir du même protocole. Ce protocole utilise les instructions dièses enregistrées dans le questionnaire pour mettre ces tableaux en forme. Si le questionnaire ne contient pas d'instruction pour un aspect particulier de la sortie en tableau, CallWeb utilise un défaut d'installation enregistré dans le répertoire de configuration. En l'absence d'instructions à cet endroit, des défauts s'appliquent.

Couleurs avancées et mise en forme

Il est possible de contrôler plus finement la mise en forme des questions en tableau en utilisant un fichier de styles. Pour activer ce mode avancé, il faut le demander avec l'instruction dièse suivante :

# Styles pour matrices = oui

Dans ce mode, le format des cellules de tableaux est contrôlé par une collection de styles plutôt que par les instructions dièses illustrées ci-haut. L'image suivante documente quel style contrôle quelle cellule. Les lignes de texte qui suivent l'image décrivent les énoncés utilisés dans le fichier style.css (notez que tous les noms de styles sont en majuscules).

Advanced colours and layout

 .ORDINARY_CELL_A, .ORDINARY_CELL_A0, .ORDINARY_CELL_A1 { background: #E4EDF9; }
.ORDINARY_CELL_A2 { background: #F9FAFF; }
.ORDINARY_CELL_B, .ORDINARY_CELL_B0, .ORDINARY_CELL_B1 { background: #FFFFFF; }
.ORDINARY_CELL_B2 { background: #CCCCCC; }
.SPECIAL_COLUMN0 { background: #FFFFFF; }
.SPECIAL_COLUMN1 { background: #FFFF66; }
.SPECIAL_COLUMN2 { background: #CCFF00; }
.SPECIAL_LINE_A0 { background: #FFFFFF; }
.SPECIAL_LINE_B0 { background: #CCCCCC; }
.SPECIAL_CELL1 { background: #FFFFCC; }
.SPECIAL_CELL2 { background: #CCFF99; }

Voici comment le tout fonctionne :

  • d'abord, notez que le tableau est divisé en trois sections verticales (parce qu'il y a deux questions côte à côte; il y aurait deux sections s'il y avait une seule question et quatre s'il y avait trois questions, etc.) :
    • la première section verticale est la colonne des étiquettes des lignes; notez que tous les noms de styles se terminent par « 0 »;
    • la deuxième section verticale correspond à la première question; les noms de tous ses styles se terminent par « 1 »;
    • la troisième section verticale correspond à la deuxième question; les noms de tous ses styles se terminent par « 2 »;
    • s'il y avait plus de questions verticales, la numérotation suivrait.
  • ensuite, notez que, dans le corps du tableau, la couleur des lignes alterne pour les lignes paires et les lignes impaires; les noms des styles correspondant aux lignes impaires portent un « A » à l'avant-dernier caractère alors que les lignes paires y portent un « B »;
  • il y a 4 préfixes de noms de styles :
    • SPECIAL_COLUMN (qui devient SPECIAL_COLUMN0, SPECIAL_COLUMN1 et SPECIAL_COLUMN2 pour les différentes sections verticales) contrôle les en-têtes de colonnes;
    • SPECIAL_LINE_ (qui devient SPECIAL_LINE_A0 pour les lignes impaires dans la section 0, etc.) contrôle les en-têtes de lignes;
    • SPECIAL_CELL (qui devient SPECIAL_CELL0 et SPECIAL_CELL1 pour les différentes sections verticales) contrôle les cellules définies comme « spéciales » dans un code de comportement de catégorie de réponse ou dans l'instruction dièse de définition d'un tableau;
    • ORDINARY_CELL_ (qui devient ORDINARY_CELL_A1, ORDINARY_CELL_B1, ORDINARY_CELL_A2 et ORDINARY_CELL_B2 pour les lignes impaires et paires des sections 1 et 2, etc.) contrôle les cellules du corps du tableau.
  • si ce mode est utilisé dans un projet, il touche aussi la présentation des tableaux dans les modules utilitaires. Il est donc utile de définir les styles suivants (qui ne sont pas utilisés dans les tableaux de questions mais le sont dans d'autres contextes) : ORDINARY_CELL_A, .ORDINARY_CELL_A0, .ORDINARY_CELL_B, .ORDINARY_CELL_B0.

   

Apparence du questionnaire

Cas particuliers : mise en forme dans le questionnaire

Taille d'une boîte de partie ouverte

On a indiqué ailleurs que la syntaxe de définition d'une partie ouverte alphanumérique est :

    Clargeur

En fait, deux autres arguments sont disponibles :

    Clargeur LIGNES COLONNES
  • LIGNES est le nombre de lignes de la boîte texte;
  • COLONNES est le nombre de colonnes de la boîte texte.

Codage HTML

Dans le texte de la question, la note et le texte des catégories de réponses, tout comme dans plusieurs instructions dièses comme # ENTETE et # PIED, il est possible d'inclure du code HTML standard. De cette façon, des tableaux HTML peuvent être utilisées pour aligner des parties de texte, des hyperliens peuvent être insérés, des images peuvent être affichées, etc.

Apparence du questionnaire

Cas particuliers : mise en forme dans le questionnaire

Taille d'une boîte de partie ouverte

On a indiqué ailleurs que la syntaxe de définition d'une partie ouverte alphanumérique est :

    Clargeur

En fait, deux autres arguments sont disponibles :

    Clargeur LIGNES COLONNES
  • LIGNES est le nombre de lignes de la boîte texte;
  • COLONNES est le nombre de colonnes de la boîte texte.

Codage HTML

Dans le texte de la question, la note et le texte des catégories de réponses, tout comme dans plusieurs instructions dièses comme # ENTETE et # PIED, il est possible d'inclure du code HTML standard. De cette façon, des tableaux HTML peuvent être utilisées pour aligner des parties de texte, des hyperliens peuvent être insérés, des images peuvent être affichées, etc.

   

Apparence du questionnaire

Produits finis

Voici quelques exemples d'apparences que les pages CallWeb peuvent avoir. Bien sûr, ce n'est pas une série exhaustive des apaprences possibles.

Apparence du questionnaire

Produits finis

Voici quelques exemples d'apparences que les pages CallWeb peuvent avoir. Bien sûr, ce n'est pas une série exhaustive des apaprences possibles.

   

Gestion

Introduction

La gestion d'un projet CallWeb inclut une série d'opérations qui sont représentées dans la figure suivante, de pair avec l'outil qui est réservé à chaque étape. Nous prenons pour acquis que le gestionnaire de projet connaît l'édition de texte (nous aimons beaucoup TextPad) et les transferts FTP (bien que le module cwdocs permet maintenant de se passer d'outil de transfert de fichiers).

Le reste de cette section décrit les cinq étapes de la gestion d'un projet: l'initiation d'un projet, les modifications en cours de collecte de données, la micro-gestion des données, la production de tableaux en temps réel et l'extraction de données.

Gestion de projet

Gestion

Introduction

La gestion d'un projet CallWeb inclut une série d'opérations qui sont représentées dans la figure suivante, de pair avec l'outil qui est réservé à chaque étape. Nous prenons pour acquis que le gestionnaire de projet connaît l'édition de texte (nous aimons beaucoup TextPad) et les transferts FTP (bien que le module cwdocs permet maintenant de se passer d'outil de transfert de fichiers).

Le reste de cette section décrit les cinq étapes de la gestion d'un projet: l'initiation d'un projet, les modifications en cours de collecte de données, la micro-gestion des données, la production de tableaux en temps réel et l'extraction de données.

Gestion de projet

   

Gestion

Gestion des permissions

cwpermTous les accès administratifs à CallWeb sont contrôlés par un jeu de permissions fondées sur les différents modules et les différents projets. L'accès aux questionnaires par les participants et aux modules d'entrevue CATI par les interviewers n'est PAS sujet à ce système de permissions.

Si aucune permission n'est définie (comme lors de l'utilisation initiale du système), le gestionnaire de site doit appeler le module cwperm.cgi dans le répertoire d'utilitaires et définir un super-utilisateur (voir la définition plus bas). Ce super-utilisateur peut ensuite créer d'autres utilisateurs selon les besoins du site.

Concepts clefs

Il y a deux types d'utilisateurs : les super-utilisateurs et les utilisateurs ordinaires. Les super-utilisateurs ont accès à toutes les ressources et sont les seuls qui peuvent utiliser cwperm.cgi pour créer des usagers et modifier des permissions. Les utilisateurs ordinaires ne peuvent entreprendre que les tâches pour lesquelles ils ont reçu la permission de la part d'un super-utilisateur.

Il y a six types de permissions, comme suit :

  • Tous les modules, tous les projets : un utilisateur ordinaire peut recevoir la permission d'accéder à tous les modules dans tous les projets. Ceci est équivalent aux permissions accordées aux super-utilisateurs sauf pour ce qui est de l'accès à cwperm.cgi et donc de la création d'utilisateurs et de la fixation de permissions;
  • Tous les modules, un projet (ou plus) : un utilisateur peut recevoir la permission d'accéder à tous les modules pour un projet en particulier ou plusieurs;
  • Tous les projets, un module (ou plus) : un utilisateur peut recevoir la permission d'accéder à tous les projets depuis un module particulier ou plusieurs;
  • Un projet (ou plus), un module (ou plus) : un utilisateur peut se voir accorder des permissions très spécifiques d'accéder à une combinaison particulière de module et de projet; c'est le niveau le plus microscopique de permission. On l'utilisera par exemple pour permettre à un client de produire des tableaux de fréquence dans son projet.
  • Permissions générales de modules pour # Accessible par : un utilisateur peut recevoir la permission d'accès à divers modules pour tous les projets où il ou elle est nommé(e) dans l'instruction dièse # Accessible par; ces permissions n'ont aucun effet pour les autres projets.
  • Permissions qui sont empruntées dynamiquement d'autres utilisateurs : un utilisateur peut être associé à d'autres utilisateurs dont il emprunte les permissions en temps réel. Ces utilisateurs peuvent eux-mêmes emprunter des permissions d'autres utilisateurs (en cascade).

Les utilisateurs sont temporairement tenus à l'écart du système s'ils accumulent trois accès incorrects au cours d'une période de deux minutes.

Fonctions de gestion des permissions

Une fois qu'un super-utilisateur a accédé à cwperm.cgi (soit directement ou par le biais du module intégré), il obtient un menu similaire à celui qui est représenté ici. Les fonctions suivantes sont alors disponibles :

  • Afficher la liste des usagers
    Cette option fait simplement la liste des noms d'utilisateurs, pour référence.
  • Créer un usager
    Un nouvel utilisateur reçoit un nom d'usager et un type (super-utilisateur ou utilisateur ordinaire). Le type d'utilisateur ne peut pas être modifié par la suite.
  • Changer le mot de passe d'un usager
    Tout utilisateur peut recevoir un nouveau mot de passe, qui doit être confirmé.
  • Accorder/modifier les permissions d'un usager
    Après avoir sélectionné un utilisateur dont il faut modifier les permissions, une interface (plutôt intimidante) est affichée; elle permet au super-utilisateur d'identifier les permissions que l'utilisateur possèdera. Chacun des modules disponibles est affiché en colonne, en plus d'une colonne pour tous les modules. Chacun des projets est affiché en ligne, en plus d'une ligne pour tous les projets et d'une ligne pour les projets incluant l'utilisateur dans # Accessible par. Les permissions peuvent être redondantes (p.ex., une permission pour tous les projets sur cwfreq.cgi peut cohabiter avec une permission pour un projet particulier sur le même module). L'interprétation la plus libérale possible est utilisée plus tard.
    Une boîte étiquetée « Niveau de permission » accepte un entier positif; elle n'est pas encore utilisée.
  • Copier les permissions d'un usager à un ou plusieurs autres
    Les permissions d'un utilisateur peuvent être copiées vers d'autres utilisateurs. Utilisant cette option, par exemple, on peut créer un faux utilisateur portant les permissions d'un groupe d'utilisateurs, pour ensuite copier ces permissions vers un groupe d'utilisateurs nécessitant ces permissions. La copie de permissions peut être dynamique (et s'ajuster en temps réel aux changements de permissions effectués sur les utilisateurs sources), additive (et ajouter les permissions de l'utilisateur source à l'utilisateur cible sans toucher les autres permissions existantes de l'utilisateur cible) ou elle peut remplacer complètement les permissions existantes de l'utilisateur cible.
  • Effacer un usager
    Des utilisateurs peuvent être effacés complètement du système de permissions, un à la fois.
  • Se déconnecter
    Cette option met fin à l'activité du super-utilisateur dans cwperm.cgi.

Stratégies de gestion des usagers

Davantage à venir.

Gestion

Gestion des permissions

cwpermTous les accès administratifs à CallWeb sont contrôlés par un jeu de permissions fondées sur les différents modules et les différents projets. L'accès aux questionnaires par les participants et aux modules d'entrevue CATI par les interviewers n'est PAS sujet à ce système de permissions.

Si aucune permission n'est définie (comme lors de l'utilisation initiale du système), le gestionnaire de site doit appeler le module cwperm.cgi dans le répertoire d'utilitaires et définir un super-utilisateur (voir la définition plus bas). Ce super-utilisateur peut ensuite créer d'autres utilisateurs selon les besoins du site.

Concepts clefs

Il y a deux types d'utilisateurs : les super-utilisateurs et les utilisateurs ordinaires. Les super-utilisateurs ont accès à toutes les ressources et sont les seuls qui peuvent utiliser cwperm.cgi pour créer des usagers et modifier des permissions. Les utilisateurs ordinaires ne peuvent entreprendre que les tâches pour lesquelles ils ont reçu la permission de la part d'un super-utilisateur.

Il y a six types de permissions, comme suit :

  • Tous les modules, tous les projets : un utilisateur ordinaire peut recevoir la permission d'accéder à tous les modules dans tous les projets. Ceci est équivalent aux permissions accordées aux super-utilisateurs sauf pour ce qui est de l'accès à cwperm.cgi et donc de la création d'utilisateurs et de la fixation de permissions;
  • Tous les modules, un projet (ou plus) : un utilisateur peut recevoir la permission d'accéder à tous les modules pour un projet en particulier ou plusieurs;
  • Tous les projets, un module (ou plus) : un utilisateur peut recevoir la permission d'accéder à tous les projets depuis un module particulier ou plusieurs;
  • Un projet (ou plus), un module (ou plus) : un utilisateur peut se voir accorder des permissions très spécifiques d'accéder à une combinaison particulière de module et de projet; c'est le niveau le plus microscopique de permission. On l'utilisera par exemple pour permettre à un client de produire des tableaux de fréquence dans son projet.
  • Permissions générales de modules pour # Accessible par : un utilisateur peut recevoir la permission d'accès à divers modules pour tous les projets où il ou elle est nommé(e) dans l'instruction dièse # Accessible par; ces permissions n'ont aucun effet pour les autres projets.
  • Permissions qui sont empruntées dynamiquement d'autres utilisateurs : un utilisateur peut être associé à d'autres utilisateurs dont il emprunte les permissions en temps réel. Ces utilisateurs peuvent eux-mêmes emprunter des permissions d'autres utilisateurs (en cascade).

Les utilisateurs sont temporairement tenus à l'écart du système s'ils accumulent trois accès incorrects au cours d'une période de deux minutes.

Fonctions de gestion des permissions

Une fois qu'un super-utilisateur a accédé à cwperm.cgi (soit directement ou par le biais du module intégré), il obtient un menu similaire à celui qui est représenté ici. Les fonctions suivantes sont alors disponibles :

  • Afficher la liste des usagers
    Cette option fait simplement la liste des noms d'utilisateurs, pour référence.
  • Créer un usager
    Un nouvel utilisateur reçoit un nom d'usager et un type (super-utilisateur ou utilisateur ordinaire). Le type d'utilisateur ne peut pas être modifié par la suite.
  • Changer le mot de passe d'un usager
    Tout utilisateur peut recevoir un nouveau mot de passe, qui doit être confirmé.
  • Accorder/modifier les permissions d'un usager
    Après avoir sélectionné un utilisateur dont il faut modifier les permissions, une interface (plutôt intimidante) est affichée; elle permet au super-utilisateur d'identifier les permissions que l'utilisateur possèdera. Chacun des modules disponibles est affiché en colonne, en plus d'une colonne pour tous les modules. Chacun des projets est affiché en ligne, en plus d'une ligne pour tous les projets et d'une ligne pour les projets incluant l'utilisateur dans # Accessible par. Les permissions peuvent être redondantes (p.ex., une permission pour tous les projets sur cwfreq.cgi peut cohabiter avec une permission pour un projet particulier sur le même module). L'interprétation la plus libérale possible est utilisée plus tard.
    Une boîte étiquetée « Niveau de permission » accepte un entier positif; elle n'est pas encore utilisée.
  • Copier les permissions d'un usager à un ou plusieurs autres
    Les permissions d'un utilisateur peuvent être copiées vers d'autres utilisateurs. Utilisant cette option, par exemple, on peut créer un faux utilisateur portant les permissions d'un groupe d'utilisateurs, pour ensuite copier ces permissions vers un groupe d'utilisateurs nécessitant ces permissions. La copie de permissions peut être dynamique (et s'ajuster en temps réel aux changements de permissions effectués sur les utilisateurs sources), additive (et ajouter les permissions de l'utilisateur source à l'utilisateur cible sans toucher les autres permissions existantes de l'utilisateur cible) ou elle peut remplacer complètement les permissions existantes de l'utilisateur cible.
  • Effacer un usager
    Des utilisateurs peuvent être effacés complètement du système de permissions, un à la fois.
  • Se déconnecter
    Cette option met fin à l'activité du super-utilisateur dans cwperm.cgi.

Stratégies de gestion des usagers

Davantage à venir.

   

Gestion

Module intégré

Module intégréUn module appelé cw, situé dans le répertoire des utilitaires, fournit un menu d'accès à tous les modules CallWeb disponibles dans le même répertoire (et au module callweb.cgi situé un niveau plus haut dans la hiérarchie des répertoires.

Il est hautement recommandé d'utiliser ce module pour accéder aux autres programmes CallWeb puisque les différents paramètres et options y sont affichés (pas besoin de taper, pas de risque d'oublier des arguments).

Les utilitaires situés dans le répertoire principal des utilitaires (défini dans le fichier d'installation) ont accès à tous les projets CallWeb. Pour créer une instance d'un programme utilitaire ayant accès à un sous-ensemble des projets, suivez la procédure expliquée dans le livre de recettes CallWeb.

Gestion

Module intégré

Module intégréUn module appelé cw, situé dans le répertoire des utilitaires, fournit un menu d'accès à tous les modules CallWeb disponibles dans le même répertoire (et au module callweb.cgi situé un niveau plus haut dans la hiérarchie des répertoires.

Il est hautement recommandé d'utiliser ce module pour accéder aux autres programmes CallWeb puisque les différents paramètres et options y sont affichés (pas besoin de taper, pas de risque d'oublier des arguments).

Les utilitaires situés dans le répertoire principal des utilitaires (défini dans le fichier d'installation) ont accès à tous les projets CallWeb. Pour créer une instance d'un programme utilitaire ayant accès à un sous-ensemble des projets, suivez la procédure expliquée dans le livre de recettes CallWeb.

   

Gestion

Démarrage d'un projet

Instructions dièses requises

En plus de la définition des questions, un questionnaire CallWeb doit include les trois instructions dièses suivantes :

  • # Langues disponibles = LA,LA,LA,...
    Cette instruction fournit la liste des langues définies dans le questionnaire; elle utilise les codes ISO à deux lettres (FR pour le français, EN pour l'anglais, ES pour l'espagnol); CallWeb identifie tous les cas de segments linguistiques manquants sur la base de cette liste.
  • # Langue par defaut = LA
    Cette instruction identifie la langue qui est affichée par défaut si aucun paramètre de langue n'est fourni à CallWeb; elle utilise les codes ISO à deux lettres.
  • # Type enquete = (un des codes suivants)
    Cette instruction définit le type de collecte de données.
    • Ouvert = entièrement ouvert; aucun code d'accès (était 1)
    • Ferme = accès contrôlé; la base de données doit être prépeuplée (était 2)
    • Ouvert Combinaison = entièrement ouvert; un code d'usager et un mot de passe sont sélectionnés par le participant (était 3)
    • Ouvert Offert = entièrement ouvert; CallWeb offre un code d'accès pour retourner au questionnaire (était 5)
    • Mot de passe = accès contrôlé; la base de données doit être prépeuplée (était 7). Une recette décrit ce système en détail.

Installation physique d'un script de questionnaire

L'installation physique d'un projet CallWeb exige que le script de questionnaire :

  • porte une extension .scw (lettres minuscules); CallWeb considère tous les fichiers .scw comme des questionnaires;
  • soit placé sur un serveur Web dans un répertoire dont le nom commence par « cw » et qui est situé un niveau sous le répertoire où se trouve le programme CallWeb (le répertoire doit être possédé par l'utilisateur utilisé par le serveur Apache ou offrir les permissions lecture-écriture-exécution au monde entier — vérifier auprès de votre administrateur de système);
  • soit accompagné d'un fichier nommé « style.css », dans le même répertoire que le script de questionnaire; ce fichier de styles contrôle certains aspects de la mise en page du questionnaire; tous les projets placés dans un même répertoire partagent le même fichier style.css; les projets placés dans des répertoires « cw » différents utilisent des fichiers de styles différents.

Chaque projet CallWeb crée les fichiers suivants :

  • projet.qcw
    une version compilée du questionnaire, pour accès rapide.
  • une base de données MySQL
    elle contient la base de données des réponses fournies; elle peut contenir une série de dossiers vierges si elle a été prépeuplée par le gestionnaire de projet avant l'initiation de la collecte de données.

Compilation du questionnaire

Une fois qu'un questionnaire est suffisamment complet (n'importe quand, en fait, et toujours sujet aux tests et aux modifications) et téléchargé vers le serveur Web, le module cw est utilisé pour activer diverses fonctions.

La compilation exige le nom du script et offre six options :

  • Changement structurel
    Cette boîte doit être sélectionnée si le projet subit des changements structurels des données; les changements structurels incluent :
    • l'ajout ou la destruction d'une question
    • l'ajout ou la destruction d'une partie ouverte
    • la transformation d'une question à une seule réponse en question à plusieurs réponses ou vice versa
    • le déplacement de questions dans le questionnaire
  • Détails
    Cette boîte active l'affichage des messages détaillés de compilation.
  • Test
    La boîte « test » peut être sélectionnée pour demander une compilation test, sans changement au questionnaire compilé ou à la base de données de réponses existante.
  • Apparence scw
    Cette boîte produit une nouvelle version du fichier .scw étiquetant les lignes « pourcent » et insérant les retraits facilitant la lecture du fichier.
  • Historique
    Affiche l'historique de compilation du projet.
  • Copie
    Démarre la copie du fichier .qcw vers un autre serveur.

La compilation produit beaucoup d'information qui devrait être étudiée en détail. Les erreurs de compilation sont mises en évidence grâce au style ERREUR qui se trouve dans le fichier style.css; elles sont reprises au haut du rapport de compilation.

Si des erreurs de compilation sont identifiées, aucun changement n'est apporté au questionnaire compilé ou à la base de données de réponses.

La compilation peut produire des « avertissements ». Les messages d'avertissement sont des observations d'un intérêt particulier qui ne sont pas à proprement parler des erreurs mais qui pourraient être considérées problématiques. Ils incluent :

Comparaison de questionnaires

cwcompare permet d'identifier les changements structurels intervenus entre deux versions du même questionnaire. Les deux versions doivent être compilées et résider sur le même serveur. cwcompare ne compare pas le texte des questionnaire — seulement les aspects structurels (sauts, types de questions, etc.).

Prépopulation de données

Une fois le questionnaire compilé sans erreur, des données peuvent être placées dans la base de données. On appelle cette opération « prépopulation ». Cette opération est nécessaire pour créer des codes d'accès lors de collectes de données à accès contrôlé. La prépopulation peut aussi être utilisée pour insérer de l'information à propos des personnes qui compléteront le questionnaire, dans un contexte d'accès contrôlé; ces données peuvent ensuite être utilisées au cours de la collecte de données.

La prépopulation peut être effectuée sur une base de données vide ou dans une base de données qui contient déjà des dossiers.

Les données de prépopulation sont contenues dans un (ou plusieurs) fichier(s) comportant les caractéristiques suivantes :

  • le nom du fichier doit posséder une extension commençant par « t », comme « prepop.tab »;
  • fichier ANSI;
  • une ligne par cas;
  • les champs sont séparés par des caractères de tabulation;
  • la première ligne fait la liste des variables dans le fichier de prépopulation selon le nom de la question correspondante dans le script de questionnaire; la liste doit inclure le champ _telkey; les noms sont séparés par des caractères de tabulation; les champs comportant des noms non reconnus sont ignorés;
  • le code d'identification individuelle des dossiers (appelé _telkey dans CallWeb) doit être présent dans le fichier de prépopulation; il peut contenir des lettres, des chiffres et le trait de soulignement — tout autre caractère sera éliminé de la valeur importée et de la clef utilisée à l'entrée dans le questionnaire (de telle sorte que, par exemple, un numéro de téléphone avec parenthèses et tirets pourrait être fourni comme code d'accès et il survivrait à l'élimination des caractères inadmissibles);
  • on peut introduire des lignes de commentaires ou de documentation dans le fichier en les débutant par la chaîne de commentaires (##).

Ce fichier doit être téléchargé vers le serveur Web et placé dans le même répertoire que le script de questionnaire pour le projet.

Pour préserver les valeurs prépeuplées dans toutes les circonstances (incluant la réinitialisation d'un dossier), utiliser le mot-clef NEVERUPDATE sur la ligne du nom de la question dans laquelle les données sont prépeuplées.

À partir de l'interface intégrée cw, cwprepop peut être appelé en sélectionnant le nom du projet et le nomdu fichier text délimité-tab à partir des listes déroulantes.

Le module cwprepop peut aussi être utilisé pour ajouter (ou remplacer) des données dans des dossiers existants si la puce « remplacer des variables » est sélectionnée plutôt que la puce « ajouter des dossiers ». Dans ce contexte, une valeur de « -- » ne remplace pas la valeur pré-existante.

Production de données tests aléatoires

Une fois le questionnaire compilé sans erreur, des données tests peuvent être produites aléatoirement pour vérifier que les conditions logiques du script fonctionnent comme prévu. Le module cwgen se charge de cette fonction. Il peut fonctionner de deux manières :

  • si la base de données de projet est vide (aucune donné n'a été prépeuplée ou crée par le biais de questionnaires), cwgen (appelé depuis l'interface intégrée cw) accepte comme argument le nombre de questionnaires à produire;
  • si la base de données de projet n'est pas vide, cwgen demande confirmation de l'opération par utilisation du mot-clef de destruction et procède ensuite à la recréation de tous les questionnaires dans la base de données, tout en respectant les données prépeuplées.

Chaque question du questionnaire est analysée pour chaque cas et une réponse aléatoire est sélectionnée, tant pour les questions fermées que pour les parties ouvertes. Les sauts, les calculs, les questions sans réponse, etc., sont honorées; les tests matriciels et les instructions dièses Test ne le sont pas — une liste des tests non effectués est produite à la fin de l'opération.

CallWeb met fin à la production de données aléatoires si le questionnaire apparaît coincé dans une boucle infinie.

Gestion

Démarrage d'un projet

Instructions dièses requises

En plus de la définition des questions, un questionnaire CallWeb doit include les trois instructions dièses suivantes :

  • # Langues disponibles = LA,LA,LA,...
    Cette instruction fournit la liste des langues définies dans le questionnaire; elle utilise les codes ISO à deux lettres (FR pour le français, EN pour l'anglais, ES pour l'espagnol); CallWeb identifie tous les cas de segments linguistiques manquants sur la base de cette liste.
  • # Langue par defaut = LA
    Cette instruction identifie la langue qui est affichée par défaut si aucun paramètre de langue n'est fourni à CallWeb; elle utilise les codes ISO à deux lettres.
  • # Type enquete = (un des codes suivants)
    Cette instruction définit le type de collecte de données.
    • Ouvert = entièrement ouvert; aucun code d'accès (était 1)
    • Ferme = accès contrôlé; la base de données doit être prépeuplée (était 2)
    • Ouvert Combinaison = entièrement ouvert; un code d'usager et un mot de passe sont sélectionnés par le participant (était 3)
    • Ouvert Offert = entièrement ouvert; CallWeb offre un code d'accès pour retourner au questionnaire (était 5)
    • Mot de passe = accès contrôlé; la base de données doit être prépeuplée (était 7). Une recette décrit ce système en détail.

Installation physique d'un script de questionnaire

L'installation physique d'un projet CallWeb exige que le script de questionnaire :

  • porte une extension .scw (lettres minuscules); CallWeb considère tous les fichiers .scw comme des questionnaires;
  • soit placé sur un serveur Web dans un répertoire dont le nom commence par « cw » et qui est situé un niveau sous le répertoire où se trouve le programme CallWeb (le répertoire doit être possédé par l'utilisateur utilisé par le serveur Apache ou offrir les permissions lecture-écriture-exécution au monde entier — vérifier auprès de votre administrateur de système);
  • soit accompagné d'un fichier nommé « style.css », dans le même répertoire que le script de questionnaire; ce fichier de styles contrôle certains aspects de la mise en page du questionnaire; tous les projets placés dans un même répertoire partagent le même fichier style.css; les projets placés dans des répertoires « cw » différents utilisent des fichiers de styles différents.

Chaque projet CallWeb crée les fichiers suivants :

  • projet.qcw
    une version compilée du questionnaire, pour accès rapide.
  • une base de données MySQL
    elle contient la base de données des réponses fournies; elle peut contenir une série de dossiers vierges si elle a été prépeuplée par le gestionnaire de projet avant l'initiation de la collecte de données.

Compilation du questionnaire

Une fois qu'un questionnaire est suffisamment complet (n'importe quand, en fait, et toujours sujet aux tests et aux modifications) et téléchargé vers le serveur Web, le module cw est utilisé pour activer diverses fonctions.

La compilation exige le nom du script et offre six options :

  • Changement structurel
    Cette boîte doit être sélectionnée si le projet subit des changements structurels des données; les changements structurels incluent :
    • l'ajout ou la destruction d'une question
    • l'ajout ou la destruction d'une partie ouverte
    • la transformation d'une question à une seule réponse en question à plusieurs réponses ou vice versa
    • le déplacement de questions dans le questionnaire
  • Détails
    Cette boîte active l'affichage des messages détaillés de compilation.
  • Test
    La boîte « test » peut être sélectionnée pour demander une compilation test, sans changement au questionnaire compilé ou à la base de données de réponses existante.
  • Apparence scw
    Cette boîte produit une nouvelle version du fichier .scw étiquetant les lignes « pourcent » et insérant les retraits facilitant la lecture du fichier.
  • Historique
    Affiche l'historique de compilation du projet.
  • Copie
    Démarre la copie du fichier .qcw vers un autre serveur.

La compilation produit beaucoup d'information qui devrait être étudiée en détail. Les erreurs de compilation sont mises en évidence grâce au style ERREUR qui se trouve dans le fichier style.css; elles sont reprises au haut du rapport de compilation.

Si des erreurs de compilation sont identifiées, aucun changement n'est apporté au questionnaire compilé ou à la base de données de réponses.

La compilation peut produire des « avertissements ». Les messages d'avertissement sont des observations d'un intérêt particulier qui ne sont pas à proprement parler des erreurs mais qui pourraient être considérées problématiques. Ils incluent :

Comparaison de questionnaires

cwcompare permet d'identifier les changements structurels intervenus entre deux versions du même questionnaire. Les deux versions doivent être compilées et résider sur le même serveur. cwcompare ne compare pas le texte des questionnaire — seulement les aspects structurels (sauts, types de questions, etc.).

Prépopulation de données

Une fois le questionnaire compilé sans erreur, des données peuvent être placées dans la base de données. On appelle cette opération « prépopulation ». Cette opération est nécessaire pour créer des codes d'accès lors de collectes de données à accès contrôlé. La prépopulation peut aussi être utilisée pour insérer de l'information à propos des personnes qui compléteront le questionnaire, dans un contexte d'accès contrôlé; ces données peuvent ensuite être utilisées au cours de la collecte de données.

La prépopulation peut être effectuée sur une base de données vide ou dans une base de données qui contient déjà des dossiers.

Les données de prépopulation sont contenues dans un (ou plusieurs) fichier(s) comportant les caractéristiques suivantes :

  • le nom du fichier doit posséder une extension commençant par « t », comme « prepop.tab »;
  • fichier ANSI;
  • une ligne par cas;
  • les champs sont séparés par des caractères de tabulation;
  • la première ligne fait la liste des variables dans le fichier de prépopulation selon le nom de la question correspondante dans le script de questionnaire; la liste doit inclure le champ _telkey; les noms sont séparés par des caractères de tabulation; les champs comportant des noms non reconnus sont ignorés;
  • le code d'identification individuelle des dossiers (appelé _telkey dans CallWeb) doit être présent dans le fichier de prépopulation; il peut contenir des lettres, des chiffres et le trait de soulignement — tout autre caractère sera éliminé de la valeur importée et de la clef utilisée à l'entrée dans le questionnaire (de telle sorte que, par exemple, un numéro de téléphone avec parenthèses et tirets pourrait être fourni comme code d'accès et il survivrait à l'élimination des caractères inadmissibles);
  • on peut introduire des lignes de commentaires ou de documentation dans le fichier en les débutant par la chaîne de commentaires (##).

Ce fichier doit être téléchargé vers le serveur Web et placé dans le même répertoire que le script de questionnaire pour le projet.

Pour préserver les valeurs prépeuplées dans toutes les circonstances (incluant la réinitialisation d'un dossier), utiliser le mot-clef NEVERUPDATE sur la ligne du nom de la question dans laquelle les données sont prépeuplées.

À partir de l'interface intégrée cw, cwprepop peut être appelé en sélectionnant le nom du projet et le nomdu fichier text délimité-tab à partir des listes déroulantes.

Le module cwprepop peut aussi être utilisé pour ajouter (ou remplacer) des données dans des dossiers existants si la puce « remplacer des variables » est sélectionnée plutôt que la puce « ajouter des dossiers ». Dans ce contexte, une valeur de « -- » ne remplace pas la valeur pré-existante.

Production de données tests aléatoires

Une fois le questionnaire compilé sans erreur, des données tests peuvent être produites aléatoirement pour vérifier que les conditions logiques du script fonctionnent comme prévu. Le module cwgen se charge de cette fonction. Il peut fonctionner de deux manières :

  • si la base de données de projet est vide (aucune donné n'a été prépeuplée ou crée par le biais de questionnaires), cwgen (appelé depuis l'interface intégrée cw) accepte comme argument le nombre de questionnaires à produire;
  • si la base de données de projet n'est pas vide, cwgen demande confirmation de l'opération par utilisation du mot-clef de destruction et procède ensuite à la recréation de tous les questionnaires dans la base de données, tout en respectant les données prépeuplées.

Chaque question du questionnaire est analysée pour chaque cas et une réponse aléatoire est sélectionnée, tant pour les questions fermées que pour les parties ouvertes. Les sauts, les calculs, les questions sans réponse, etc., sont honorées; les tests matriciels et les instructions dièses Test ne le sont pas — une liste des tests non effectués est produite à la fin de l'opération.

CallWeb met fin à la production de données aléatoires si le questionnaire apparaît coincé dans une boucle infinie.

   

Gestion

Gestion des fichiers

Le module cwdocs de CallWeb permet de gérer vos fichiers de projets sur le serveur sans programme de transfert FTP ou SFTP. Comme tout autre module CallWeb, cwdocs est une application entièrement Web qui ne requiert aucune installation locale.

Avec ce module, les usagers peuvent créer, effacer, copier, renommer et déplacer des répertoires. Il peuvent aussi téléverser, télécharger, effacer, copier, renommer et déplacer des fichiers. (À venir: l'effacement vers une corbeille.)

Les considérations de sécurité étaient omniprésentes lors de l'écriture de ce module. Les utilisateurs sont emprisonnés dans l'instance. Si cwdocs est appelé d'un répertoire autre que le répertoire utilitaire maître, les utilisateurs sont emprisonnés dans ce répertoire. Les utilisateurs ne voient que les fichiers qui peuvent raisonnablement être gérés depuis une application Web. Ils ne peuvent pas changer les permissions des fichiers et des répertoires.

cwdocs ne peut modifier ou effacer que les répertoires et les fichiers qui sont accessibles à l'utilisateur sous lequel le serveur Web fonctionne. En conséquence, il est possible que les utilisateurs de cwdocs ne pourront pas, par exemple, effacer des fichiers et répertoires qui auraient été créés par d'autres utilisateurs Linux. C'est le coût de la sécurité.

Quand un usager crée un répertoire dans la racine de l'instance de CallWeb, l'accès à ce répertoire est ajouté aux permissions de l'usager en question. Cependant, cette permission d'accès n'est pas révoquée dans l'éventualité où ce répertoire serait effacé; elle le serait si un super-utilisateur resauvegardait les permissions de l'usager dans le module de gestion des permissions.

Vous accéderez à cwdocs à partir d'un nouvel icône placé dans le coin supérieur droit du module intégré.

Gestion

Gestion des fichiers

Le module cwdocs de CallWeb permet de gérer vos fichiers de projets sur le serveur sans programme de transfert FTP ou SFTP. Comme tout autre module CallWeb, cwdocs est une application entièrement Web qui ne requiert aucune installation locale.

Avec ce module, les usagers peuvent créer, effacer, copier, renommer et déplacer des répertoires. Il peuvent aussi téléverser, télécharger, effacer, copier, renommer et déplacer des fichiers. (À venir: l'effacement vers une corbeille.)

Les considérations de sécurité étaient omniprésentes lors de l'écriture de ce module. Les utilisateurs sont emprisonnés dans l'instance. Si cwdocs est appelé d'un répertoire autre que le répertoire utilitaire maître, les utilisateurs sont emprisonnés dans ce répertoire. Les utilisateurs ne voient que les fichiers qui peuvent raisonnablement être gérés depuis une application Web. Ils ne peuvent pas changer les permissions des fichiers et des répertoires.

cwdocs ne peut modifier ou effacer que les répertoires et les fichiers qui sont accessibles à l'utilisateur sous lequel le serveur Web fonctionne. En conséquence, il est possible que les utilisateurs de cwdocs ne pourront pas, par exemple, effacer des fichiers et répertoires qui auraient été créés par d'autres utilisateurs Linux. C'est le coût de la sécurité.

Quand un usager crée un répertoire dans la racine de l'instance de CallWeb, l'accès à ce répertoire est ajouté aux permissions de l'usager en question. Cependant, cette permission d'accès n'est pas révoquée dans l'éventualité où ce répertoire serait effacé; elle le serait si un super-utilisateur resauvegardait les permissions de l'usager dans le module de gestion des permissions.

Vous accéderez à cwdocs à partir d'un nouvel icône placé dans le coin supérieur droit du module intégré.

   

Gestion

Gestion des quotas

CallWeb supporte des quotas de questionnaires complétés sur la base de stratifications à une seule caractéristique (p.ex., le sexe) ou à plusieurs caractéristiques (p.ex., le sexe dans des catégories d'âge) ou de stratifications additives (p.ex., un jeu de quotas sur le sexe et un autre jeu de quotes sur des catégories d'âge). L'appartenance à une strate peut être basée sur des données prépeuplées ou sur des données recueillies en cours de questionnaire ou sur une combinaison de ces deux sources. Les cibles des quotas peuvent être modifiées en tout temps au cours de la collecte de données. Quand un quota est rempli, les participants de cette strate sont redirigés à l'intérieur du questionnaire, ce qui offre au concepteur de questionnaire le contrôle total sur la gestion de cette situation.

Les strates et les quotas sont définis dans un type de question spécial : le type QUOTA. Une question est de type QUOTA si le mot-clef « QUOTA » apparaît sur la ligne du nom de la question dans le script. La syntaxe du texte de la question est comme suit (dans cette syntaxe, les virgules et les signes d'égalité sont significatifs) :

    Q1 QUOTA
    % texte de la question
    complete = nom de la variable indiquant qu'un cas est complété,
    skip = nom de la variable où se rendre quand un quota est complété,
    valeur = quota, valeur = quota, ...

Les ingrédients de cette définition de quotas sont comme suit :

  • complete = nom de la variable indiquant qu'un cas est complété.
    La question nommée ici est utilisée pour déterminer si un cas a été complété pour les fins du calcul des quotas; toute valeur plus grande que zéro dans le champ de la question Complete indique que le questionnaire est complété. Tant que la valeur de la question Complete est vide ou inférieure à 1, le dossier n'est pas utilisé dans le décompte du nombre de questionnaires complétés dans le quota. Cette variable peut être une question située vers la fin du questionnaire ou une valeur calculée spécifiquement pour cette fin. Si le champ Complete utilise la partie ouverte d'une question numérique, ne pas oublier d'y référer avec le préfixe « A ».
  • skip = nom de la variable où se rendre quand un quota est complété,
    Quand un quota est complété, le flot du questionnaire est modifié : le questionnaire se rend à la question indiquée par la valeur Skip. Cette question Skip peut être placée n'importe où dans le questionnaire. Habituellement, ce sera une question CULDESAC terminant le questionnaire, mais ce pourrait aussi être une question BLANK ou CALCUL qui pourrait agir comme drapeau pour contrôler le flot du questionnaire, ou toute autre structure valide dans un questionnaire CallWeb.
  • valeur de strate = cible de quota, ...
    La « valeur de strate » est le numéro de la strate (et la valeur de la variable QUOTA): la « cible de quota » est le nombre de questionnaires attendus dans cette strate. De plus, dans la version CATI de CallWeb, une variable fixe appelée PRESTRATE peut posséder une valeur numérique correspondant au nombre maximal de dossiers disponible aux interviewers. Cette second valeur est fournie de la même façon que la cible de quota (c.-à-d., valeur de strate = nombre maximal de dossiers).

L'appartenance à une strate est déterminée par la valeur stockée dans la variable QUOTA. Par exemple, si la variable de QUOTA contient un 4 dans un dossier particulier, ce dossier appartient au quota numéro 4. Les catégories de réponse des questions QUOTA peuvent être définies (et étiquetées), mais ce n'est pas obligatoire. Si elles sont définies, les étiquettes sont utilisées par les modules de rapports.

Un quota particulier est considéré complété quand le nombre de cas contenant une valeur plus grande que zéro dans la variable Complete est égal ou supérieur à la cible identifiée dans la question QUOTA pour cette strate.

Les questions QUOTA sont sujettes aux conditions d'affichage : le critère de quota peut être activé seulement si la condition d'affichage est vraie.

Plusieurs questions QUOTA peuvent être utilisées dans un questionnaire; elles sont utilisées si et quand le flot du questionnaire les rejoint. Donc, un premier jeu de quotas peut être imposé sur la base d'une première caractéristique tôt dans le questionnaire, ou basé sur des données prépeuplées, et un second jeu de quotas pourrait être activé plus tard, peut-être sur la base de données recueillies en cours d'entrevue ou de données calculées.

Les contraintes suivantes s'appliquent aux questions QUOTA :

  • si la variable de QUOTA est vide ou a une valeur qui ne fait pas partie de la liste des quotas, les quotas ne sont pas pris en compte et le questionnaire continue;
  • une question QUOTA devrait toujours être placée avant la variable de cas complété dans le questionnaire; autrement, des questionnaires partiels pourraient être considérés complets par erreur (à moins que la question QUOTA ne soit située vers la fin du questionnaire, ce qui jetterait un doute sur son utilité);
  • puisque les questions QUOTA impliquent un saut, elles ne peuvent être placées dans une page comportant plusieurs questions; elles doivent être placées entre les pages de ce genre;
  • l'appartenance à une strate et le nombre de questionnaires complétés dans un quota sont vérifiés seulement lorsque le flot du questionnaire rejoint et active la question QUOTA;
  • la question QUOTA n'est jamais affichée à l'écran; c'est une question administrative; ses valeurs doivent provenir de données prépeuplées ou d'un calcul;
  • il peut y avoir un nombre illimité de strates dans un questionnaire.

Gestion

Gestion des quotas

CallWeb supporte des quotas de questionnaires complétés sur la base de stratifications à une seule caractéristique (p.ex., le sexe) ou à plusieurs caractéristiques (p.ex., le sexe dans des catégories d'âge) ou de stratifications additives (p.ex., un jeu de quotas sur le sexe et un autre jeu de quotes sur des catégories d'âge). L'appartenance à une strate peut être basée sur des données prépeuplées ou sur des données recueillies en cours de questionnaire ou sur une combinaison de ces deux sources. Les cibles des quotas peuvent être modifiées en tout temps au cours de la collecte de données. Quand un quota est rempli, les participants de cette strate sont redirigés à l'intérieur du questionnaire, ce qui offre au concepteur de questionnaire le contrôle total sur la gestion de cette situation.

Les strates et les quotas sont définis dans un type de question spécial : le type QUOTA. Une question est de type QUOTA si le mot-clef « QUOTA » apparaît sur la ligne du nom de la question dans le script. La syntaxe du texte de la question est comme suit (dans cette syntaxe, les virgules et les signes d'égalité sont significatifs) :

    Q1 QUOTA
    % texte de la question
    complete = nom de la variable indiquant qu'un cas est complété,
    skip = nom de la variable où se rendre quand un quota est complété,
    valeur = quota, valeur = quota, ...

Les ingrédients de cette définition de quotas sont comme suit :

  • complete = nom de la variable indiquant qu'un cas est complété.
    La question nommée ici est utilisée pour déterminer si un cas a été complété pour les fins du calcul des quotas; toute valeur plus grande que zéro dans le champ de la question Complete indique que le questionnaire est complété. Tant que la valeur de la question Complete est vide ou inférieure à 1, le dossier n'est pas utilisé dans le décompte du nombre de questionnaires complétés dans le quota. Cette variable peut être une question située vers la fin du questionnaire ou une valeur calculée spécifiquement pour cette fin. Si le champ Complete utilise la partie ouverte d'une question numérique, ne pas oublier d'y référer avec le préfixe « A ».
  • skip = nom de la variable où se rendre quand un quota est complété,
    Quand un quota est complété, le flot du questionnaire est modifié : le questionnaire se rend à la question indiquée par la valeur Skip. Cette question Skip peut être placée n'importe où dans le questionnaire. Habituellement, ce sera une question CULDESAC terminant le questionnaire, mais ce pourrait aussi être une question BLANK ou CALCUL qui pourrait agir comme drapeau pour contrôler le flot du questionnaire, ou toute autre structure valide dans un questionnaire CallWeb.
  • valeur de strate = cible de quota, ...
    La « valeur de strate » est le numéro de la strate (et la valeur de la variable QUOTA): la « cible de quota » est le nombre de questionnaires attendus dans cette strate. De plus, dans la version CATI de CallWeb, une variable fixe appelée PRESTRATE peut posséder une valeur numérique correspondant au nombre maximal de dossiers disponible aux interviewers. Cette second valeur est fournie de la même façon que la cible de quota (c.-à-d., valeur de strate = nombre maximal de dossiers).

L'appartenance à une strate est déterminée par la valeur stockée dans la variable QUOTA. Par exemple, si la variable de QUOTA contient un 4 dans un dossier particulier, ce dossier appartient au quota numéro 4. Les catégories de réponse des questions QUOTA peuvent être définies (et étiquetées), mais ce n'est pas obligatoire. Si elles sont définies, les étiquettes sont utilisées par les modules de rapports.

Un quota particulier est considéré complété quand le nombre de cas contenant une valeur plus grande que zéro dans la variable Complete est égal ou supérieur à la cible identifiée dans la question QUOTA pour cette strate.

Les questions QUOTA sont sujettes aux conditions d'affichage : le critère de quota peut être activé seulement si la condition d'affichage est vraie.

Plusieurs questions QUOTA peuvent être utilisées dans un questionnaire; elles sont utilisées si et quand le flot du questionnaire les rejoint. Donc, un premier jeu de quotas peut être imposé sur la base d'une première caractéristique tôt dans le questionnaire, ou basé sur des données prépeuplées, et un second jeu de quotas pourrait être activé plus tard, peut-être sur la base de données recueillies en cours d'entrevue ou de données calculées.

Les contraintes suivantes s'appliquent aux questions QUOTA :

  • si la variable de QUOTA est vide ou a une valeur qui ne fait pas partie de la liste des quotas, les quotas ne sont pas pris en compte et le questionnaire continue;
  • une question QUOTA devrait toujours être placée avant la variable de cas complété dans le questionnaire; autrement, des questionnaires partiels pourraient être considérés complets par erreur (à moins que la question QUOTA ne soit située vers la fin du questionnaire, ce qui jetterait un doute sur son utilité);
  • puisque les questions QUOTA impliquent un saut, elles ne peuvent être placées dans une page comportant plusieurs questions; elles doivent être placées entre les pages de ce genre;
  • l'appartenance à une strate et le nombre de questionnaires complétés dans un quota sont vérifiés seulement lorsque le flot du questionnaire rejoint et active la question QUOTA;
  • la question QUOTA n'est jamais affichée à l'écran; c'est une question administrative; ses valeurs doivent provenir de données prépeuplées ou d'un calcul;
  • il peut y avoir un nombre illimité de strates dans un questionnaire.

   

Gestion

Invitations par courriel

Le module cwemail permet d'envoyer des invitations et des messages de rappel par courriel. Il utilise une question comme gabarit; celle-ci peut inclure des rappels de valeurs enregistrées dans la base de données (probablement par prépeuplement). Ce module offre des outils permettant la sélection de sous-ensembles de dossiers selon n'importe quelle donnée de la base de données ou selon des plages de positions dans la base de données. Il est donc possible, par exemple, d'envoyer une invitation initiale à tous les participants, dans leur langue préférée, en incluant un code d'accès personnalisé, et de faire suite une semaine plus tard auprès des participants qui n'ont pas encore commencé le questionnaire en incluant un message motivationnel qui pourrait être différent de celui qui serait adressé aux personnes qui ont commencé mais non complété le questionnaire.

L'envoi de courriels est basé sur une variable spéciale contenant le titre du message et le texte du message à envoyer. Les règles suivantes s'appliquent :

  • le type de question EMAIL doit être mentionné sur la ligne du nom de la question;
  • les questions EMAIL n'utilisent pas les codes de langues; si des messages doivent être envoyés dans des langues particulières, créez autant de questions EMAIL qu'il y a de langues et sélectionnez les dossiers selon un indicateur prépeuplé de langue;
  • le segment du texte de la question contient le texte du sujet du message;
  • le segment de la note contient le texte du corps du message;
    • un paragraphe est terminé par un code <P> alors que de simples retours à la ligne sont insérés avec le code <BR>;
    • cwemail met le message en forme en créant des lignes d'au plus 65 caractères tout en respectant les paragraphes et les retours à la ligne;
    • une version HTML du message peut être insérée entre deux bornes <HTML> et </HTML>; le codage HTML doit être approprié et complet — CallWeb ne le valide pas. Il est recommandé de toujours inclure une version texte simple du message en sus d'une version HTML (lorsqu'elle est utilisée) pour assurer de se conformer à tous les logiciels de lecture de courriel.
  • le texte du titre ou du corps (simple ou HTML) du message peuvent contenir des rappels de valeurs dans la base de données; ces rappels utilisent la syntaxe de rappel CallWeb. De plus, des variables systèmes comme _telkey (le numéro de dossier permettant d'accéder à un dossier unique) peuvent être rappelées en utilisant la syntaxe suivante : {$nom_de_variable}, p.ex., {$_telkey}.
  • le texte du message peut inclure une instruction d'annexer un fichier au message; pour ce faire :
    • ajouter une instruction comme celle-ci n'importe où dans le texte du message :
      [attach = répertoire/nom_du_fichier] ou [annexer = répertoire/nom_du_fichier]
    • le nom du fichier doit être précédé du nom du répertoire dans lequel il se trouve; par exemple, si le fichier « abc.pdf » est dans le répertoire « cwprojet », la syntaxe appropriée est
      [annexer = cwprojet/abc.pdf]
    • on peut annexer plusieurs fichiers en séparant leur nom par des virgules comme dans
      [annexer = répertoire/fichier1, répertoire/fichier2]
    • lorsqu'un fichier est annexé à un message, le message doit contenir une portion HTML en plus de la portion texte-simple habituelle; une portion HTML est créée à partir de la portion simple si aucune n'existe.
  • le texte du message peut contenir une instruction de suivi de la date et de l'heure d'ouverture du message par le récipiendaire; pour ce faire, ajouter [track = QUELQUE_PARTIE_OUVERTE] au message. La date et l'heure de l'ouverture du message sera enregistrée dans la partie ouverte du _telkey approprié.

Les informations suivantes sont nécessaires à l'envoi de messages par courriel :

  • une partie ouverte contenant l'adresse de courriel de chaque participant;
  • une partie ouverte disponible pour enregistrer la date et l'heure de l'envoi; dans cette partie ouverte, on peut retrouver les codes suivants :
    • -1 + dateheure de la tentative : le message n'a pas pu être envoyé à l'intérieur du délai prescrit;
    • -2 + dateheure de la tentative : le nom de domaine de l'adresse de courriel n'est pas accessible;
    • -8 + dateheure de la tentative : le champ de l'adresse de courriel est vide;
    • -99 : le système est en train d'envoyer un courriel à ce dossier ou la procédure a été interrompue pendant l'envoi à ce dossier.
  • une adresse de courriel pour l'envoyeur du message;
  • le mot de passe en écriture pour le projet puisque la date et l'heure de l'envoi doivent être insérés dans la base de données;
  • une question gabarit pour le message.

Interactivement, il est possible de simuler l'envoi de courriels : les messages sont affichés à l'écran mais ils ne sont ni envoyés, ni enregistrés dans la base de données.

Gestions des messages en rebond

Grâce à l'instruction # Send bounces to, les messages en rebond peuvent être envoyés à une adresse au choix du concepteur ou au module cwbounces.pl qui inscrit ces rebonds dans la base de données CallWeb. Pour activer cwbounces.pl, suivez les instructions suivantes :

  • le format de l'adresse de destination des rebonds doit être « bounces.*@domain.xxx »; CallWeb modifie ensuite cette adresse pour se conformer à ses besoins;
  • l'instruction # Check bounces against est une liste (délimitée par des virgules) de noms de questions qui contiennent des adresses de courriel contre lesquelles vérifier les adresses provoquant des rebonds;
  • l'instruction # Save bounces into est aussi une liste (délimitée par des virgules) de noms de questions qui recevront la date et l'heure du rebond (ce sont des parties ouvertes textes); il doit y avoir autant de noms de questions dans cette liste que dans la liste # Check bounces against;
  • veuilllez noter que ce système ne fonctionne que si le nom du projet n'utilise que des caractères minuscules à cause des limites de la syntaxe des adresses de courriel. Notez aussi qu'aucun des noms de répertoires dans le chemin complet du répertoire de projet ne peut contenir un tiret.
  • le module cwbounces.pl doit être convenablement installé.

Livraison automatique de messages par courriel

Utilisant les paramètres des instructions # Auto email, CallWeb peut balayer les données d'un projet sur une base régulière (par exemple, toutes les heures) pour identifier les dossiers qui correspondent à une certaine condition et pour leur envoyer un message. La mise en page du message lui-même et l'utilisation des rappels suivent les règles présentées plus haut. La syntaxe générale de cette instruction est la suivante (note : les signes d'égalité et les virgules sont des délimiteurs; utilisez-les comme décrit dans l'exemple) :

    # Auto email xxx = (xxx peut être toute chaîne de caractères unique parmi les instructions AUTOEMAIL)
    #>     active = (oui ou non, selon que l'instruction est présentement active ou non; oui par défaut),
    #>     selection = [ (expression MySQL identifiant les dossiers auxquels envoyer un message; elle doit être entre crochets) ],
    #>     email = (nom de la question de type EMAIL dans le questionnaire qui sert de gabarit au message),
    #>     from = (adresse de courriel affichée comme envoyant le message),
    #>     sender = (adresse de courriel envoyant effectivement le message),
    #>     to = (nom de la partie ouverte contenant l'adresse de courriel des destinataires),
    #>     cc = (nom d'une partie ouverte contenant l'adresse de copie conforme [optionnel]),
    #>     reportto = (adresse de courriel qui reçoit les rapports; a priorité sur l'option d'installation administrator_email),
    #>     bounces = (adresse de courriel qui reçoit les rebonds; le type d'adresse permettant l'interception des rebonds par cwbounces.pl (discuté plus haut) peut être utilisé),
    #>     store = (nom de la partie ouverte où la date et l'heure de l'envoi sont placées),
    #>     max = (nombre maximum de messages à envoyer au cours d'une itération; cette valeur peut être utilisée pour éviter la surcharge du serveur d'envoi de messages),
    #>     delay = (secondes de délai avant d'envoyer un second message au même domaine; la valeur par défaut est 120 secondes),
    #>     unsubscribe = (URL pour accéder au système de désinscription du questionnaire; voir la recette)

Voici un exemple réel :

    # Auto email 001 =
    #>     active = oui,
    #>     selection = [ ADATE > 20050101 AND NOT AINVITATION > 0 ],
    #>     email = INVITATION,
    #>     from = info@callweb.ca,
    #>     to = AEMAILADDRESS,
    #>     cc = ACCADDRESS,
    #>     bounces = bounces.*@callweb.ca,
    #>     store = AINVITATION,
    #>     max = 1000,
    #>     delay = 120,
    #>     unsubscribe = http://circum.com/callweb/callweb.cgi?en:{$contexte{projet}}:{$_telkey}:UNSUB

Un projet CallWeb particulier peut contenir plusieurs instructions d'envoi automatique (assurez-vous que chacune vise des dossiers différents) pour envoyer des messages spécifiques visant des situations différentes (qui sont identifiées par l'énoncé de sélection des dossiers).

Des capacités limités de substitution existent dans le cas de la clause « selection » — utilisant essentiellement les données de contexte. Par exemple, pour déclencher un message le 1er janvier 2009, la condition suivante pourrait être utilisée :

    #>     selection = [ {$contexte{date}} > 20090101 ],

Gestion

Invitations par courriel

Le module cwemail permet d'envoyer des invitations et des messages de rappel par courriel. Il utilise une question comme gabarit; celle-ci peut inclure des rappels de valeurs enregistrées dans la base de données (probablement par prépeuplement). Ce module offre des outils permettant la sélection de sous-ensembles de dossiers selon n'importe quelle donnée de la base de données ou selon des plages de positions dans la base de données. Il est donc possible, par exemple, d'envoyer une invitation initiale à tous les participants, dans leur langue préférée, en incluant un code d'accès personnalisé, et de faire suite une semaine plus tard auprès des participants qui n'ont pas encore commencé le questionnaire en incluant un message motivationnel qui pourrait être différent de celui qui serait adressé aux personnes qui ont commencé mais non complété le questionnaire.

L'envoi de courriels est basé sur une variable spéciale contenant le titre du message et le texte du message à envoyer. Les règles suivantes s'appliquent :

  • le type de question EMAIL doit être mentionné sur la ligne du nom de la question;
  • les questions EMAIL n'utilisent pas les codes de langues; si des messages doivent être envoyés dans des langues particulières, créez autant de questions EMAIL qu'il y a de langues et sélectionnez les dossiers selon un indicateur prépeuplé de langue;
  • le segment du texte de la question contient le texte du sujet du message;
  • le segment de la note contient le texte du corps du message;
    • un paragraphe est terminé par un code <P> alors que de simples retours à la ligne sont insérés avec le code <BR>;
    • cwemail met le message en forme en créant des lignes d'au plus 65 caractères tout en respectant les paragraphes et les retours à la ligne;
    • une version HTML du message peut être insérée entre deux bornes <HTML> et </HTML>; le codage HTML doit être approprié et complet — CallWeb ne le valide pas. Il est recommandé de toujours inclure une version texte simple du message en sus d'une version HTML (lorsqu'elle est utilisée) pour assurer de se conformer à tous les logiciels de lecture de courriel.
  • le texte du titre ou du corps (simple ou HTML) du message peuvent contenir des rappels de valeurs dans la base de données; ces rappels utilisent la syntaxe de rappel CallWeb. De plus, des variables systèmes comme _telkey (le numéro de dossier permettant d'accéder à un dossier unique) peuvent être rappelées en utilisant la syntaxe suivante : {$nom_de_variable}, p.ex., {$_telkey}.
  • le texte du message peut inclure une instruction d'annexer un fichier au message; pour ce faire :
    • ajouter une instruction comme celle-ci n'importe où dans le texte du message :
      [attach = répertoire/nom_du_fichier] ou [annexer = répertoire/nom_du_fichier]
    • le nom du fichier doit être précédé du nom du répertoire dans lequel il se trouve; par exemple, si le fichier « abc.pdf » est dans le répertoire « cwprojet », la syntaxe appropriée est
      [annexer = cwprojet/abc.pdf]
    • on peut annexer plusieurs fichiers en séparant leur nom par des virgules comme dans
      [annexer = répertoire/fichier1, répertoire/fichier2]
    • lorsqu'un fichier est annexé à un message, le message doit contenir une portion HTML en plus de la portion texte-simple habituelle; une portion HTML est créée à partir de la portion simple si aucune n'existe.
  • le texte du message peut contenir une instruction de suivi de la date et de l'heure d'ouverture du message par le récipiendaire; pour ce faire, ajouter [track = QUELQUE_PARTIE_OUVERTE] au message. La date et l'heure de l'ouverture du message sera enregistrée dans la partie ouverte du _telkey approprié.

Les informations suivantes sont nécessaires à l'envoi de messages par courriel :

  • une partie ouverte contenant l'adresse de courriel de chaque participant;
  • une partie ouverte disponible pour enregistrer la date et l'heure de l'envoi; dans cette partie ouverte, on peut retrouver les codes suivants :
    • -1 + dateheure de la tentative : le message n'a pas pu être envoyé à l'intérieur du délai prescrit;
    • -2 + dateheure de la tentative : le nom de domaine de l'adresse de courriel n'est pas accessible;
    • -8 + dateheure de la tentative : le champ de l'adresse de courriel est vide;
    • -99 : le système est en train d'envoyer un courriel à ce dossier ou la procédure a été interrompue pendant l'envoi à ce dossier.
  • une adresse de courriel pour l'envoyeur du message;
  • le mot de passe en écriture pour le projet puisque la date et l'heure de l'envoi doivent être insérés dans la base de données;
  • une question gabarit pour le message.

Interactivement, il est possible de simuler l'envoi de courriels : les messages sont affichés à l'écran mais ils ne sont ni envoyés, ni enregistrés dans la base de données.

Gestions des messages en rebond

Grâce à l'instruction # Send bounces to, les messages en rebond peuvent être envoyés à une adresse au choix du concepteur ou au module cwbounces.pl qui inscrit ces rebonds dans la base de données CallWeb. Pour activer cwbounces.pl, suivez les instructions suivantes :

  • le format de l'adresse de destination des rebonds doit être « bounces.*@domain.xxx »; CallWeb modifie ensuite cette adresse pour se conformer à ses besoins;
  • l'instruction # Check bounces against est une liste (délimitée par des virgules) de noms de questions qui contiennent des adresses de courriel contre lesquelles vérifier les adresses provoquant des rebonds;
  • l'instruction # Save bounces into est aussi une liste (délimitée par des virgules) de noms de questions qui recevront la date et l'heure du rebond (ce sont des parties ouvertes textes); il doit y avoir autant de noms de questions dans cette liste que dans la liste # Check bounces against;
  • veuilllez noter que ce système ne fonctionne que si le nom du projet n'utilise que des caractères minuscules à cause des limites de la syntaxe des adresses de courriel. Notez aussi qu'aucun des noms de répertoires dans le chemin complet du répertoire de projet ne peut contenir un tiret.
  • le module cwbounces.pl doit être convenablement installé.

Livraison automatique de messages par courriel

Utilisant les paramètres des instructions # Auto email, CallWeb peut balayer les données d'un projet sur une base régulière (par exemple, toutes les heures) pour identifier les dossiers qui correspondent à une certaine condition et pour leur envoyer un message. La mise en page du message lui-même et l'utilisation des rappels suivent les règles présentées plus haut. La syntaxe générale de cette instruction est la suivante (note : les signes d'égalité et les virgules sont des délimiteurs; utilisez-les comme décrit dans l'exemple) :

    # Auto email xxx = (xxx peut être toute chaîne de caractères unique parmi les instructions AUTOEMAIL)
    #>     active = (oui ou non, selon que l'instruction est présentement active ou non; oui par défaut),
    #>     selection = [ (expression MySQL identifiant les dossiers auxquels envoyer un message; elle doit être entre crochets) ],
    #>     email = (nom de la question de type EMAIL dans le questionnaire qui sert de gabarit au message),
    #>     from = (adresse de courriel affichée comme envoyant le message),
    #>     sender = (adresse de courriel envoyant effectivement le message),
    #>     to = (nom de la partie ouverte contenant l'adresse de courriel des destinataires),
    #>     cc = (nom d'une partie ouverte contenant l'adresse de copie conforme [optionnel]),
    #>     reportto = (adresse de courriel qui reçoit les rapports; a priorité sur l'option d'installation administrator_email),
    #>     bounces = (adresse de courriel qui reçoit les rebonds; le type d'adresse permettant l'interception des rebonds par cwbounces.pl (discuté plus haut) peut être utilisé),
    #>     store = (nom de la partie ouverte où la date et l'heure de l'envoi sont placées),
    #>     max = (nombre maximum de messages à envoyer au cours d'une itération; cette valeur peut être utilisée pour éviter la surcharge du serveur d'envoi de messages),
    #>     delay = (secondes de délai avant d'envoyer un second message au même domaine; la valeur par défaut est 120 secondes),
    #>     unsubscribe = (URL pour accéder au système de désinscription du questionnaire; voir la recette)

Voici un exemple réel :

    # Auto email 001 =
    #>     active = oui,
    #>     selection = [ ADATE > 20050101 AND NOT AINVITATION > 0 ],
    #>     email = INVITATION,
    #>     from = info@callweb.ca,
    #>     to = AEMAILADDRESS,
    #>     cc = ACCADDRESS,
    #>     bounces = bounces.*@callweb.ca,
    #>     store = AINVITATION,
    #>     max = 1000,
    #>     delay = 120,
    #>     unsubscribe = http://circum.com/callweb/callweb.cgi?en:{$contexte{projet}}:{$_telkey}:UNSUB

Un projet CallWeb particulier peut contenir plusieurs instructions d'envoi automatique (assurez-vous que chacune vise des dossiers différents) pour envoyer des messages spécifiques visant des situations différentes (qui sont identifiées par l'énoncé de sélection des dossiers).

Des capacités limités de substitution existent dans le cas de la clause « selection » — utilisant essentiellement les données de contexte. Par exemple, pour déclencher un message le 1er janvier 2009, la condition suivante pourrait être utilisée :

    #>     selection = [ {$contexte{date}} > 20090101 ],

   

Gestion

Administration du questionnaire

Une fois le questionnaire compilé — et les données prépeuplées si nécessaire — des participants potentiels peuvent être invités à répondre au questionnaire. Il y a plusieurs façons d'accéder à un questionnaire. Quelques-unes sont présentées ici.

La méthode la plus transparente pour accéder à un questionnaire CallWeb est par une instruction Web comme la suivante; elle s'applique à un questionnaire totalement ouvert et à un questionnaire où les participants doivent saisir leur code d'accès :

    http://ici.com/callweb.cgi?_proj=projet&_lang=LA

  • « projet » est le nom du questionnaire;
  • « LA » est la langue dans laquelle accéder à CallWeb; si la langue n'est pas fournie, la langue par défaut du questionnaire est utilisée.

Si un code d'accès est nécessaire pour ouvrir le questionnaire (voir l'instruction dièse # Type enquete), l'instruction précédente peut être utilisée (et le système demandera de saisir le code d'accès) ou alors l'instruction peut intégrer le code lui-même, comme suit :

    http://ici.com/callweb.cgi?_proj=projet&_telkey=code

  • « projet » est le nom du questionnaire;
  • « code » est le code d'accès;
  • le paramètre _lang=LA peut être ajouté à cet appel; en son absence, la langue par défaut du questionnaire est utilisée.

Si le questionnaire doit débuter ailleurs qu'à la première question (pour un questionnaire vide) ou qu'à la dernière question vue (pour un retour dans un questionnaire déjà ouvert), l'URL peut contenir un point d'entrée spécifique, comme suit :

    http://ici.com/callweb.cgi?_proj=projet&_telkey=code&_debute=QUESTION

  • « projet » est le nom du questionnaire;
  • « code » est le code d'accès;
  • « QUESTION » est le nom de la question qui sera le point d'entrée dans le script. Le code _AUDEBUT_ peut être utilisé pour forcer le questionnaire à recommencer à la première question.

Une annexe à cette documentation documente toutes les options d'URL disponibles à l'appel d'un questionnaire.

L'instruction pour accéder à CallWeb peut être camouflée dans une page statique (en utilisant un formulaire ou un hyperlien ou une redirection comme go.97.ca ou un script Web sur mesure).

Syntaxe d'URL extrêmement courte

CallWeb offre aussi une syntaxe d'URL extrêmement courte qui aide à ce que les liens ne soient pas découpés en deux ou plusieurs lignes dans des messages d'invitation. La syntaxe est comme suit :

    callweb.cgi?langue:projet:telkey:question_initiale

comme dans

    callweb.cgi?FR:demo:11111:Q21

ou

    callweb.cgi?FR:demo

si aucun code d'accès n'est requis et que le questionnaire débute à la première question ou à la dernière question vue.

En fait, même le paramètre de langue est optionnel; en son absence, la langue par défaut définie dans le script de questionnaire est utilisée. Notez que CallWeb utilise, comme paramètre de langue, la première valeur contenant deux (et seulement deux) lettres (de sorte que, si le nom du projet ou le _telkey ou la question _debute est un code à deux lettres, le paramètre de langue doit être précisé et doit venir avant l'autre code à deux lettres). Les autres paramètres doivent être spécifiés dans l'ordre défini ci-haut.

En autant que le serveur Web soit configuré pour ce faire, il est aussi possible de ne pas faire référence au module CallWeb (en termes familiers aux utilisateurs d'Apache, en faisant de callweb.cgi une entrée de DirectoryIndex) et de créer des liens aussi courts que :

    http://ici.com?demo

Gestion

Administration du questionnaire

Une fois le questionnaire compilé — et les données prépeuplées si nécessaire — des participants potentiels peuvent être invités à répondre au questionnaire. Il y a plusieurs façons d'accéder à un questionnaire. Quelques-unes sont présentées ici.

La méthode la plus transparente pour accéder à un questionnaire CallWeb est par une instruction Web comme la suivante; elle s'applique à un questionnaire totalement ouvert et à un questionnaire où les participants doivent saisir leur code d'accès :

    http://ici.com/callweb.cgi?_proj=projet&_lang=LA

  • « projet » est le nom du questionnaire;
  • « LA » est la langue dans laquelle accéder à CallWeb; si la langue n'est pas fournie, la langue par défaut du questionnaire est utilisée.

Si un code d'accès est nécessaire pour ouvrir le questionnaire (voir l'instruction dièse # Type enquete), l'instruction précédente peut être utilisée (et le système demandera de saisir le code d'accès) ou alors l'instruction peut intégrer le code lui-même, comme suit :

    http://ici.com/callweb.cgi?_proj=projet&_telkey=code

  • « projet » est le nom du questionnaire;
  • « code » est le code d'accès;
  • le paramètre _lang=LA peut être ajouté à cet appel; en son absence, la langue par défaut du questionnaire est utilisée.

Si le questionnaire doit débuter ailleurs qu'à la première question (pour un questionnaire vide) ou qu'à la dernière question vue (pour un retour dans un questionnaire déjà ouvert), l'URL peut contenir un point d'entrée spécifique, comme suit :

    http://ici.com/callweb.cgi?_proj=projet&_telkey=code&_debute=QUESTION

  • « projet » est le nom du questionnaire;
  • « code » est le code d'accès;
  • « QUESTION » est le nom de la question qui sera le point d'entrée dans le script. Le code _AUDEBUT_ peut être utilisé pour forcer le questionnaire à recommencer à la première question.

Une annexe à cette documentation documente toutes les options d'URL disponibles à l'appel d'un questionnaire.

L'instruction pour accéder à CallWeb peut être camouflée dans une page statique (en utilisant un formulaire ou un hyperlien ou une redirection comme go.97.ca ou un script Web sur mesure).

Syntaxe d'URL extrêmement courte

CallWeb offre aussi une syntaxe d'URL extrêmement courte qui aide à ce que les liens ne soient pas découpés en deux ou plusieurs lignes dans des messages d'invitation. La syntaxe est comme suit :

    callweb.cgi?langue:projet:telkey:question_initiale

comme dans

    callweb.cgi?FR:demo:11111:Q21

ou

    callweb.cgi?FR:demo

si aucun code d'accès n'est requis et que le questionnaire débute à la première question ou à la dernière question vue.

En fait, même le paramètre de langue est optionnel; en son absence, la langue par défaut définie dans le script de questionnaire est utilisée. Notez que CallWeb utilise, comme paramètre de langue, la première valeur contenant deux (et seulement deux) lettres (de sorte que, si le nom du projet ou le _telkey ou la question _debute est un code à deux lettres, le paramètre de langue doit être précisé et doit venir avant l'autre code à deux lettres). Les autres paramètres doivent être spécifiés dans l'ordre défini ci-haut.

En autant que le serveur Web soit configuré pour ce faire, il est aussi possible de ne pas faire référence au module CallWeb (en termes familiers aux utilisateurs d'Apache, en faisant de callweb.cgi une entrée de DirectoryIndex) et de créer des liens aussi courts que :

    http://ici.com?demo

   

Field management

Modifications à un projet

N'importe quelle modification peut être faite à un questionnaire durant la gestion d'un projet, sans interrompre la collecte de données. Bien sûr, ajouter une question ne fera pas apparaître des réponses dans les questionnaires complétés, mais le système peut se regénérer pour tenir compte des modifications et conserver les données recueillies préalablement.

Une simple compilation est suffisante pour effectuer les changements au questionnaire :

  • si les changements n'ajoutent pas de question, n'en effacent pas, n'en renomment pas et n'en déplacent pas;
  • si les changements n'ajoutent pas ou ne retranchent pas de parties ouvertes;
  • si les changements ne transforment pas une question à réponse multiple en réponse simple ou vice versa.

La procédure de compilation mentionne la nécessité d'un changement structurel si un tel changement est requis. Dans ce cas, le changement ne sera effectué que si la case « changement structurel » est cochée dans le module intégré; autrement, la compilation se terminera sur un message d'erreur et aucun changement ne sera apporté au questionnaire ou à la base de données.

Field management

Modifications à un projet

N'importe quelle modification peut être faite à un questionnaire durant la gestion d'un projet, sans interrompre la collecte de données. Bien sûr, ajouter une question ne fera pas apparaître des réponses dans les questionnaires complétés, mais le système peut se regénérer pour tenir compte des modifications et conserver les données recueillies préalablement.

Une simple compilation est suffisante pour effectuer les changements au questionnaire :

  • si les changements n'ajoutent pas de question, n'en effacent pas, n'en renomment pas et n'en déplacent pas;
  • si les changements n'ajoutent pas ou ne retranchent pas de parties ouvertes;
  • si les changements ne transforment pas une question à réponse multiple en réponse simple ou vice versa.

La procédure de compilation mentionne la nécessité d'un changement structurel si un tel changement est requis. Dans ce cas, le changement ne sera effectué que si la case « changement structurel » est cochée dans le module intégré; autrement, la compilation se terminera sur un message d'erreur et aucun changement ne sera apporté au questionnaire ou à la base de données.

   

Gestion

Gestion de dossiers

Il est parfois nécessaire d'accéder aux dossiers au cas par cas, que ce soit pour vérifier des réponses, les corriger ou coder des réponses ouvertes. CallWeb offre le module cwnav pour ce faire. L'appel de cwnav (pour Navigation) se fait depuis l'interface intégrée en choisissant un nom de projet dans la zone « Afficher des données ».

Le module cwnav affiche un menu de sélection de dossiers et de sélection de questions à afficher. Si les codes d'accès nécessaires sont fournis, l'interface offre deux méthodes pour effacer des dossiers, trois méthodes pour voir des dossiers individuels et trois méthodes pour éditer des dossiers.

Édition de masse

Le mode d'édition de masse est particulièrement important. Il est activé en en faisant la sélection dans le menu d'options. En mode d'édition de masse, tous les champs affichés de tous les dossiers affichés sont éditables directement, sous la forme d'une grille de données. Ce mode est particulièrement utile pour afficher des réponses ouvertes et une série de variables de codage de ces réponses pour faire l'analyse de leur contenu textuel.

En mode d'édition de masse, si _res (le plus récent résultat d'appel en CATI) est sélectionnée pour édition, une nouvelle ligne apparaît dans le menu. Elle offre la possibilité de changer toutes les valeurs existantes de _res à une nouvelle valeur, parmi les cas sélectionnés. Une liste déroulante des codes _res disponibles est offerte. Si un de ces codes est sélectionné, tous les dossiers appartenant à la sélection de dossiers effectuée et possédant une valeur _res sont modifiés pour adopter ce code.

Si une question à réponses multiples est éditée en mode d'édition de masse, ses différentes valeurs peuvent être séparées par des virgules ou des espaces. Sur réception, CallWeb édite ces données pour utiliser le délimiteur « μ ». Ceci est utile pour faire le codage de questions ouvertes.

Recalculer des questions CALCUL

Le module cwnav permet aussi de recalculer des questions CALCUL (c'est-à-dire, d'effectuer ou de réeffectuer un calcul) sur des dossiers existants. Après avoir fait la sélection des dossiers pertinents en utilisant les menus à cet effet, sélectionnez une question CALCUL depuis la liste déroulante appropriée dans l'interface du module cwnav (cette liste déroulante n'est disponible que si le mot de passe en écriture a déjà été fourni, dans la mesure où un tel mot de passe est défini) et cliquez sur le bouton Action!. Saisissez ensuite le mot-clef « UPDATE » (en majuscules) dans la nouvelle boîte de confirmation et cliquez sur Action! à nouveau.

Note technique : lors du recalcul de questions CALCUL avec le module cwnav, les variables systèmes (dont le nom commence par un trait souligné) faisant partie des données de dossiers (comme _prepops ou _h1) doivent être écrites en majuscules dans les CALCULs (ce qui n'est pas le cas lorsque les calculs sont faits dans le questionnaire). Pour les questions qu'on prévoit utiliser à la fois dans un questionnaire et dans cwnav, on peut utiliser à la fois les noms en minuscules et en majuscules et les relier par une barre « ou » comme dans $_prepops|$_PREPOPS. En Perl, ceci signifie « utiliser $_prepops si elle existe, autrement utiliser $_PREPOPS ».

Attribuer des valeurs sur la base d'expressions calculées

Le module cwnav inclut aussi la possibilité d'attribuer des valeurs à une variable sur la base d'une expression MySQL. Tous les champs de la base de données peuvent être attribués. Tout type d'attribution peut être faite en autant que la syntaxe soit légitime du point de vue de MySQL et en autant que le résultat de l'expression se conforme au type de champ sélectionné comme récepteur. Les règles suivantes s'appliquent :

  • seuls les dossiers appartenant aux critères de sélection (au haut du menu du module) sont affectées par l'attribution;
  • les deux paramètres qui précisent la portée de la sélection (« Traiter à partir de l'enregistrement no » et « Nombre de dossiers à afficher ») ne sont PAS utilisés dans cette opération;
  • une fois la variable cible sélectionnée (à la ligne « Modification utilisant MySQL ») et une expression MySQL saisie, et après avoir cliqué sur le bouton Action!, le système affiche l'expression demandée et demande confirmation utilisant un mot-clef; le mot-clef est « UPDATE » (en majuscules).
  • rappelez-vous que les champs normaux de la base de données (les parties fermées) sont enregistréss comme des champs alphanumériques de 16 octets; MySQL permet des opérations mathématiques sur de tels champs (qui sont convertis au numérique à la volée). Les parties ouvertes (dont le nom commence par « A ») sont des champs alphanumériques de 64 000 octets.

Par exemple, on peut attribuer à AQ2 une valeur qui est le double de AQ1 avec l'expression suivante : AQ1*2. Un autre exemple : cette même opération pourrait être faite seulement là où AQ2 est plus grand que 10 en faisant la sélection appropriée dans les options du menu.

Ce type de calcul devrait être réservé aux circonstances exceptionnelles puisque son contrôle est sous l'entière responsabilité de l'usager; aucune des procédures habituelles de validation de données de CallWeb ne s'appliquent.

Gestion

Gestion de dossiers

Il est parfois nécessaire d'accéder aux dossiers au cas par cas, que ce soit pour vérifier des réponses, les corriger ou coder des réponses ouvertes. CallWeb offre le module cwnav pour ce faire. L'appel de cwnav (pour Navigation) se fait depuis l'interface intégrée en choisissant un nom de projet dans la zone « Afficher des données ».

Le module cwnav affiche un menu de sélection de dossiers et de sélection de questions à afficher. Si les codes d'accès nécessaires sont fournis, l'interface offre deux méthodes pour effacer des dossiers, trois méthodes pour voir des dossiers individuels et trois méthodes pour éditer des dossiers.

Édition de masse

Le mode d'édition de masse est particulièrement important. Il est activé en en faisant la sélection dans le menu d'options. En mode d'édition de masse, tous les champs affichés de tous les dossiers affichés sont éditables directement, sous la forme d'une grille de données. Ce mode est particulièrement utile pour afficher des réponses ouvertes et une série de variables de codage de ces réponses pour faire l'analyse de leur contenu textuel.

En mode d'édition de masse, si _res (le plus récent résultat d'appel en CATI) est sélectionnée pour édition, une nouvelle ligne apparaît dans le menu. Elle offre la possibilité de changer toutes les valeurs existantes de _res à une nouvelle valeur, parmi les cas sélectionnés. Une liste déroulante des codes _res disponibles est offerte. Si un de ces codes est sélectionné, tous les dossiers appartenant à la sélection de dossiers effectuée et possédant une valeur _res sont modifiés pour adopter ce code.

Si une question à réponses multiples est éditée en mode d'édition de masse, ses différentes valeurs peuvent être séparées par des virgules ou des espaces. Sur réception, CallWeb édite ces données pour utiliser le délimiteur « μ ». Ceci est utile pour faire le codage de questions ouvertes.

Recalculer des questions CALCUL

Le module cwnav permet aussi de recalculer des questions CALCUL (c'est-à-dire, d'effectuer ou de réeffectuer un calcul) sur des dossiers existants. Après avoir fait la sélection des dossiers pertinents en utilisant les menus à cet effet, sélectionnez une question CALCUL depuis la liste déroulante appropriée dans l'interface du module cwnav (cette liste déroulante n'est disponible que si le mot de passe en écriture a déjà été fourni, dans la mesure où un tel mot de passe est défini) et cliquez sur le bouton Action!. Saisissez ensuite le mot-clef « UPDATE » (en majuscules) dans la nouvelle boîte de confirmation et cliquez sur Action! à nouveau.

Note technique : lors du recalcul de questions CALCUL avec le module cwnav, les variables systèmes (dont le nom commence par un trait souligné) faisant partie des données de dossiers (comme _prepops ou _h1) doivent être écrites en majuscules dans les CALCULs (ce qui n'est pas le cas lorsque les calculs sont faits dans le questionnaire). Pour les questions qu'on prévoit utiliser à la fois dans un questionnaire et dans cwnav, on peut utiliser à la fois les noms en minuscules et en majuscules et les relier par une barre « ou » comme dans $_prepops|$_PREPOPS. En Perl, ceci signifie « utiliser $_prepops si elle existe, autrement utiliser $_PREPOPS ».

Attribuer des valeurs sur la base d'expressions calculées

Le module cwnav inclut aussi la possibilité d'attribuer des valeurs à une variable sur la base d'une expression MySQL. Tous les champs de la base de données peuvent être attribués. Tout type d'attribution peut être faite en autant que la syntaxe soit légitime du point de vue de MySQL et en autant que le résultat de l'expression se conforme au type de champ sélectionné comme récepteur. Les règles suivantes s'appliquent :

  • seuls les dossiers appartenant aux critères de sélection (au haut du menu du module) sont affectées par l'attribution;
  • les deux paramètres qui précisent la portée de la sélection (« Traiter à partir de l'enregistrement no » et « Nombre de dossiers à afficher ») ne sont PAS utilisés dans cette opération;
  • une fois la variable cible sélectionnée (à la ligne « Modification utilisant MySQL ») et une expression MySQL saisie, et après avoir cliqué sur le bouton Action!, le système affiche l'expression demandée et demande confirmation utilisant un mot-clef; le mot-clef est « UPDATE » (en majuscules).
  • rappelez-vous que les champs normaux de la base de données (les parties fermées) sont enregistréss comme des champs alphanumériques de 16 octets; MySQL permet des opérations mathématiques sur de tels champs (qui sont convertis au numérique à la volée). Les parties ouvertes (dont le nom commence par « A ») sont des champs alphanumériques de 64 000 octets.

Par exemple, on peut attribuer à AQ2 une valeur qui est le double de AQ1 avec l'expression suivante : AQ1*2. Un autre exemple : cette même opération pourrait être faite seulement là où AQ2 est plus grand que 10 en faisant la sélection appropriée dans les options du menu.

Ce type de calcul devrait être réservé aux circonstances exceptionnelles puisque son contrôle est sous l'entière responsabilité de l'usager; aucune des procédures habituelles de validation de données de CallWeb ne s'appliquent.

   

Gestion

Résultats en temps réel

Le module cwfreq construit des distributions de fréquences, des histogrammes, des tableaux croisés et calcule des statistiques descriptives en temps réel. Il remplit ces fonctions tant sur les données numériques que sur les données alphanumériques. On appelle cwfreq (pour Fréquences) depuis l'interface intégrée en choisissant un nom de projet dans la zone « Construire des tableaux ».

Le module cwnav affiche un menu de sélection de dossiers et de sélection de questions à afficher. Si les codes d'accès nécessaires sont fournis, l'interface offre des liens vers l'édition des dossiers.

Gestion

Résultats en temps réel

Le module cwfreq construit des distributions de fréquences, des histogrammes, des tableaux croisés et calcule des statistiques descriptives en temps réel. Il remplit ces fonctions tant sur les données numériques que sur les données alphanumériques. On appelle cwfreq (pour Fréquences) depuis l'interface intégrée en choisissant un nom de projet dans la zone « Construire des tableaux ».

Le module cwnav affiche un menu de sélection de dossiers et de sélection de questions à afficher. Si les codes d'accès nécessaires sont fournis, l'interface offre des liens vers l'édition des dossiers.

   

Gestion

Extraction de données

Les données recueillies peuvent être extraites de la base de données CallWeb à tout moment; elles peuvent être mises en forme pour utilisation avec des logiciels populaires d'analyse de données. CallWeb peut créer :

  • quatre formats de fichiers de données :
    • un fichier dont les champs sont délimités par des virgules et des apostrophes, pour lecture en Excel (extension .csv);
    • un fichier de données à colonnes fixes adapté aux logiciels d'analyse statistique comme SPSS, SAS, StatXP ou R (extension .dat);
    • un fichier dont les champs sont délimités par des caractères de tabulation, particulièrement adapté à la repopulation d'une base de données CallWeb (extension .tcw);
    • un fichier dont les champs sont délimités par des virgules et ne contenant que les parties ouvertes, le nom des questions et le _telkey (extension .opn).
  • cinq types de fichiers de code de lecture :
    • un fichier d'instructions SPSS pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .sps);
    • un fichier d'instructions R pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .r);
    • un fichier d'instructions SAS pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .sas);
    • un fichier d'instructions ASCQUE pour la création d'un questionnaire Interviewer de VoxCo qui peut ensuite être converti au format StatXP pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .asc);
    • un fichier d'instructions Triple-S Classique 1.1 (extension .sss).
    • un fichier d'instructions Triple-S XML 2.0 (extension .ssx).
    • un fichier d'instructions Stata pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .stt);
  • et une copie du questionnaire CallWeb (extension .scw)

On appelle cwextr (pour Extraction) depuis l'interface intégrée en choisissant un nom de projet dans la zone « Extraire des données ». Le module cwextr comprime les fichiers dans un fichier d'archives .zip. Il envoie ce fichier .zip par courriel à l'une ou plusieurs des adresses identifiées dans l'instruction # Send extractions to et/ou laisse l'extraction sur le serveur. La ou les destinations sont choisies dans l'enterface du module cwfreq.

Dans le mode d'extraction de base à base (qui est commandé dans l'interface intégrée), cwextr copie des données d'une base de données CallWeb directement dans une autre base de données CallWeb. Les bases de données de source et de destination peuvent être sur des serveurs différents mais elles peuvent aussi être dans des instances différentes de CallWeb sur un même serveur ou dans la même instance. Dans ce mode, de nouveaux dossiers peuvent être ajoutés à la base de données de destination et des dossiers existants peuvent être mis à jour en utilisant les données de la base de données source. Il est possible de sélectionner un sous-ensemble des champs pour le transfert mais les champs systèmes (dont le nom commence par un trait souligné) sont toujours transférés. Tous les champs sélectionnés pour le transfert depuis la base de données source doivent exister dans la base de données de destination mais les structures de base de données peuvent différer entre les deux projets CallWeb par ailleurs.

Gestion

Extraction de données

Les données recueillies peuvent être extraites de la base de données CallWeb à tout moment; elles peuvent être mises en forme pour utilisation avec des logiciels populaires d'analyse de données. CallWeb peut créer :

  • quatre formats de fichiers de données :
    • un fichier dont les champs sont délimités par des virgules et des apostrophes, pour lecture en Excel (extension .csv);
    • un fichier de données à colonnes fixes adapté aux logiciels d'analyse statistique comme SPSS, SAS, StatXP ou R (extension .dat);
    • un fichier dont les champs sont délimités par des caractères de tabulation, particulièrement adapté à la repopulation d'une base de données CallWeb (extension .tcw);
    • un fichier dont les champs sont délimités par des virgules et ne contenant que les parties ouvertes, le nom des questions et le _telkey (extension .opn).
  • cinq types de fichiers de code de lecture :
    • un fichier d'instructions SPSS pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .sps);
    • un fichier d'instructions R pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .r);
    • un fichier d'instructions SAS pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .sas);
    • un fichier d'instructions ASCQUE pour la création d'un questionnaire Interviewer de VoxCo qui peut ensuite être converti au format StatXP pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .asc);
    • un fichier d'instructions Triple-S Classique 1.1 (extension .sss).
    • un fichier d'instructions Triple-S XML 2.0 (extension .ssx).
    • un fichier d'instructions Stata pour la lecture du fichier de données à colonnes fixes et l'attribution d'étiquettes de variables et de valeurs (extension .stt);
  • et une copie du questionnaire CallWeb (extension .scw)

On appelle cwextr (pour Extraction) depuis l'interface intégrée en choisissant un nom de projet dans la zone « Extraire des données ». Le module cwextr comprime les fichiers dans un fichier d'archives .zip. Il envoie ce fichier .zip par courriel à l'une ou plusieurs des adresses identifiées dans l'instruction # Send extractions to et/ou laisse l'extraction sur le serveur. La ou les destinations sont choisies dans l'enterface du module cwfreq.

Dans le mode d'extraction de base à base (qui est commandé dans l'interface intégrée), cwextr copie des données d'une base de données CallWeb directement dans une autre base de données CallWeb. Les bases de données de source et de destination peuvent être sur des serveurs différents mais elles peuvent aussi être dans des instances différentes de CallWeb sur un même serveur ou dans la même instance. Dans ce mode, de nouveaux dossiers peuvent être ajoutés à la base de données de destination et des dossiers existants peuvent être mis à jour en utilisant les données de la base de données source. Il est possible de sélectionner un sous-ensemble des champs pour le transfert mais les champs systèmes (dont le nom commence par un trait souligné) sont toujours transférés. Tous les champs sélectionnés pour le transfert depuis la base de données source doivent exister dans la base de données de destination mais les structures de base de données peuvent différer entre les deux projets CallWeb par ailleurs.

   

Gestion

Destruction d'une base de données

Une fois un projet complété et ses données sécurisées par une extraction, le module cwdestruction permet de détruire la base de données elle-même. Le programme exige que le mot-clef « DESTRUCTION » soit saisi pour confirmer les intentions de l'usager. Le mot de passe en écriture doit aussi être fourni s'il exite dans l'instruction # Mot de passe cwNav ecriture.

Ce module est le seul avec cwcompile qui fonctionne même en l'absence d'un fichier de questionnaire compilé. Ceci permet de détruire des données même si le questionnaire a déjà été effacé ou rendu inaccessible.

Il n'y a pas d'autre confirmation de la commande de destruction; il faut donc l'utiliser avec prudence..

Gestion

Destruction d'une base de données

Une fois un projet complété et ses données sécurisées par une extraction, le module cwdestruction permet de détruire la base de données elle-même. Le programme exige que le mot-clef « DESTRUCTION » soit saisi pour confirmer les intentions de l'usager. Le mot de passe en écriture doit aussi être fourni s'il exite dans l'instruction # Mot de passe cwNav ecriture.

Ce module est le seul avec cwcompile qui fonctionne même en l'absence d'un fichier de questionnaire compilé. Ceci permet de détruire des données même si le questionnaire a déjà été effacé ou rendu inaccessible.

Il n'y a pas d'autre confirmation de la commande de destruction; il faut donc l'utiliser avec prudence..

   

Gestion

Archivage de données

Les données de CallWeb résident dans des bases de données MySQL qui ne sont pas immédiatement accessibles pour les fins d'archivage. Le module cwarchive est responsable de la prise de copies d'archive à intervalle régulier; il place les fichiers .zip d'archives dans le répertoire du projet.

On appelle cwarchives depuis l'interface intégrée. Ce module fait la liste de chacun des projets CallWeb en se fondant sur l'existence de bases de données MySQL. Pour chaque projet, des archives horaires et quotidiennes peuvent être planifiées. On y détermine aussi le nombre de fichiers d'archives horaires et quotidiens à conserver sur le disque dur. Il est possible de saisir une adresse de courriel où les fichiers d'archives seront acheminés.

En combinant ces outils, il est donc possible, par exemple, de faire des copies d'archive à 11 h, 14 h et 18 h en conservant six fichiers d'archives sur disque (ce qui représente deux jours d'archives) et d'envoyer un autre fichier d'archive toutes les nuits hors site par courriel.

La première ligne du tableau de planification de l'archivage définit un comportement par défaut qui s'applique à tous les projets qui ne possèdent pas une planification particulière — de sorte qu'une fois la planification typique définie, il n'est plus nécessaire de penser à activer l'archivage pour chaque nouveau projet.

cwarchive utilise les procédures d'efficacité suivantes :

  • si les données n'ont pas changé entre deux archivages de même type (horaires ou quotidiens), le fichier d'archive le plus récent n'est pas conservé — pour que les procédures de copies de sécurité ne fassent pas de copies inutiles des mêmes données encore et encore. Ceci signifie que de nouveaux fichiers d'archives ne sont pas créés tant que les données restent inchangées;
  • selon la même logique, seuls les nouveaux fichiers d'archivage sont envoyés par courriel;
  • si des copies d'archive quotidiennes sont planifiées au même moment que des copies d'archives horaires, seules les copies quotidiennes sont produites.

Le module cwarchive.pl doit être cité dans le répertoire /etc/cron.hourly pour que ce processus démarre à chaque heure. Le texte sur l'installation de CallWeb offre davantage d'information à ce sujet.

Gestion

Archivage de données

Les données de CallWeb résident dans des bases de données MySQL qui ne sont pas immédiatement accessibles pour les fins d'archivage. Le module cwarchive est responsable de la prise de copies d'archive à intervalle régulier; il place les fichiers .zip d'archives dans le répertoire du projet.

On appelle cwarchives depuis l'interface intégrée. Ce module fait la liste de chacun des projets CallWeb en se fondant sur l'existence de bases de données MySQL. Pour chaque projet, des archives horaires et quotidiennes peuvent être planifiées. On y détermine aussi le nombre de fichiers d'archives horaires et quotidiens à conserver sur le disque dur. Il est possible de saisir une adresse de courriel où les fichiers d'archives seront acheminés.

En combinant ces outils, il est donc possible, par exemple, de faire des copies d'archive à 11 h, 14 h et 18 h en conservant six fichiers d'archives sur disque (ce qui représente deux jours d'archives) et d'envoyer un autre fichier d'archive toutes les nuits hors site par courriel.

La première ligne du tableau de planification de l'archivage définit un comportement par défaut qui s'applique à tous les projets qui ne possèdent pas une planification particulière — de sorte qu'une fois la planification typique définie, il n'est plus nécessaire de penser à activer l'archivage pour chaque nouveau projet.

cwarchive utilise les procédures d'efficacité suivantes :

  • si les données n'ont pas changé entre deux archivages de même type (horaires ou quotidiens), le fichier d'archive le plus récent n'est pas conservé — pour que les procédures de copies de sécurité ne fassent pas de copies inutiles des mêmes données encore et encore. Ceci signifie que de nouveaux fichiers d'archives ne sont pas créés tant que les données restent inchangées;
  • selon la même logique, seuls les nouveaux fichiers d'archivage sont envoyés par courriel;
  • si des copies d'archive quotidiennes sont planifiées au même moment que des copies d'archives horaires, seules les copies quotidiennes sont produites.

Le module cwarchive.pl doit être cité dans le répertoire /etc/cron.hourly pour que ce processus démarre à chaque heure. Le texte sur l'installation de CallWeb offre davantage d'information à ce sujet.

   

Annexe A

Instructions dièses

Les instructions dièses contrôlent divers éléments du comportement de CallWeb. Elles débutent par un dièse (#) qui peut être précédé par des espaces ou des marques de tabulation pour plus de clarté. Une instruction dièse donnée peut être séparée sur plus d'une ligne en commençant la seconde et les suivantes par un dièse suivi d'un signe « plus grand que » (#>); cette combinaison peut être précédé par des espaces ou des marques de tabulation.

Instruction SyntaxeExplicationValeur par défaut
OBLIGATOIRE
# Available languages
# Langues disponibles (*)
=EN,FRListe des langues disponibles dans le questionnaire. Les langues sont indiquées en utilisant les codes de langue ISO 639-1 à deux caractères.aucune
# Default language
# Langue par defaut (*)
=ENLangue par défaut utilisée quand aucune langue ou une langue inexistante est précisée. Ce doit être l'une des langues identifiées dans # Langues disponibles.aucune
# Survey type
# Type enquete (*)
=code
  • Open | Ouvert = entièrement ouvert, pas de fourniture de code d'accès (était 1)
  • Closed | Ferme = accès contrôlé; les données doivent être prépeuplées (était 2)
  • Open Combination | Ouvert Combinaison = entièrement ouvert; un code d'usager et un mot de passe sont sélectionnés par le participant (était 3)
  • Open Offered | Ouvert Offert = entièrement ouvert, fourniture d'un code d'accès pour retour dans le questionnaire (était 5)
  • Password | Mot de passe = accès contrôlé comme Ferme avec en plus un mot de passe chiffré (était 7). Une recette décrit ce système en détail.
aucune
STRUCTURE
# Group ID
# Ecran ID (*)
=Qm-QnLes questions entre Qm et Qn, incluant Qm et Qn, sont affichées sur une seule page.aucune
# Table ID
# Matrice ID (*)
=Q1-Q2 ENTETE=n PIXELS=n COLVARS=n POSITION=x FORCE_CODES TRANSPOSE SPECIAL=(n,...) COIN=(...) VALIDATIONLes questions entre Qm et Qn, incluant Qm et Qn, sont affichées en tableau. L'en-tête du tableau est répétée à toutes les ENTETE lignes; les colonnes sont larges de PIXELS pixels; il y a COLVARS questions à la verticale. La POSITION peut être LEFT|GAUCHE (la valeur par défaut), CENTRE ou RIGHT|DROITE. Détails.aucune
# Permutation ID=Qm-Qn PAS=n LIMITE=n COMME=permutationLes questions entre Qm et Qn, incluant Qm et Qn, sont affichées en ordre aléatoire et seulement LIMIT blocs de PAS questions sont retenus. COMME est le nom d'une autre permutation qui contrôle l'ordre de celle-ci. Détails.aucune
# New question order
# Nouvel ordre de questions (*)
=listes de noms de questions délimitées par des virgules; les listes sont délimitées par des barres obliquesRéordonne les questions définies dans le questionnaire; il peut y avoir plusieurs listes de réordonnancement qui sont séparées par des barres obliques. Chaque liste est constituée d'un nombre arbitraire de questions séparées par des virgules et présentées dans le nouvel ordre de traitement dans le questionnaire. Cette instruction facilite l'usage généralisé de la syntaxe par SUFFIXE. Par exemple : # Nouvel ordre de questions = Q3, Q2, Q1 / Q14, Q16, Q15. Comme pour toutes les instructions dièses, seulement une instruction de ce type (la dernière du fichier .scw) est active dans le questionnaire.aucune
# Deactivate pages
# Desactiver les pages (*)
=yes|no
oui|non
Détermine si CallWeb utilise ou non les instructions ECRAN (GROUP) et MATRICE (TABLE) dans le questionnaire. Pourrait server à linéariser un questionnaire pour des fins de CATI.non
(OBSOLÈTE)
# Note segment
# Segment note (*)
=yes|no
oui|non
Détermine si le texte de la NOTE est présenté dans son propre segment dans le fichier .scw (par opposition à l'ancienne syntaxe utilisant [NOTE] dans le texte de la question)oui
(OBSOLÈTE)
# Rotations on RO
# Rotations sur RO (*)
=yes|no
oui|non
Détermine si deux variables RO agissent comme bornes d'une permutation de questions. Cette instruction devrait être laissée à « non »; elle existe pour fins de compatibilité arrière.non
# INDEX=Liste de questionsListe délimitée par des virgules de questions exigeant un index dans la base de données. Les parties ouvertes doivent être accompagnées du nombre de caractères à indexer entre parenthèses (p.ex., AQ1(20)).non
# Create View ID
=Énoncé SQLÉnoncé SELECT en SQL pour extraire quelque sous-ensemble de données de la base de données CallWeb pour utilisation dans une autre application. ID doit être unique dans le questionnaire.aucune
ACCÈS (général)
# cwNav read password
# Mot de passe cwNav lecture (*)
=mot de passeMot de passe pour la lecture de données dans les programmes utilitaires.aucune
# cwNav write password
# Mot de passe cwNav ecriture (*)
=mot de passeMot de passe pour la modification de données dans les programmes utilitaires.aucune
# cwextr zip password (*)=mot de passeMot de passe utilisé pour chiffrer les fichiers extraits dans un zip (espaces comprimés à l'utilisation).aucune
# cwcompile zip password (*)=mot de passeMot de passe utilisé pour chiffrer les informations sauvegardées par cwcompile dans un zip (espaces comprimés à l'utilisation).aucune
# cwarchive zip password (*)=mot de passeMot de passe utilisé pour chiffrer les données extraites par cwarchive.pl dans un zip (espaces comprimés à l'utilisation).aucune
# cwemail password
# Mot de passe cwemail (*)
=mot de passeMot de passe exigé pour envoyer des messages courriels par cwemail.aucune
# Return permitted
# Retour permis (*)
=yes|no
oui|non
Détermine si on peut retourner dans une entrevue complétée.non
# Password change in type 7
# Changement de mot de passe en type 7 (*)
=yes|no
oui|non
Détermine si l'usager se fait offrir la possibilité de changer de mot de passe en Type enquete Mot de passe.oui
# Seconds locked
# Secondes de verrou (*)
=# de secondesNombre de secondes durant lesquelles un questionnaire est réservé à l'usager actif.0
# Language switch
# Changement de langue (*)
=yes|no
oui|non
Détermine si l'usager peut changer de langue une fois le questionnaire débuté.oui
# Telkey pattern=patronPatron utilisé pour la création de codes d'accès (_telkey) : combinaison de [C]onsonnes, [V]oyelles, [L]ettres, [N]ombres, [S]pecial et [?] pour tous ces caractères. Tout autre caractère est inséré tel quel. Chaque caractère du patron est remplacé par un caractère dans le code d'accès. Les substitutions sont honorées.CVCVCVN
# use_telkey_table=yes|no
oui|non
Ajuste l'instruction d'installation use_telkey_table projet par projet (nécessaire pour que BASEpretest fonctionne correctement). « Oui » dans cette instruction ne fonctionne que si l'option d'installation est déjà fixée à « oui ».oui
# Visible from
# Visible depuis (*)
=liste de répertoiresListe délimitée par des virgules de répertoires d'utilitaires qui peuvent accéder aux données du projet. Le répertoire utilitaire maître (défini par l'option de configuration « repertoire_utilitaire_maitre ») a accès à tous les projets.aucune
# Accessible by
# Accessible par (*)
=liste d'usagersListe délimitée par des virgules d'usagers ayant accès au projet selon les spécifications de leurs permissions « Accessible par » définis dans cwperm.cgi.none
# Noreturn condition
# Condition de non retour (*)
=condition logiqueCondition logique xBase ou Perl (entre accolades) indiquant quand on ne peut plus ré-accéder à un dossier — si l'instruction « # Retour permis » a été fixée à non. Si un participant a dépassé la dernière question et que « # Retour permis » vaut non, le retour est interdit; de même si « # Condition de non retour » est vraie; ceci permet de contrôler le retour sans insister pour que les participants quittent le questionnaire (présumément, vers une page statique de remerciement).aucune
# Control by cookie
# Controle par cookie (*)
=yes|no(dans callweb.cgi seulement; ne fonctionne pas dans cwx.cgi) Active le système de contrôle d'accès par fichier témoin (cookie) qui prévient la création d'un second questionnaire par un certain fureteur d'un certain ordinateur dans le contexte d'un projet ouvert. L'instruction n'a pas d'effet pour les autres types de questionnaires (à accès contrôlé).no
# Deny access if
# Nier acces si (*)
=condition logiqueCondition logique xBase ou Perl (entre accolades) indiquant quand des dossiers ne peuvent pas être ouverts. La condition peut utiliser toute information du questionnaire ainsi que tout élément de contexte comme la date et l'heure.aucune
# Freeze data if
# Figer les donnees si (*)
=condition logiqueCondition logique xBase ou Perl (entre accolades) indiquant quand les données au dossier ne peuvent plus être modifiées. La condition peut utiliser toute information du questionnaire ainsi que tout élément de contexte.aucune
# Allow new in open combination=yes|noEn mode Ouvert Combinaison, accepte ou refuse la création de nouveaux dossiers sur la base de nouveaux _telkeys fournis par le participant.oui
# Auto submit=condition logiquecondition logique xBase ou Perl (entre accolades) indiquant si CallWeb soumet automatiquement la page de questionnaire sur sélection d'une réponse. Ceci est disponible seulement dans les pages qui ne contiennent qu'une seule question ne permettant qu'une seule sélection (type bouton radio); ce n'est pas disponible si une catégorie de réponse comporte une partie ouverte.aucune
# Master compilation server
# Serveur maitre de compilation (*)
=nom du serveurNom du serveur qui a la permission de compiler le script. Le nom du serveur est défini dans une option de configuration. Cette instruction exige que l'option d'installation control_by_other_server_possible soit fixée à yes.aucune
# Master codes=liste de codes délimitée par des virgulesChacun de ces mots de passe donne accès au questionnaire par le module callweb.cgi (ou cwx.cgi). Aucun accès n'est possible sans fournir un de ces codes.aucune
# 2FA=[EMAILQUESTION]nom d'une question EMAIL
[EMAILADDRESS]nom de la partie ouverte d'une question contenant l'adresse courriel du répondant
[CODEPATTERN]patron de code
[STORECODE]nom de la partie ouverte d'une question STOCK où le code aléatoire est enregistré
[COLLECTCODE]nom de la question utilisée pour saisir le code aléatoire
[FROM]adresse d'envoi
Si cette instruction existe, avant d'afficher toute page, CallWeb vérifie que le fichier témoin 2FA existe. Dans le cas contraire, un message est envoyé en utilisant le texte de EMAILQUESTION (qui doit contenir un rappel de la partir ouverte de la question STORECODE) à l'adresse stockée dans EMAILADDRESS. L'option CODEPATTERN suit la convention de « # Telkey pattern ». Les questions STORECODE et COLLECTCODE doivent include une partie ouverte de type C. Le répondant voir la question COLLECTCODE où doit être saisi le code reçu par courriel. Une fois le code saisi, le répondant est retourné à la page qui aurait été affichée s'il n'y avait pas de 2FA. Une recette décrit ce système en détail.aucune
ACCÈS (lecteurs d'écrans)
# Question Framing
# Encadrement des questions (*)
=legend | pPrécise si le texte des questions est encadré par des bornes <p></p> ou <legend></legend>legend
# Table of contents of errors
# Table des matieres des erreurs (*)
=deux|access|regulier|aucunAffiche une table des matières des erreurs au haut de la page, selon le mode d'affichage.aucun
# Focus on error=premiere|generalSi une page provoque une erreur, détermine où le focus sera placé, soit sur la première erreur ou sur le message d'erreur général.general
ACCÈS (CATI et robot)
# Supervisor password
# Mot de passe des superviseurs (*)
=mot de passeMot de passe utilisé par les superviseurs pour avoir accès aux fonctions de gestion de la file d'attente d'appels.aucune
# Master CATI server
# Serveur maitre pour le CATI (*)
=nom du serveurNom du serveur qui a la permission de gérer la composante CATI d'un projet. Le nom du serveur est défini dans une option de configuration.aucune
# Maximum interviewers=nombreNombre maximum d'interviewers permis à la fois dans un projet.999999
# Linear CATI mode=yes|no
oui|non
En mode CATI, par défaut, les questionnaires sont affichés dans une seconde fenêtre de fureteur alors que l'écran de gestion du dossier par l'interviewer demeure ouvert. Fixer « # Linear CATI mode » à oui fait en sorte que le questionnaire remplace l'écran de gestion de dossier et qu'un bouton est affiché dans le questionnaire pour retourner à la gestion de l'appel.non
# Cati=yes|no|ivr
oui|non|ivr
Détermine si un projet CallWeb doit être géré comme un projet CATI ou comme un projet IVR. Les projets CATI ont des exigences particulières qui sont validées lorsque cette option est activée. Une valeur par défaut peut être définie dans le fichier de configuration de l'instance en utilisant le mot-clef « cati » (minuscules).non
ACTION (général)
# Include=nom de fichierInsère le contenu du fichier à cet endroit dans le script, avant compilation. Si le nom du fichier ne comporte pas de chemin, le fichier doit être placé dans le répertoire du fichier .scw appelant; un chemin relatif à la racine de l'instance CallWeb peut être fourni, p.ex., cw/file.inc. Les fichiers inclus peuvent eux-mêmes contenir des énoncés Include. En utilisant Include, on peut partager des portions de questionnaires entre scripts.aucune
# Test ID=[SUR]... [CONDITION]... [MESSAGE]... [TYPE]...Applique le test d'erreur CONDITION sur réception d'une valeur pour SUR; si CONDITION est vraie, retourne un MESSAGE d'erreur là où TYPE l'indique. Détails.aucune
# Recall ID
# Rappel ID
=texte rappelé
ou
[condition]texte rappelé
Crée une valeur qui peut être rappelée en utilisant la syntaxe &#ID. Voir la page sur les rappels pour les détails. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Default JavaScript to
# JavaScript par defaut
=yes|no
oui|non
Détermine s'il faut considérer JavaScript actif avant de recevoir l'information du poste client.oui
# Load JavaScript Library=yes|no
oui|non
Détermine si les librairies JavaScript (Mootools et Highcharts) sont chargées pour les pages de questionnaires.oui
(OBSOLÈTE)
# Email
# Courriel (*)
=adresse de courrielAdresse de courriel qui recevra chacun des questionnaires complétés. Séparer plusieurs adresses par des virgules.aucune
# Default cwemail email
# cwemail email par defaut (*)
=adresse de courrielAdresse de courriel par défaut utilisée comme origine dans cwemail. Peut être changée dans l'interface cwemail.aucune
# Default cwemail sender
# cwemail envoyeur par defaut (*)
=adresse de courrielAdresse de courriel par défaut utilisée techniquement comme envoyeur du message (plutôt que comme le champ « De » du message). Peut être changée dans l'interface cwemail. Cette information est utilisée par le serveur de réception pour évaluer les risques que le message constitue un pourriel. Ce devrait être une adresse livrable sur le serveur d'envoi.aucune
# cwemail report to (*)=adresse de courrielAdresse de courriel à laquelle le rapport de cwemail.cgi en mode turbo est envoyé.administrateur du système
# convert email subject (*)=oui|non
yes|no
Détermine si le sujet des courriels sera converti à UTF-8. Tester avant utilisation.Oui
# List Unsubscribe (*)=URL de désinscriptionURL par défaut pour accéder au système de désinscription du questionnaire. Voir la recette correspondante.none
# Send extractions to
# Envoyer extractions a (*)
=adresse de courrielAdresse de courriel pouvant recevoir des extractions de cwextr. Séparer plusieurs adresses par des virgules.aucune
# cwextr copy directory
# repertoire sauvegarde cwextr (*)
=(répertoire local)Nom d'un répertoire local offert par défaut dans cwextr comme endroit où placer une copie d'une extraction.aucune
# Extraction width
# Largeur extraction (*)
=ncolonnesLargeur d'extraction par défaut pour les questions fermées.4
# Minimal extraction width
# Extraction de largeur minimale (*)
=oui|nonSi fixé à oui, les extractions de données utilisent le plus petit nombre de colonnes requis pour représenter les données.non
# Refuse duplicates in cwprepop
# Rejeter les doublons dans cwprepop (*)
=liste de questionsListe de questions ou de variables systèmes (comme _telephone) délimitée par des virgules dont cwprepop s'assurera qu'elles ne contiennent pas de doublon. Les dossiers contenant des doublons ne sont pas prépeuplés et leur statut fait l'objet d'un rapport.aucune
# Send bounces to=adresse de courrielAdresse de courriel où CallWeb envoie les messages d'échec de livraison de courriels.
Si cette adresse est formattée comme bounces.*@domain.xxx, CalWeb reformatte l'adresse pour travailler de concert avec cwbounces.pl qui intercepte les messages d'échec de livraison.
aucune
# Check bounces against=AQnNom de la partie ouverte contenant les adresses de courriel auxquelles les invitations ont été envoyées (ou une liste délimitée par des virgules de parties ouvertes de la même longueur que celle de # Save bounces into). Cette valeur est utilisée par cwbounces.pl pour identifier le ou les enregistrements de la base de données qui sont associés à un échec de livraison. Cette valeur doit être spécifiée pour utiliser cwbounces.pl et la forme bounces.*@domain.xxx de l'instruction « # Send bounces to ».aucune
# Save bounces into=AQnNom de la partie ouverte contenant la date et l'heure des échecs de livraison reçus pour un dossier (ou une liste délimitée par des virgules de parties ouvertes de la même longueur que celle de # Check bounces against). Cette valeur doit être spécifiée pour utiliser cwbounces.pl et la forme bounces.*@domain.xxx de l'instruction « # Send bounces to ».aucune
# Complete case
# Dossier complet (*)
=expression logique SQLExpression logique décrivant un questionnaire complété. Ce doit être une expression SQL valide; aucune validation n'est effectuée sur sa syntaxe.aucune
# Cleaning skips
# Sauts nettoyants (*)
=yes|no
oui|non
Détermine si les sauts vers l'avant provoquent le nettoyage des données entre les bornes du saut.oui
# Save backwards
# Sauve a reculons (*)
=yes|no
oui|non
Détermine si les données sont sauvegardées lors du passage à la page précédente grâce au bouton de recul de CallWeb (pas le bouton du fureteur). Pour des raisons logiques, aucune validation des données n'est effectuée dans ce contexte.oui
# Url=urlURL vers laquelle le participant est acheminé au sortir du questionnaire. La valeur peut contenir des rappels. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple. En conséquence, différentes versions linguistiques peuvent être acheminées vers différentes URLs, comme dans # URL = [EN]http://yahoo.com[FR]http://yahoo.fr. Les substitutions sont honorées.aucune
# Attributable questions
# Questions attribuables (*)
=liste de questionsDéclare une liste de questions (dans la forme : Q1-Q5, Q7, Q8-Q10, ...) qui peut recevoir des valeurs à l'accès initial au dossier. Par exemple, prenant pour acquis que Q1 est une question attribuable et que abc est un projet de type ouvert, l'URL « callweb.cgi?_proj=abc&Q1=2 » crée un nouveau dossier dans la base de données et attribue la valeur 2 à la question Q1 — ceci fonctionne dans tous les types de projets.
Les règles sont : seules les questions faisant partie de la liste sont attribuables; seuls les dossiers vierges sont attribuables; seules les questions dont la valeur est vide sont attribuables (p.ex., une valeur prépeuplée ne peut pas être modifiée par cette procédure). Toutes les questions attribuables n'ont pas à être attribuées.
Notez que les noms des questions sont toujours en majuscules et que les URLs sont sensibles à la casse.
Souvenez-vous que, dans la séquence du questionnaire, toutes les questions, incluant les questions attribuables, sont sujettes à être affacées par des questions BLANK, des conditions d'affichage, des sauts, etc. Des sauts non nettoyants appropriés pourraient être nécessaires pour préserver les valeurs attribuées par ce protocole.
aucune
# Pretest=texte ou code HTMLCrée des hyperliens à BASEpretest et les affiche à côté de chaque question qui ne possède pas un type de question NOPRETEST. Si cet énoncé est défini et si BASEpretest existe, ces liens sont produits et affichent une nouvelle fenêtre contenant le formulaire de commentaires. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple. Voir la recette associée.aucune
# Pretest project
# Projet pretest (*)
=textNom du projet CallWeb utilisé par l'outil de # Pretest.BASEpretest
# Auto email=syntaxe complexe (voir la page sur les invitations par courriel )fournit les paramètres requis pour l'envoi automatique de courriels.aucune
# Stop  Pas de paramètre. Interrompt la compilation du questionnaire et ne tient pas compte des instructions qui suivent.s/o
# Execute if
# Executer si
=nom d'une question CALCUL ou liste de noms séparés par des obliques
ou
[condition]nom d'une question CALCUL ou liste de noms séparés par des obliques
Identifie une question CALCUL (ou une liste délimitée par des obliques de noms de questions CALCUL) qui est exécutée (possiblement, conditionnellement) avant d'afficher la page suivante. Cette instruction est évaluée après chaque page une fois que les réponses fournies sont validées et avant que l'affichage de la page suivante ne soit calculé. Voir la page sur les rappels pour les détails sur la syntaxe conditionnelle.aucune
# Always open at
# Toujours ouvrir a
=nom de questionIdentifie la question d'ouverture du questionnaire (peu importe sur quelle question le questionnaire a été quitté). Le mot-clef _AUDEBUT_ peut être utilisé.none
# Only for server ID
# Seulement pour le serveur ID (*)
=une autre instruction dièse« Seulement pour le serveur » est suivie du nom du serveur (défini dans le fichier de configuration) de l'instance de CallWeb, comme dans # Seulement pour le serveur ABC = # cati = yes. Cette instruction est suivie d'une autre instruction dièse qui est activée seulement sur le serveur nommé. Notez que les validations habituellement effectuées en cours de compilation ne sont pas faites sur la sous-instruction.aucune
# Copy questionnaire into
# Copier le questionnaire vers (*)
=localisation/répertoireEnvoie une copie d'un questionnaire compilé à un serveur CallWeb secondaire dans le contexte d'une configuration multi-serveur. Cette instruction inclut l'usager, le nom de domaine ou l'adresse IP du serveur cible et le répertoire de projet, comme dans
# Copier le questionnaire vers = qqusager@callweb.ca/var/www/html/qqrep/cwprojet
Cette instruction copie le fichier .qcw ainsi qu'un fichier .scw vide. Les clefs publiques doivent avoir été échangées entre les serveurs pour que cette intruction fonctionne. Plus d'une copie peut être spécifiée sous forme de liste délimitée par des virgules. Il est aussi possible de copier d'autres fichiers se trouvant dans le répertoire de projet en fournissant leur nom ou un patron dans la liste délimitée par des virgules, comme dans
# Copy questionnaire into = someuser@callweb.ca/var/www/html/somerep/cwproject, *.pdf, *.docx
ce qui copierait tous les fichiers pdf et docx du serveur de compilation vers le serveur distant.
aucune
# MySQL engine=nom de moteurPrécise quel moteur MySQL utiliser pour la base de données.aucune
# BASEclicks=yes|no
oui|non
Précise si le temps écoulé entre chaque page d'un questionnaire doit être enregistré dans BASEclicks.non
# General Upload Parms=dir = x, file = oui|non, min = m, max = n, extensions = ext1/ext2/...Fournit les paramètres utilisés par les questions ouvertes de type F (file upload): dir est le nom du répertoire où sont sauvegardés les fichiers téléversés, sous le répertoire du projet; file est une valeur oui|non indiquant si les fichiers sont sauvegardés dans le répertoire « dir » en plus de la base de données MySQL; min est le nombre minimum de bytes exigé d'un fichier téléversé (défault = zéro); max est le nombre maximum de bytes exigé d'un fichier téléversé (pas de défault); extensions est une liste délimitée par des obliques d'extensions permises (un astérisque indique que toutes les extensions sont acceptées).aucun
ACTION (CATI et robot)
# Use do not call list=yes|no
oui|non
Détermine s'il faut utiliser l'information du projet BASEdonotcall lors du prépeuplement d'un projet; contrôle aussi l'affichage de la boite-à-cocher d'exclusion des appels dans l'interface des interviewers.oui
# Do not call email=adresse de courrielAdresse de courriel à laquelle envoyer un avis d'ajout d'un numéro à la liste d'exclusion par un interviewer. Plusieurs adresses doivent être séparées par des virgules.aucune
# CATI selection 3=question, yes|no
question, oui|non
Spécifie qu'une certaine question agit comme troisième critère de sélection pour les interviewers en mode CATI. Le second paramètre indique si les interviewers peuvent changer la valeur de cette donnée à même leur interface de gestion des résultats d'appels.nom de question, aucune; action, OUI
# Productivity index=expression MySQLExpression MySQL calculant un indice de productivité des interviewers. Utilisée par cwprod.cgi. Voir aussi l'option d'installation productivity_index.ROUND((completes_first + 2*completes_norefusal + 5*completes_withrefusal - 3*refusals_first ) / duration,1)
# Close full quota
# Fermeture automatique des quotas atteints
=yes|no
oui|non
En mode CATI, contrôle l'activation du système de clôture automatique des quotas.oui
# Basic call management=yes|no
oui|non
En mode CATI, contrôle l'utilisation par le système de gestion de la file d'attente de simples listes déroulantes de délais ou de boîtes de valeurs.non
# Other n in cwsuper
# Autre n dans cwsuper **
=Expression MySQLExpression MySQL produisant un décompte depuis la base de données dans cwsuper.aucune
CONTRÔLE DE L'APPARENCE (page)
# Template
# Gabarit
=nom de fichierNom du fichier HTML utilisé comme gabarit pour le questionnaire. À moins que le fichier soit dans le répertoire de projet, le chemin du fichier doit être précisé. Sans cet énoncé, la page de questionnaire est bâtie selon la construction verticale classique. Une autre page de la documentation fournit des détails. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple. Les substitutions sont honorées.aucune
# Stylesheet=nom de fichierNom d'un fichier contenant les styles CSS spécifiques au projet courant. À moins que le fichier soit dans le répertoire de projet, le chemin du fichier doit être précisé. Sans cet énoncé, des règles de substitution s'appliquent. Les substitutions sont honorées.aucune
# Page_position=left|center|rightPosition de la zone du questionnaire CallWeb dans la fenêtre du fureteur.gauche
# Page_width
# Page_largeur (*)
=pixels|%Largeur de la zone du questionnaire CallWeb dans la fenêtre du fureteur. Elle peut être exprimée en pixels (un chiffre brut) ou en pourcentage de la taille de la fenêtre (un nombre avec un signe de pourcentage).100%
# Page_wire_pixels
# Page_fil_pixels (*)
=pixelsLargeur, en pixels, du fil séparant la zone du questionnaire CallWeb du reste de la fenêtre du fureteur.0
# Page_wire_colour
# Page_fil_couleur (*)
=#FFFFFFCouleur du fil séparant la zone du questionnaire CallWeb du reste de la fenêtre du fureteur.#FFFFFF
# Page_interior_colour
# Page_interieur_couleur (*)
=#FFFFFFCouleur de la zone du questionnaire CallWeb. La couleur de l'extérieur de cette zone est déterminée par la borne « body » de la feuille de styles css.#FFFFFF
# Background image
# Image de fond (*)
=url.gif|url.jpgImage à afficher en fond de la zone du questionnaire CallWeb.aucune
# Page_interior_margin_pixels
# Page_interieur_marge_pixels (*)
=2Largeur de l'espace séparant la zone du questionnaire du fil entourant le questionnaire.2
# Default N columns
# N colonnes par defaut (*)
=nombreNombre par défaut de colonnes de présentation des catégories de réponses. Cette valeur générale peut être ajustée question par question grâce à l'argument ncols de la ligne du nom de la question.1
# Radio button position
# Position du bouton radio (*)
=top | middle | bottomPosition verticale du bouton radio ou de la case à cocher en relation avec le texte de la catégorie de réponse dans l'affichage d'une question simple.top
# Header
# Entete (*)
=texteTexte affiché au haut de chaque page. Les codes HTML sont interprétés. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Footer
# Pied (*)
=texteTexte affiché au bas de chaque page. Les codes HTML sont interprétés. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Between questions
# Entre questions (*)
=yes|no
oui|non
Détermine s'il faut afficher une ligne horizontale entre chaque question.non
# HTML Title
# Titre HTML (*)
=texteTexte affiché dans la barre du fureteur en cours d'exécution du questionnaire. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple. Les substitutions sont honorées.aucune
# Title
# Titre (*)
=texteTitre du projet affiché au haut de la sortie de cwquestionnaire. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Display question names
# Affiche noms questions (*)
=yes|no
oui|non
Détermine si les noms de questions sont affichés à l'écran (outil de débogage).non
# Activate the mobile mode
# Activer le mode mobile (*)
=yes|no
oui|non
Détermine si les appareils mobiles affichent une page simplifiée.non
# Thousand separator
# Separateur de milliers (*)
=caractère(s)Précise quel(s) caractère(s) utiliser pour définir les groupes de milliers dans les valeurs numériques. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple._
CONTRÔLE DE L'APPARENCE (tableaux)
# M_CellColour
# M_CouleurCellules (*)
=#FFFFFFCouleur de l'intérieur des cellules des lignes impaires dans les tableaux.#FFFFFF
# M_CellColour2
# M_CouleurCellules2 (*)
=#FFFFFFCouleur de l'intérieur des cellules des lignes paires dans les tableaux.#FFFFFF
# M_SpecialColour
# M_CouleurSpeciale (*)
=#ACACACCouleur des codes SPECIAL des tableaux.#CCCCCC
# M_InteriorSpacing
# M_EspacementInterieur (*)
=nombreLargeur des marges intérieures dans les cellules de tableaux.3
# M_Borders
# M_Bordures (*)
=nombreLargeur des bordures des tableaux.1
# M_BorderColour
# M_CouleurBordures (*)
=#CCCCCCCouleur des bordures des tableaux.#FFFFFF
# M_ColumnTitleAlignment
# M_AlignementTitresColonnes (*)
=T|B|MAlignement des titres de colonnes dans leur cellule : T = top, B = bottom, M = Middle.B
# M_ColumnTitleColour
# M_CouleurTitresColonnes (*)
=#FFFFFFCouleur des cellules de titres de colonnes dans les tableaux.#666699
# M_LineTitleColour
# M_CouleurTitresLignes (*)
=#FFFFFFCouleur des titres de lignes impaires dans les tableaux.#CCCCCC
# M_LineTitleColour2
# M_CouleurTitresLignes2 (*)
=#FFFFFFCouleur des titres de lignes paires dans les tableaux.#FFFFFF
# M_ Cell highlighting
# M_ mise en evidence (*)
=#EEEEEECouleur de la mise en évidence des cellules dans les tableaux.Même que les en-têtes de colonnes
# Cell highlighting
# Mise en evidence des cellules (*)
=yes|no
oui|non
Active ou désactive la mise en évidence des cellules pour les catégories de réponse et les tableaux de questions.oui
# Styles for tables
# Styles pour matrices(*)
=yes|no
oui|non
Détermine si l'affichage des tableaux dépend des styles css.non
# M text position
# Position texte M (*)
=left | right
gauche | droite
Position, relativement au bouton radio ou à la case à cocher, du texte placé dans une cellule de tableau par le code de comportement M.droite
CONTRÔLE DE L'APPARENCE (boutons et barre de progression)
# Display language button
# Affiche bouton langue (*)
=
  • 0 ou NO ou NON
  • 1 ou TOP ou HAUT
  • 2 ou BOTTOM ou BAS
Localisation des boutons utilisés pour passer d'une langue à l'autre : aucun bouton, au haut, après le titre, ou au bas, avec les boutons de navigation.BAS
# Display back button
# Affiche retour arriere (*)
=yes|no
oui|non
Détermine si le bouton ou l'image « Page précédente » est affiché.non
# Page Error Image
# Image erreur page (*)
=nom de fichierIdentifie un fichier graphique utilisé pour mettre en évidence le message d'erreur de la page soumise. Si le nom du fichier ne comporte pas de chemin, le fichier doit être placé dans le répertoire du fichier .scw appelant; un chemin relatif à la racine de l'instance CallWeb peut être fourni, p.ex., cw/file.gif. Les substitutions sont respectées.gr/erreur_page.gif
# Field Error Image
# Image erreur champ (*)
=nom de fichierIdentifie un fichier graphique utilisé pour mettre en évidence un message d'erreur au niveau de la question. Si le nom du fichier ne comporte pas de chemin, le fichier doit être placé dans le répertoire du fichier .scw appelant; un chemin relatif à la racine de l'instance CallWeb peut être fourni, p.ex., cw/file.gif. Les substitutions sont respectées.gr/erreur_champ.gif
# Forward text
# Texte avance (*)
=texteTexte affiché sur le bouton HTML « Page suivante » ou sous l'image équivalente. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Prochaine question
# Submit text
# Texte submit (*)
=texteTexte affiché sur le bouton HTML « Page suivante » ou sous l'image équivalente pour les questions de type SUBMIT. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Soumettre
# Backwards text
# Texte recule (*)
=texteTexte affiché sur le bouton HTML « Page précédente » ou sous l'image équivalente. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Page précédente
# Unlock text
# Texte unlock (*)
=texeTexte affiché sur le bouton HTML « Unlock » ou sous l'image équivalente. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Sauver et quitter
# Stop text
# Texte stop (*)
=texteTexte affiché sur le bouton HTML « Stop » ou sous l'image équivalente. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Interrompre
# Button order bottom
# Ordre des boutons bas (*)
=lettres codesIdentifie l'ordre de présentation (de gauche à droite) des boutons et de la barre de progression au bas de chaque page du questionnaire. Les lettres indiquent la nature des bouton et l'ordre : bouton [B]ack, bouton [N]ext, bouton [U]nlock, bouton [L]angue, [T]hermomètre, bouton [S]top. Ceci est aussi l'ordre par défaut. Les lettres qui ne sont pas utilisées dans cette instruction sont ajoutées par le compilateur, dans cet ordre par défaut, après les boutons déclarés. L'apparition de certains de ces boutons est contrôlée par d'autres instructions dièses.BNULTS
# Button order top
# Ordre des boutons haut (*)
=lettres codesIdentifie l'ordre de présentation (de gauche à droite) des boutons et de la barre de progression au haut de chaque page du questionnaire. Les lettres indiquent la nature des bouton et l'ordre : bouton [B]ack, bouton [N]ext, bouton [U]nlock, bouton [L]angue, [T]hermomètre, bouton [S]top. Ceci est aussi l'ordre par défaut. Les lettres qui ne sont pas utilisées dans cette instruction ne sont pas considérées.aucune
(OBSOLÈTE)
# Button order
# Ordre des boutons (*)
=lettres codesIdentifie l'ordre de présentation (de gauche à droite) des boutons et de la barre de progression au bas de chaque page du questionnaire. Les lettres indiquent la nature des bouton et l'ordre : bouton [B]ack, bouton [N]ext, bouton [U]nlock, bouton [L]angue, [T]hermomètre, bouton [S]top. Ceci est aussi l'ordre par défaut. Les lettres qui ne sont pas utilisées dans cette instruction sont ajoutées par le compilateur, dans cet ordre par défaut, après les boutons déclarés.BNULTS
# Button position
# Position des boutons (*)
=LEFT | CENTER | RIGHTPosition des boutons directionnels sur la page.LEFT
# Top button position
# Position des boutons haut (*)
=LEFT | CENTER | RIGHTPosition des boutons directionnels au haut de la page (a préséance sur # Position des boutons).LEFT
# Bottom button position
# Position des boutons bas (*)
=LEFT | CENTER | RIGHTPosition des boutons directionnels au bas de la page (a préséance sur # Position des boutons).LEFT
(OBSOLÈTE)
# Thermometer
# Thermometre (*)
=0|1|2|51|52 , QUESTION1 , QUESTION2Localisation de la barre de progression : 0, pas de barre de progression; 1, à droite du titre de la page, exprimé en pourcentage; 2, à droite du bouton « Page suivante », exprimé en pourcentage; 51, à droite du titre de la page, exprimé en nombre d'écrans, 52, à droite du bouton « Page suivante », exprimé en nombre de questions.
QUESTION1 et QUESTION2 sont optionnelles; elles sont séparées par des virgules. Ce sont les noms de la première et de la dernière question utilisées adns le calcul du niveau de la barre de progression. Si seule QUESTION1 est identifiée, QUESTION2 est la dernière question du questionnaire. Si ni l'une ni l'autre n'est identifiée, QUESTION1 est la première question du questionnaire.
0
# Display thermometer
# Affiche thermometre (*)
=NONE | TOP | BOTTOM | AUCUN | HAUT | BAS, NUMBER | NOMBRE | PERCENT | POURCENTAGE | MUTE | MUET, QUESTION1, QUESTION2Position de la barre de progression.
  • NONE ou AUCUN, pas de barre de progression;
  • TOP ou HAUT, au haut, sous l'en-tête;
  • BOTTOM ou BAS, à droite du bouton « Page suivante ».
Après une virgule,
  • PERCENT ou POURCENTAGE pour exprimer la progression comme un pourcentage;
  • NUMBER ou NOMBRE pour l'exprimer comme un nombre de questions;
  • MUTE ou MUET pour ne pas mettre de texte à droite de la barre.
QUESTION1 et QUESTION2 sont optionnelles; elles sont séparées par des virgules. Ce sont les noms de la première et de la dernière question utilisées adns le calcul du niveau de la barre de progression. Si seule QUESTION1 est identifiée, QUESTION2 est la dernière question du questionnaire. Si ni l'une ni l'aitre n'est identifiée, QUESTION1 est la première question du questionnaire. QUESTION1 et QUESTION2 peuvent aussi être des substitutions qui retourneront le nom d'une question lors de l'exécution du questionnaire.
NONE
# Stop button
# Bouton stop (*)
=no|yes|[condition], question|substitution
non|oui|[condition], question|substitution
Détermine si un bouton d'interruption est affiché. Si oui ou si la condition d'affichage entre crochets est vraie, un second argument suit une virgule : il s'agit du nom d'une question vers laquelle le participant est redirigé après avoir cliqué sur le bouton ou l'image Stop, ou une substitution qui produira un nom de question lors de l'exécution du questionnaire.no
# Thermometer text
# Texte thermometre (*)
=texteTexte affiché au-dessus de la barre de progression. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Progression dans le questionnaire
# Thermometer colour
# Couleur thermometre (*)
=#FFFFFFCouleurde la barre de progression.# M_ColumnTitleColour
# Thermometer width
# Largeur thermometre (*)
=pixelsNombre de pixels utilisé pour la largeur de la barre de progression.200
# Thermometer height
# Hauteur thermometre (*)
=pixelsNombre de pixels utilisés pour la hauteur de la barre de progression.10
# Thermometer border width
# Largeur bordure thermometre (*)
=pixelsNombre de pixels de la bordure de la barre de progression.1
# Thermometer border colour
# Couleur bordure thermometre (*)
=#FFFFFFCouleur de la bordure de la barre de progression.#CCCCCC
# Thermometer gap width
# Largeur espace thermometre (*)
=pixelsNombre de pixels de l'écart entre la bordure de la barre de progression et la barre de progression elle-même.1
# Thermometer gap colour
# Couleur espace thermometre (*)
=#FFFFFFCouleur de l'écart entre la bordure de la barre de progression et la barre de progression elle-même.#FFFFFF
# Second line of buttons
# Seconde ligne de boutons (*)
=yes|noContrôle l'affichage d'une ligne de texte sous les boutons et la barre de progression. Peut être utilisée pour attacher des options « alt » et « title » aux boutons de navigation tout en évitant d'afficher le texte équivalent sous les boutons.Yes
# Image left
# Image gauche (*)
=nom de fichierNom du fichier conte Contraindre la longueur des reponsesnant l'image utilisée pour le bouton « Page précédente ». Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Image right
# Image droite (*)
=nom de fichierNom du fichier contenant l'image utilisée pour le bouton « Page suivante ». Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Submit image
# Image submit (*)
=nom de fichierNom du fichier contenant l'image utilisée pour le bouton « Page suivante » pour les questions de type SUBMIT. Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Language image
# Image langue (*)
=nom de fichierNom du fichier contenant l'image à utiliser pour le bouton de langue. Le chemin doit être précisé. Sans cette précision, un bouton HTML est produit. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Image stop=nom de fichierNom du fichier contenant l'image utilisée pour le bouton « Stop ». Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Image unlock=nom de fichierNom du fichier contenant l'image utilisée pour le bouton « Unlock ». Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Radio button suffix (retired)
# Suffixe des boutons radios (retiré) *
=texteSuffixe ajouté aux noms des fichiers d'images servant à remplacer les boutons radios et les boîtes à cocher. Les substitutions sont honorées.. Les fichiers d'images peuvent résider dans le répertoire de projet ou dans le répertoire de ressources (gr/). Les types d'images suivants sont recherchés (dans cet ordre : png, gif, jpg. Idéalement, les images devraient être des carrés de 12 à 15 pixels de côté. Huit images doivent être définies dans un jeu : cboxCheckedDisabled, cboxDisabled, cboxChecked, cbox, radioCheckedDisabled, radioDisabled, radioChecked, radio (p.ex., cboxCheckedDisabledGREEN.png). Les jeux suivants sont pré-définis : BLUE, GREEN, PURPLE, RED, YELLOWaucun
# Radio button directory
# Repertoire des boutons radios *
=texteRépertoire où les images de boutons radios et de boîtes à cocher se trouvent (voir # Suffixe des boutons radios). Ce doit être un sous-répertoire de la racine de l'instance. Les substitutions sont honorées..gr/
CONTRÔLE DE L'APPARENCE (messages)
# Mandatory question
# Question obligatoire (*)
=texte HTMLInsère le texte HTML après la question ou la note d'une question obligatoire (qui comporte un nombre minimal de réponses plus grand que zéro). Le texte peut utiliser du code HTML tel que <SPAN CLASS=ERREUR>*</SPAN>. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
(OBSOLÈTE)
# General error message
# Message erreur general (*)
=texteTexte affiché au haut d'une page qui comporte une erreur. Les codes HTML sont interprétés et le texte est entièrement encadré par le style .ERREUR. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Des données incomplètes ou erronées ont été identifiées sur cette page. Veuillez vérifier ci-dessous.
# Demo message
# Message demo (*)
=texteTexte affiché au haut de chaque page lorsque le système fonctionne en mode démonstration (et ne sauve pas de données). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.MODE DÉMONSTRATION. Aucune réponse ne sera enregistrée.
# Frozen data message
# Message donnees figees (*)
=texteTexte affiché au haut de chaque page lorsque les données sont figées par # Figer les donnees si (pas de modification de données). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Les données de ce dossier sont figées. Aucun changement ne sera enregistré.
# System message [message number]
# Message du systeme [numéro du message] (*)
= Redéfinit les messages systèmes et en permet une gestion précise. « [numéro du message] » doit être le numéro du message système à modifier. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Enforce response length
# Contraindre la longueur des reponses (*)
=oui|nonLimite le nombre de caractères saisis dans une réponse alpha-numérique multi-ligne au nombre défini dans le fichier .scw (en autant que JavaScript soit activé dans le navigateur du participant). Aussi, détermine si CallWeb produit un message d'erreur si une réponse alpha-numérique multi-ligne est plus longue que la taille de la partie ouverte prévue dans le questionnaire.non
CONTRÔLE DE L'APPARENCE (page du code d'accès)
# Access page header=yes|no
oui|non
Détermine s'il faut afficher l'en-tête sur la page de demande de code d'accès.oui
# Access page footer=yes|no
oui|non
Détermine s'il faut afficher le pied de page sur la page de demande de code d'accès.oui
# Access request telkey=texteTexte affiché avant la boîte de saisie du code d'accès lorsqu'aucun code d'accès n'est offert. Les codes HTML sont interprétés. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<P ALIGN=CENTER>Votre code d'accès, s'il-vous-plaît</P>
# Access give telkey=texteTexte affiché avant la boîte de saisie sur la page de demande de code d'accès (quand un nouveau code a été offert) Les codes HTML sont interprétés. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align="center">Votre code d'accès est <B>{$_telkey}</B>.<BR>Transcrivez-le pour pouvoir accéder à vos réponses à l'avenir.</p>
# Access send telkey button=texteTexte sur le bouton Envoyer de la page de demande de code d'accès. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Envoyer
# Access send telkey image=nom de fichierNom du fichier contenant l'image utilisée pour le bouton Envoyer de la page de demande de code d'accès. Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Access no telkey button=texteTexte du bouton « Je n'ai pas de code d'accès » de la page de demande de code d'accès (# Type enquete = Ouvert Offert). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Si vous n'avez pas de code d'accès, cliquez ici
# Access bad telkey=texteTexte affiché quand un code d'accès incorrect est fourni (# Type enquete = Ferme ou Ouvert Offert). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align="center" class="erreur">Le code d'accès fourni (<EXECUTE>$formdata{_telkey}</EXECUTE>) n'est pas valide.</p>
# Access bad telkey 7=texteTexte affiché quand un code d'accès ou un mot de passe incorrect est fourni (# Type enquete = Mot de passe). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align="center" class="erreur">Cette combinaison de code d'accès (<EXECUTE>$formdata{_telkey}</EXECUTE>) et de mot de passe n'est pas valide.</p>
# Access request access code in type 3=texteTexte affiché en # Type enquete = Ouvert Combinaison pour demander un code d'accès (les règles de construction du code pourraient être incluses dans ce texte). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\">Votre <b>code d'accès</b>, s'il-vous-plaît.<br />Si vous n'avez pas encore de code d'accès, veuillez en créer un.</p>
# Access request password in type 3=texteTexte affiché en # Type enquete = Ouvert Combinaison pour demander un mot de passe (les règles de construction du mot de passe pourraient être incluses dans ce texte). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\">Votre <b>mot de passe</b>, s'il-vous-plaît.<br />Si vous n'avez pas encore de mot de passe, veuillez en créer un.</p>
# Access bad combination in type 3=texteTexte affiché sur identification d'un mauvais mot de passe pour un code d'accès existant en # Type enquete = Ouvert Combinaison. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\" class=\"erreur\">Ce code d'accès existe déjà ou la combinaison du code et du mot de passe est invalide.</p>
# Access bad telkey pattern in type 3=texteTexte affiché sur identification d'un code d'accès qui ne se conforme pas au # Access telkey pattern. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\" class=\"erreur\">Le code d'accès ne respecte pas le patron attendu.</p>
# Access bad password pattern in type 3=texteTexte affiché sur identification d'un code d'accès qui ne se conforme pas au # Access pasword pattern. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\" class=\"erreur\">Le mot de passe ne respecte pas le patron attendu.</p>
# Access request password in type 7 (*)=texteTexte affiché en # Type enquete = Mot de passe pour demander un mot de passe. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<P ALIGN=CENTER>Vorte <B>mot de passe</B>, s'il vous plaît.</P>
# Access request new password in type 7 (*)=texteTexte affiché en # Type enquete = Mot de pase pour offrir de saisir un nouveau mot de passe. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align="center">Si vous voulez changer votre <b>mot de passe</b>, fournissez le mot de passe existant ci-haut, puis saisissez deux fois le nouveau mot de passe ci-dessous.</p>
# Access bad telkey pattern in type 7 (*)=texteTexte affiché sur identification d'un mot de passe qui ne se conforme pas au # Access telkey pattern. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\" class=\"erreur\">Le mot de passe ne respecte pas le patron attendu.</p>
# Access telkey pattern=expression régulièreExpression régulière décrivant le patron des codes d'accès acceptables en # Type enquete = Ouvert Combinaison. Ne pas inclure les obliques ouvrant et fermant mais échapper l'expression conformément aux règles de Perl. CallWeb prend pour acquis que l'expression régulière débute par ^ et se termine par $ — c'est-à-dire que le code d'accès entier doit se conformer au patron..+
# Access password pattern=expression régulièreExpression régulière décrivant le patron des mots de passe acceptables en # Type enquete = Ouvert Combinaison. Ne pas inclure les obliques ouvrant et fermant mais échapper l'expression conformément aux règles de Perl. CallWeb prend pour acquis que l'expression régulière débute par ^ et se termine par $ — c'est-à-dire que le mot de passe entier doit se conformer au patron..+
CONTRÔLE DE L'APPARENCE (relation)
# Text relation add=textePour une question RELATION, texte affiché sur le bouton permettant d' ajouter un enfant. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Ajouter
# Text relation refresh=textePour une question RELATION, texte affiché sur le bouton permettant de mettre la page à jour. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Mettre à jour
# Text relation delete=textePour une question RELATION, texte affiché sur le bouton permettant d'effacer un enfant. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Effacer (effet immédiat)
# Text relation modify=textePour une question RELATION, texte affiché sur le bouton permettant de modifier un enfant. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Modifier
CONTRÔLE DE L'APPARENCE (CATI et robot)
# Read
# Lire
=texteTexte inséré avant l'étiquette de la catégorie de réponse comportant un code de comportement L. Peut contenir du code HTML.<img src="gr/lire.gif">&nbsp;
# Do not read
# Ne pas lire (*)
=texteTexte inséré avant l'étiquette de la catégorie de réponse comportant un code de comportement P. Peut contenir du code HTML.<img src="gr/nepaslire.gif">&nbsp;
# Display min max
# Affiche min max (*)
=yes|no
oui|non
Détermine si les nombres minimum et maximum de réponses sont affichées dans le champ de note.non
# Robot caller id=numéro de téléphoneNuméro de téléphone affiché par le robot IVR.aucune
# Robot caller id text=texteTexte affiché par le robot IVR.aucune
# Caller id=numéro de téléphoneNuméro de téléphone affiché par le serveur Asterisk plaçant des appels au nom des interviewers.aucune
# Caller id text=texteTexte affiché par le serveur Asterisk plaçant des appels au nom des interviewers.aucune
AUTRE
# No deep mobile check (*)=oui|nonSaute la vérification approfondie des appareils mobiles avec le module BrowserDetect.non
## texteCommentaire; éliminé lors de la compilation.aucune
#> texteLigne de continuation. Le texte de cette ligne est ajouté à celui de la ligne précédente.aucune

* Cette valeur est utilisée par CallWeb à l'interne.

Annexe A

Instructions dièses

Les instructions dièses contrôlent divers éléments du comportement de CallWeb. Elles débutent par un dièse (#) qui peut être précédé par des espaces ou des marques de tabulation pour plus de clarté. Une instruction dièse donnée peut être séparée sur plus d'une ligne en commençant la seconde et les suivantes par un dièse suivi d'un signe « plus grand que » (#>); cette combinaison peut être précédé par des espaces ou des marques de tabulation.

Instruction SyntaxeExplicationValeur par défaut
OBLIGATOIRE
# Available languages
# Langues disponibles (*)
=EN,FRListe des langues disponibles dans le questionnaire. Les langues sont indiquées en utilisant les codes de langue ISO 639-1 à deux caractères.aucune
# Default language
# Langue par defaut (*)
=ENLangue par défaut utilisée quand aucune langue ou une langue inexistante est précisée. Ce doit être l'une des langues identifiées dans # Langues disponibles.aucune
# Survey type
# Type enquete (*)
=code
  • Open | Ouvert = entièrement ouvert, pas de fourniture de code d'accès (était 1)
  • Closed | Ferme = accès contrôlé; les données doivent être prépeuplées (était 2)
  • Open Combination | Ouvert Combinaison = entièrement ouvert; un code d'usager et un mot de passe sont sélectionnés par le participant (était 3)
  • Open Offered | Ouvert Offert = entièrement ouvert, fourniture d'un code d'accès pour retour dans le questionnaire (était 5)
  • Password | Mot de passe = accès contrôlé comme Ferme avec en plus un mot de passe chiffré (était 7). Une recette décrit ce système en détail.
aucune
STRUCTURE
# Group ID
# Ecran ID (*)
=Qm-QnLes questions entre Qm et Qn, incluant Qm et Qn, sont affichées sur une seule page.aucune
# Table ID
# Matrice ID (*)
=Q1-Q2 ENTETE=n PIXELS=n COLVARS=n POSITION=x FORCE_CODES TRANSPOSE SPECIAL=(n,...) COIN=(...) VALIDATIONLes questions entre Qm et Qn, incluant Qm et Qn, sont affichées en tableau. L'en-tête du tableau est répétée à toutes les ENTETE lignes; les colonnes sont larges de PIXELS pixels; il y a COLVARS questions à la verticale. La POSITION peut être LEFT|GAUCHE (la valeur par défaut), CENTRE ou RIGHT|DROITE. Détails.aucune
# Permutation ID=Qm-Qn PAS=n LIMITE=n COMME=permutationLes questions entre Qm et Qn, incluant Qm et Qn, sont affichées en ordre aléatoire et seulement LIMIT blocs de PAS questions sont retenus. COMME est le nom d'une autre permutation qui contrôle l'ordre de celle-ci. Détails.aucune
# New question order
# Nouvel ordre de questions (*)
=listes de noms de questions délimitées par des virgules; les listes sont délimitées par des barres obliquesRéordonne les questions définies dans le questionnaire; il peut y avoir plusieurs listes de réordonnancement qui sont séparées par des barres obliques. Chaque liste est constituée d'un nombre arbitraire de questions séparées par des virgules et présentées dans le nouvel ordre de traitement dans le questionnaire. Cette instruction facilite l'usage généralisé de la syntaxe par SUFFIXE. Par exemple : # Nouvel ordre de questions = Q3, Q2, Q1 / Q14, Q16, Q15. Comme pour toutes les instructions dièses, seulement une instruction de ce type (la dernière du fichier .scw) est active dans le questionnaire.aucune
# Deactivate pages
# Desactiver les pages (*)
=yes|no
oui|non
Détermine si CallWeb utilise ou non les instructions ECRAN (GROUP) et MATRICE (TABLE) dans le questionnaire. Pourrait server à linéariser un questionnaire pour des fins de CATI.non
(OBSOLÈTE)
# Note segment
# Segment note (*)
=yes|no
oui|non
Détermine si le texte de la NOTE est présenté dans son propre segment dans le fichier .scw (par opposition à l'ancienne syntaxe utilisant [NOTE] dans le texte de la question)oui
(OBSOLÈTE)
# Rotations on RO
# Rotations sur RO (*)
=yes|no
oui|non
Détermine si deux variables RO agissent comme bornes d'une permutation de questions. Cette instruction devrait être laissée à « non »; elle existe pour fins de compatibilité arrière.non
# INDEX=Liste de questionsListe délimitée par des virgules de questions exigeant un index dans la base de données. Les parties ouvertes doivent être accompagnées du nombre de caractères à indexer entre parenthèses (p.ex., AQ1(20)).non
# Create View ID
=Énoncé SQLÉnoncé SELECT en SQL pour extraire quelque sous-ensemble de données de la base de données CallWeb pour utilisation dans une autre application. ID doit être unique dans le questionnaire.aucune
ACCÈS (général)
# cwNav read password
# Mot de passe cwNav lecture (*)
=mot de passeMot de passe pour la lecture de données dans les programmes utilitaires.aucune
# cwNav write password
# Mot de passe cwNav ecriture (*)
=mot de passeMot de passe pour la modification de données dans les programmes utilitaires.aucune
# cwextr zip password (*)=mot de passeMot de passe utilisé pour chiffrer les fichiers extraits dans un zip (espaces comprimés à l'utilisation).aucune
# cwcompile zip password (*)=mot de passeMot de passe utilisé pour chiffrer les informations sauvegardées par cwcompile dans un zip (espaces comprimés à l'utilisation).aucune
# cwarchive zip password (*)=mot de passeMot de passe utilisé pour chiffrer les données extraites par cwarchive.pl dans un zip (espaces comprimés à l'utilisation).aucune
# cwemail password
# Mot de passe cwemail (*)
=mot de passeMot de passe exigé pour envoyer des messages courriels par cwemail.aucune
# Return permitted
# Retour permis (*)
=yes|no
oui|non
Détermine si on peut retourner dans une entrevue complétée.non
# Password change in type 7
# Changement de mot de passe en type 7 (*)
=yes|no
oui|non
Détermine si l'usager se fait offrir la possibilité de changer de mot de passe en Type enquete Mot de passe.oui
# Seconds locked
# Secondes de verrou (*)
=# de secondesNombre de secondes durant lesquelles un questionnaire est réservé à l'usager actif.0
# Language switch
# Changement de langue (*)
=yes|no
oui|non
Détermine si l'usager peut changer de langue une fois le questionnaire débuté.oui
# Telkey pattern=patronPatron utilisé pour la création de codes d'accès (_telkey) : combinaison de [C]onsonnes, [V]oyelles, [L]ettres, [N]ombres, [S]pecial et [?] pour tous ces caractères. Tout autre caractère est inséré tel quel. Chaque caractère du patron est remplacé par un caractère dans le code d'accès. Les substitutions sont honorées.CVCVCVN
# use_telkey_table=yes|no
oui|non
Ajuste l'instruction d'installation use_telkey_table projet par projet (nécessaire pour que BASEpretest fonctionne correctement). « Oui » dans cette instruction ne fonctionne que si l'option d'installation est déjà fixée à « oui ».oui
# Visible from
# Visible depuis (*)
=liste de répertoiresListe délimitée par des virgules de répertoires d'utilitaires qui peuvent accéder aux données du projet. Le répertoire utilitaire maître (défini par l'option de configuration « repertoire_utilitaire_maitre ») a accès à tous les projets.aucune
# Accessible by
# Accessible par (*)
=liste d'usagersListe délimitée par des virgules d'usagers ayant accès au projet selon les spécifications de leurs permissions « Accessible par » définis dans cwperm.cgi.none
# Noreturn condition
# Condition de non retour (*)
=condition logiqueCondition logique xBase ou Perl (entre accolades) indiquant quand on ne peut plus ré-accéder à un dossier — si l'instruction « # Retour permis » a été fixée à non. Si un participant a dépassé la dernière question et que « # Retour permis » vaut non, le retour est interdit; de même si « # Condition de non retour » est vraie; ceci permet de contrôler le retour sans insister pour que les participants quittent le questionnaire (présumément, vers une page statique de remerciement).aucune
# Control by cookie
# Controle par cookie (*)
=yes|no(dans callweb.cgi seulement; ne fonctionne pas dans cwx.cgi) Active le système de contrôle d'accès par fichier témoin (cookie) qui prévient la création d'un second questionnaire par un certain fureteur d'un certain ordinateur dans le contexte d'un projet ouvert. L'instruction n'a pas d'effet pour les autres types de questionnaires (à accès contrôlé).no
# Deny access if
# Nier acces si (*)
=condition logiqueCondition logique xBase ou Perl (entre accolades) indiquant quand des dossiers ne peuvent pas être ouverts. La condition peut utiliser toute information du questionnaire ainsi que tout élément de contexte comme la date et l'heure.aucune
# Freeze data if
# Figer les donnees si (*)
=condition logiqueCondition logique xBase ou Perl (entre accolades) indiquant quand les données au dossier ne peuvent plus être modifiées. La condition peut utiliser toute information du questionnaire ainsi que tout élément de contexte.aucune
# Allow new in open combination=yes|noEn mode Ouvert Combinaison, accepte ou refuse la création de nouveaux dossiers sur la base de nouveaux _telkeys fournis par le participant.oui
# Auto submit=condition logiquecondition logique xBase ou Perl (entre accolades) indiquant si CallWeb soumet automatiquement la page de questionnaire sur sélection d'une réponse. Ceci est disponible seulement dans les pages qui ne contiennent qu'une seule question ne permettant qu'une seule sélection (type bouton radio); ce n'est pas disponible si une catégorie de réponse comporte une partie ouverte.aucune
# Master compilation server
# Serveur maitre de compilation (*)
=nom du serveurNom du serveur qui a la permission de compiler le script. Le nom du serveur est défini dans une option de configuration. Cette instruction exige que l'option d'installation control_by_other_server_possible soit fixée à yes.aucune
# Master codes=liste de codes délimitée par des virgulesChacun de ces mots de passe donne accès au questionnaire par le module callweb.cgi (ou cwx.cgi). Aucun accès n'est possible sans fournir un de ces codes.aucune
# 2FA=[EMAILQUESTION]nom d'une question EMAIL
[EMAILADDRESS]nom de la partie ouverte d'une question contenant l'adresse courriel du répondant
[CODEPATTERN]patron de code
[STORECODE]nom de la partie ouverte d'une question STOCK où le code aléatoire est enregistré
[COLLECTCODE]nom de la question utilisée pour saisir le code aléatoire
[FROM]adresse d'envoi
Si cette instruction existe, avant d'afficher toute page, CallWeb vérifie que le fichier témoin 2FA existe. Dans le cas contraire, un message est envoyé en utilisant le texte de EMAILQUESTION (qui doit contenir un rappel de la partir ouverte de la question STORECODE) à l'adresse stockée dans EMAILADDRESS. L'option CODEPATTERN suit la convention de « # Telkey pattern ». Les questions STORECODE et COLLECTCODE doivent include une partie ouverte de type C. Le répondant voir la question COLLECTCODE où doit être saisi le code reçu par courriel. Une fois le code saisi, le répondant est retourné à la page qui aurait été affichée s'il n'y avait pas de 2FA. Une recette décrit ce système en détail.aucune
ACCÈS (lecteurs d'écrans)
# Question Framing
# Encadrement des questions (*)
=legend | pPrécise si le texte des questions est encadré par des bornes <p></p> ou <legend></legend>legend
# Table of contents of errors
# Table des matieres des erreurs (*)
=deux|access|regulier|aucunAffiche une table des matières des erreurs au haut de la page, selon le mode d'affichage.aucun
# Focus on error=premiere|generalSi une page provoque une erreur, détermine où le focus sera placé, soit sur la première erreur ou sur le message d'erreur général.general
ACCÈS (CATI et robot)
# Supervisor password
# Mot de passe des superviseurs (*)
=mot de passeMot de passe utilisé par les superviseurs pour avoir accès aux fonctions de gestion de la file d'attente d'appels.aucune
# Master CATI server
# Serveur maitre pour le CATI (*)
=nom du serveurNom du serveur qui a la permission de gérer la composante CATI d'un projet. Le nom du serveur est défini dans une option de configuration.aucune
# Maximum interviewers=nombreNombre maximum d'interviewers permis à la fois dans un projet.999999
# Linear CATI mode=yes|no
oui|non
En mode CATI, par défaut, les questionnaires sont affichés dans une seconde fenêtre de fureteur alors que l'écran de gestion du dossier par l'interviewer demeure ouvert. Fixer « # Linear CATI mode » à oui fait en sorte que le questionnaire remplace l'écran de gestion de dossier et qu'un bouton est affiché dans le questionnaire pour retourner à la gestion de l'appel.non
# Cati=yes|no|ivr
oui|non|ivr
Détermine si un projet CallWeb doit être géré comme un projet CATI ou comme un projet IVR. Les projets CATI ont des exigences particulières qui sont validées lorsque cette option est activée. Une valeur par défaut peut être définie dans le fichier de configuration de l'instance en utilisant le mot-clef « cati » (minuscules).non
ACTION (général)
# Include=nom de fichierInsère le contenu du fichier à cet endroit dans le script, avant compilation. Si le nom du fichier ne comporte pas de chemin, le fichier doit être placé dans le répertoire du fichier .scw appelant; un chemin relatif à la racine de l'instance CallWeb peut être fourni, p.ex., cw/file.inc. Les fichiers inclus peuvent eux-mêmes contenir des énoncés Include. En utilisant Include, on peut partager des portions de questionnaires entre scripts.aucune
# Test ID=[SUR]... [CONDITION]... [MESSAGE]... [TYPE]...Applique le test d'erreur CONDITION sur réception d'une valeur pour SUR; si CONDITION est vraie, retourne un MESSAGE d'erreur là où TYPE l'indique. Détails.aucune
# Recall ID
# Rappel ID
=texte rappelé
ou
[condition]texte rappelé
Crée une valeur qui peut être rappelée en utilisant la syntaxe &#ID. Voir la page sur les rappels pour les détails. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Default JavaScript to
# JavaScript par defaut
=yes|no
oui|non
Détermine s'il faut considérer JavaScript actif avant de recevoir l'information du poste client.oui
# Load JavaScript Library=yes|no
oui|non
Détermine si les librairies JavaScript (Mootools et Highcharts) sont chargées pour les pages de questionnaires.oui
(OBSOLÈTE)
# Email
# Courriel (*)
=adresse de courrielAdresse de courriel qui recevra chacun des questionnaires complétés. Séparer plusieurs adresses par des virgules.aucune
# Default cwemail email
# cwemail email par defaut (*)
=adresse de courrielAdresse de courriel par défaut utilisée comme origine dans cwemail. Peut être changée dans l'interface cwemail.aucune
# Default cwemail sender
# cwemail envoyeur par defaut (*)
=adresse de courrielAdresse de courriel par défaut utilisée techniquement comme envoyeur du message (plutôt que comme le champ « De » du message). Peut être changée dans l'interface cwemail. Cette information est utilisée par le serveur de réception pour évaluer les risques que le message constitue un pourriel. Ce devrait être une adresse livrable sur le serveur d'envoi.aucune
# cwemail report to (*)=adresse de courrielAdresse de courriel à laquelle le rapport de cwemail.cgi en mode turbo est envoyé.administrateur du système
# convert email subject (*)=oui|non
yes|no
Détermine si le sujet des courriels sera converti à UTF-8. Tester avant utilisation.Oui
# List Unsubscribe (*)=URL de désinscriptionURL par défaut pour accéder au système de désinscription du questionnaire. Voir la recette correspondante.none
# Send extractions to
# Envoyer extractions a (*)
=adresse de courrielAdresse de courriel pouvant recevoir des extractions de cwextr. Séparer plusieurs adresses par des virgules.aucune
# cwextr copy directory
# repertoire sauvegarde cwextr (*)
=(répertoire local)Nom d'un répertoire local offert par défaut dans cwextr comme endroit où placer une copie d'une extraction.aucune
# Extraction width
# Largeur extraction (*)
=ncolonnesLargeur d'extraction par défaut pour les questions fermées.4
# Minimal extraction width
# Extraction de largeur minimale (*)
=oui|nonSi fixé à oui, les extractions de données utilisent le plus petit nombre de colonnes requis pour représenter les données.non
# Refuse duplicates in cwprepop
# Rejeter les doublons dans cwprepop (*)
=liste de questionsListe de questions ou de variables systèmes (comme _telephone) délimitée par des virgules dont cwprepop s'assurera qu'elles ne contiennent pas de doublon. Les dossiers contenant des doublons ne sont pas prépeuplés et leur statut fait l'objet d'un rapport.aucune
# Send bounces to=adresse de courrielAdresse de courriel où CallWeb envoie les messages d'échec de livraison de courriels.
Si cette adresse est formattée comme bounces.*@domain.xxx, CalWeb reformatte l'adresse pour travailler de concert avec cwbounces.pl qui intercepte les messages d'échec de livraison.
aucune
# Check bounces against=AQnNom de la partie ouverte contenant les adresses de courriel auxquelles les invitations ont été envoyées (ou une liste délimitée par des virgules de parties ouvertes de la même longueur que celle de # Save bounces into). Cette valeur est utilisée par cwbounces.pl pour identifier le ou les enregistrements de la base de données qui sont associés à un échec de livraison. Cette valeur doit être spécifiée pour utiliser cwbounces.pl et la forme bounces.*@domain.xxx de l'instruction « # Send bounces to ».aucune
# Save bounces into=AQnNom de la partie ouverte contenant la date et l'heure des échecs de livraison reçus pour un dossier (ou une liste délimitée par des virgules de parties ouvertes de la même longueur que celle de # Check bounces against). Cette valeur doit être spécifiée pour utiliser cwbounces.pl et la forme bounces.*@domain.xxx de l'instruction « # Send bounces to ».aucune
# Complete case
# Dossier complet (*)
=expression logique SQLExpression logique décrivant un questionnaire complété. Ce doit être une expression SQL valide; aucune validation n'est effectuée sur sa syntaxe.aucune
# Cleaning skips
# Sauts nettoyants (*)
=yes|no
oui|non
Détermine si les sauts vers l'avant provoquent le nettoyage des données entre les bornes du saut.oui
# Save backwards
# Sauve a reculons (*)
=yes|no
oui|non
Détermine si les données sont sauvegardées lors du passage à la page précédente grâce au bouton de recul de CallWeb (pas le bouton du fureteur). Pour des raisons logiques, aucune validation des données n'est effectuée dans ce contexte.oui
# Url=urlURL vers laquelle le participant est acheminé au sortir du questionnaire. La valeur peut contenir des rappels. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple. En conséquence, différentes versions linguistiques peuvent être acheminées vers différentes URLs, comme dans # URL = [EN]http://yahoo.com[FR]http://yahoo.fr. Les substitutions sont honorées.aucune
# Attributable questions
# Questions attribuables (*)
=liste de questionsDéclare une liste de questions (dans la forme : Q1-Q5, Q7, Q8-Q10, ...) qui peut recevoir des valeurs à l'accès initial au dossier. Par exemple, prenant pour acquis que Q1 est une question attribuable et que abc est un projet de type ouvert, l'URL « callweb.cgi?_proj=abc&Q1=2 » crée un nouveau dossier dans la base de données et attribue la valeur 2 à la question Q1 — ceci fonctionne dans tous les types de projets.
Les règles sont : seules les questions faisant partie de la liste sont attribuables; seuls les dossiers vierges sont attribuables; seules les questions dont la valeur est vide sont attribuables (p.ex., une valeur prépeuplée ne peut pas être modifiée par cette procédure). Toutes les questions attribuables n'ont pas à être attribuées.
Notez que les noms des questions sont toujours en majuscules et que les URLs sont sensibles à la casse.
Souvenez-vous que, dans la séquence du questionnaire, toutes les questions, incluant les questions attribuables, sont sujettes à être affacées par des questions BLANK, des conditions d'affichage, des sauts, etc. Des sauts non nettoyants appropriés pourraient être nécessaires pour préserver les valeurs attribuées par ce protocole.
aucune
# Pretest=texte ou code HTMLCrée des hyperliens à BASEpretest et les affiche à côté de chaque question qui ne possède pas un type de question NOPRETEST. Si cet énoncé est défini et si BASEpretest existe, ces liens sont produits et affichent une nouvelle fenêtre contenant le formulaire de commentaires. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple. Voir la recette associée.aucune
# Pretest project
# Projet pretest (*)
=textNom du projet CallWeb utilisé par l'outil de # Pretest.BASEpretest
# Auto email=syntaxe complexe (voir la page sur les invitations par courriel )fournit les paramètres requis pour l'envoi automatique de courriels.aucune
# Stop  Pas de paramètre. Interrompt la compilation du questionnaire et ne tient pas compte des instructions qui suivent.s/o
# Execute if
# Executer si
=nom d'une question CALCUL ou liste de noms séparés par des obliques
ou
[condition]nom d'une question CALCUL ou liste de noms séparés par des obliques
Identifie une question CALCUL (ou une liste délimitée par des obliques de noms de questions CALCUL) qui est exécutée (possiblement, conditionnellement) avant d'afficher la page suivante. Cette instruction est évaluée après chaque page une fois que les réponses fournies sont validées et avant que l'affichage de la page suivante ne soit calculé. Voir la page sur les rappels pour les détails sur la syntaxe conditionnelle.aucune
# Always open at
# Toujours ouvrir a
=nom de questionIdentifie la question d'ouverture du questionnaire (peu importe sur quelle question le questionnaire a été quitté). Le mot-clef _AUDEBUT_ peut être utilisé.none
# Only for server ID
# Seulement pour le serveur ID (*)
=une autre instruction dièse« Seulement pour le serveur » est suivie du nom du serveur (défini dans le fichier de configuration) de l'instance de CallWeb, comme dans # Seulement pour le serveur ABC = # cati = yes. Cette instruction est suivie d'une autre instruction dièse qui est activée seulement sur le serveur nommé. Notez que les validations habituellement effectuées en cours de compilation ne sont pas faites sur la sous-instruction.aucune
# Copy questionnaire into
# Copier le questionnaire vers (*)
=localisation/répertoireEnvoie une copie d'un questionnaire compilé à un serveur CallWeb secondaire dans le contexte d'une configuration multi-serveur. Cette instruction inclut l'usager, le nom de domaine ou l'adresse IP du serveur cible et le répertoire de projet, comme dans
# Copier le questionnaire vers = qqusager@callweb.ca/var/www/html/qqrep/cwprojet
Cette instruction copie le fichier .qcw ainsi qu'un fichier .scw vide. Les clefs publiques doivent avoir été échangées entre les serveurs pour que cette intruction fonctionne. Plus d'une copie peut être spécifiée sous forme de liste délimitée par des virgules. Il est aussi possible de copier d'autres fichiers se trouvant dans le répertoire de projet en fournissant leur nom ou un patron dans la liste délimitée par des virgules, comme dans
# Copy questionnaire into = someuser@callweb.ca/var/www/html/somerep/cwproject, *.pdf, *.docx
ce qui copierait tous les fichiers pdf et docx du serveur de compilation vers le serveur distant.
aucune
# MySQL engine=nom de moteurPrécise quel moteur MySQL utiliser pour la base de données.aucune
# BASEclicks=yes|no
oui|non
Précise si le temps écoulé entre chaque page d'un questionnaire doit être enregistré dans BASEclicks.non
# General Upload Parms=dir = x, file = oui|non, min = m, max = n, extensions = ext1/ext2/...Fournit les paramètres utilisés par les questions ouvertes de type F (file upload): dir est le nom du répertoire où sont sauvegardés les fichiers téléversés, sous le répertoire du projet; file est une valeur oui|non indiquant si les fichiers sont sauvegardés dans le répertoire « dir » en plus de la base de données MySQL; min est le nombre minimum de bytes exigé d'un fichier téléversé (défault = zéro); max est le nombre maximum de bytes exigé d'un fichier téléversé (pas de défault); extensions est une liste délimitée par des obliques d'extensions permises (un astérisque indique que toutes les extensions sont acceptées).aucun
ACTION (CATI et robot)
# Use do not call list=yes|no
oui|non
Détermine s'il faut utiliser l'information du projet BASEdonotcall lors du prépeuplement d'un projet; contrôle aussi l'affichage de la boite-à-cocher d'exclusion des appels dans l'interface des interviewers.oui
# Do not call email=adresse de courrielAdresse de courriel à laquelle envoyer un avis d'ajout d'un numéro à la liste d'exclusion par un interviewer. Plusieurs adresses doivent être séparées par des virgules.aucune
# CATI selection 3=question, yes|no
question, oui|non
Spécifie qu'une certaine question agit comme troisième critère de sélection pour les interviewers en mode CATI. Le second paramètre indique si les interviewers peuvent changer la valeur de cette donnée à même leur interface de gestion des résultats d'appels.nom de question, aucune; action, OUI
# Productivity index=expression MySQLExpression MySQL calculant un indice de productivité des interviewers. Utilisée par cwprod.cgi. Voir aussi l'option d'installation productivity_index.ROUND((completes_first + 2*completes_norefusal + 5*completes_withrefusal - 3*refusals_first ) / duration,1)
# Close full quota
# Fermeture automatique des quotas atteints
=yes|no
oui|non
En mode CATI, contrôle l'activation du système de clôture automatique des quotas.oui
# Basic call management=yes|no
oui|non
En mode CATI, contrôle l'utilisation par le système de gestion de la file d'attente de simples listes déroulantes de délais ou de boîtes de valeurs.non
# Other n in cwsuper
# Autre n dans cwsuper **
=Expression MySQLExpression MySQL produisant un décompte depuis la base de données dans cwsuper.aucune
CONTRÔLE DE L'APPARENCE (page)
# Template
# Gabarit
=nom de fichierNom du fichier HTML utilisé comme gabarit pour le questionnaire. À moins que le fichier soit dans le répertoire de projet, le chemin du fichier doit être précisé. Sans cet énoncé, la page de questionnaire est bâtie selon la construction verticale classique. Une autre page de la documentation fournit des détails. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple. Les substitutions sont honorées.aucune
# Stylesheet=nom de fichierNom d'un fichier contenant les styles CSS spécifiques au projet courant. À moins que le fichier soit dans le répertoire de projet, le chemin du fichier doit être précisé. Sans cet énoncé, des règles de substitution s'appliquent. Les substitutions sont honorées.aucune
# Page_position=left|center|rightPosition de la zone du questionnaire CallWeb dans la fenêtre du fureteur.gauche
# Page_width
# Page_largeur (*)
=pixels|%Largeur de la zone du questionnaire CallWeb dans la fenêtre du fureteur. Elle peut être exprimée en pixels (un chiffre brut) ou en pourcentage de la taille de la fenêtre (un nombre avec un signe de pourcentage).100%
# Page_wire_pixels
# Page_fil_pixels (*)
=pixelsLargeur, en pixels, du fil séparant la zone du questionnaire CallWeb du reste de la fenêtre du fureteur.0
# Page_wire_colour
# Page_fil_couleur (*)
=#FFFFFFCouleur du fil séparant la zone du questionnaire CallWeb du reste de la fenêtre du fureteur.#FFFFFF
# Page_interior_colour
# Page_interieur_couleur (*)
=#FFFFFFCouleur de la zone du questionnaire CallWeb. La couleur de l'extérieur de cette zone est déterminée par la borne « body » de la feuille de styles css.#FFFFFF
# Background image
# Image de fond (*)
=url.gif|url.jpgImage à afficher en fond de la zone du questionnaire CallWeb.aucune
# Page_interior_margin_pixels
# Page_interieur_marge_pixels (*)
=2Largeur de l'espace séparant la zone du questionnaire du fil entourant le questionnaire.2
# Default N columns
# N colonnes par defaut (*)
=nombreNombre par défaut de colonnes de présentation des catégories de réponses. Cette valeur générale peut être ajustée question par question grâce à l'argument ncols de la ligne du nom de la question.1
# Radio button position
# Position du bouton radio (*)
=top | middle | bottomPosition verticale du bouton radio ou de la case à cocher en relation avec le texte de la catégorie de réponse dans l'affichage d'une question simple.top
# Header
# Entete (*)
=texteTexte affiché au haut de chaque page. Les codes HTML sont interprétés. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Footer
# Pied (*)
=texteTexte affiché au bas de chaque page. Les codes HTML sont interprétés. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Between questions
# Entre questions (*)
=yes|no
oui|non
Détermine s'il faut afficher une ligne horizontale entre chaque question.non
# HTML Title
# Titre HTML (*)
=texteTexte affiché dans la barre du fureteur en cours d'exécution du questionnaire. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple. Les substitutions sont honorées.aucune
# Title
# Titre (*)
=texteTitre du projet affiché au haut de la sortie de cwquestionnaire. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Display question names
# Affiche noms questions (*)
=yes|no
oui|non
Détermine si les noms de questions sont affichés à l'écran (outil de débogage).non
# Activate the mobile mode
# Activer le mode mobile (*)
=yes|no
oui|non
Détermine si les appareils mobiles affichent une page simplifiée.non
# Thousand separator
# Separateur de milliers (*)
=caractère(s)Précise quel(s) caractère(s) utiliser pour définir les groupes de milliers dans les valeurs numériques. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple._
CONTRÔLE DE L'APPARENCE (tableaux)
# M_CellColour
# M_CouleurCellules (*)
=#FFFFFFCouleur de l'intérieur des cellules des lignes impaires dans les tableaux.#FFFFFF
# M_CellColour2
# M_CouleurCellules2 (*)
=#FFFFFFCouleur de l'intérieur des cellules des lignes paires dans les tableaux.#FFFFFF
# M_SpecialColour
# M_CouleurSpeciale (*)
=#ACACACCouleur des codes SPECIAL des tableaux.#CCCCCC
# M_InteriorSpacing
# M_EspacementInterieur (*)
=nombreLargeur des marges intérieures dans les cellules de tableaux.3
# M_Borders
# M_Bordures (*)
=nombreLargeur des bordures des tableaux.1
# M_BorderColour
# M_CouleurBordures (*)
=#CCCCCCCouleur des bordures des tableaux.#FFFFFF
# M_ColumnTitleAlignment
# M_AlignementTitresColonnes (*)
=T|B|MAlignement des titres de colonnes dans leur cellule : T = top, B = bottom, M = Middle.B
# M_ColumnTitleColour
# M_CouleurTitresColonnes (*)
=#FFFFFFCouleur des cellules de titres de colonnes dans les tableaux.#666699
# M_LineTitleColour
# M_CouleurTitresLignes (*)
=#FFFFFFCouleur des titres de lignes impaires dans les tableaux.#CCCCCC
# M_LineTitleColour2
# M_CouleurTitresLignes2 (*)
=#FFFFFFCouleur des titres de lignes paires dans les tableaux.#FFFFFF
# M_ Cell highlighting
# M_ mise en evidence (*)
=#EEEEEECouleur de la mise en évidence des cellules dans les tableaux.Même que les en-têtes de colonnes
# Cell highlighting
# Mise en evidence des cellules (*)
=yes|no
oui|non
Active ou désactive la mise en évidence des cellules pour les catégories de réponse et les tableaux de questions.oui
# Styles for tables
# Styles pour matrices(*)
=yes|no
oui|non
Détermine si l'affichage des tableaux dépend des styles css.non
# M text position
# Position texte M (*)
=left | right
gauche | droite
Position, relativement au bouton radio ou à la case à cocher, du texte placé dans une cellule de tableau par le code de comportement M.droite
CONTRÔLE DE L'APPARENCE (boutons et barre de progression)
# Display language button
# Affiche bouton langue (*)
=
  • 0 ou NO ou NON
  • 1 ou TOP ou HAUT
  • 2 ou BOTTOM ou BAS
Localisation des boutons utilisés pour passer d'une langue à l'autre : aucun bouton, au haut, après le titre, ou au bas, avec les boutons de navigation.BAS
# Display back button
# Affiche retour arriere (*)
=yes|no
oui|non
Détermine si le bouton ou l'image « Page précédente » est affiché.non
# Page Error Image
# Image erreur page (*)
=nom de fichierIdentifie un fichier graphique utilisé pour mettre en évidence le message d'erreur de la page soumise. Si le nom du fichier ne comporte pas de chemin, le fichier doit être placé dans le répertoire du fichier .scw appelant; un chemin relatif à la racine de l'instance CallWeb peut être fourni, p.ex., cw/file.gif. Les substitutions sont respectées.gr/erreur_page.gif
# Field Error Image
# Image erreur champ (*)
=nom de fichierIdentifie un fichier graphique utilisé pour mettre en évidence un message d'erreur au niveau de la question. Si le nom du fichier ne comporte pas de chemin, le fichier doit être placé dans le répertoire du fichier .scw appelant; un chemin relatif à la racine de l'instance CallWeb peut être fourni, p.ex., cw/file.gif. Les substitutions sont respectées.gr/erreur_champ.gif
# Forward text
# Texte avance (*)
=texteTexte affiché sur le bouton HTML « Page suivante » ou sous l'image équivalente. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Prochaine question
# Submit text
# Texte submit (*)
=texteTexte affiché sur le bouton HTML « Page suivante » ou sous l'image équivalente pour les questions de type SUBMIT. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Soumettre
# Backwards text
# Texte recule (*)
=texteTexte affiché sur le bouton HTML « Page précédente » ou sous l'image équivalente. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Page précédente
# Unlock text
# Texte unlock (*)
=texeTexte affiché sur le bouton HTML « Unlock » ou sous l'image équivalente. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Sauver et quitter
# Stop text
# Texte stop (*)
=texteTexte affiché sur le bouton HTML « Stop » ou sous l'image équivalente. Le code HTML est interprété seulement sous le bouton par image. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Interrompre
# Button order bottom
# Ordre des boutons bas (*)
=lettres codesIdentifie l'ordre de présentation (de gauche à droite) des boutons et de la barre de progression au bas de chaque page du questionnaire. Les lettres indiquent la nature des bouton et l'ordre : bouton [B]ack, bouton [N]ext, bouton [U]nlock, bouton [L]angue, [T]hermomètre, bouton [S]top. Ceci est aussi l'ordre par défaut. Les lettres qui ne sont pas utilisées dans cette instruction sont ajoutées par le compilateur, dans cet ordre par défaut, après les boutons déclarés. L'apparition de certains de ces boutons est contrôlée par d'autres instructions dièses.BNULTS
# Button order top
# Ordre des boutons haut (*)
=lettres codesIdentifie l'ordre de présentation (de gauche à droite) des boutons et de la barre de progression au haut de chaque page du questionnaire. Les lettres indiquent la nature des bouton et l'ordre : bouton [B]ack, bouton [N]ext, bouton [U]nlock, bouton [L]angue, [T]hermomètre, bouton [S]top. Ceci est aussi l'ordre par défaut. Les lettres qui ne sont pas utilisées dans cette instruction ne sont pas considérées.aucune
(OBSOLÈTE)
# Button order
# Ordre des boutons (*)
=lettres codesIdentifie l'ordre de présentation (de gauche à droite) des boutons et de la barre de progression au bas de chaque page du questionnaire. Les lettres indiquent la nature des bouton et l'ordre : bouton [B]ack, bouton [N]ext, bouton [U]nlock, bouton [L]angue, [T]hermomètre, bouton [S]top. Ceci est aussi l'ordre par défaut. Les lettres qui ne sont pas utilisées dans cette instruction sont ajoutées par le compilateur, dans cet ordre par défaut, après les boutons déclarés.BNULTS
# Button position
# Position des boutons (*)
=LEFT | CENTER | RIGHTPosition des boutons directionnels sur la page.LEFT
# Top button position
# Position des boutons haut (*)
=LEFT | CENTER | RIGHTPosition des boutons directionnels au haut de la page (a préséance sur # Position des boutons).LEFT
# Bottom button position
# Position des boutons bas (*)
=LEFT | CENTER | RIGHTPosition des boutons directionnels au bas de la page (a préséance sur # Position des boutons).LEFT
(OBSOLÈTE)
# Thermometer
# Thermometre (*)
=0|1|2|51|52 , QUESTION1 , QUESTION2Localisation de la barre de progression : 0, pas de barre de progression; 1, à droite du titre de la page, exprimé en pourcentage; 2, à droite du bouton « Page suivante », exprimé en pourcentage; 51, à droite du titre de la page, exprimé en nombre d'écrans, 52, à droite du bouton « Page suivante », exprimé en nombre de questions.
QUESTION1 et QUESTION2 sont optionnelles; elles sont séparées par des virgules. Ce sont les noms de la première et de la dernière question utilisées adns le calcul du niveau de la barre de progression. Si seule QUESTION1 est identifiée, QUESTION2 est la dernière question du questionnaire. Si ni l'une ni l'autre n'est identifiée, QUESTION1 est la première question du questionnaire.
0
# Display thermometer
# Affiche thermometre (*)
=NONE | TOP | BOTTOM | AUCUN | HAUT | BAS, NUMBER | NOMBRE | PERCENT | POURCENTAGE | MUTE | MUET, QUESTION1, QUESTION2Position de la barre de progression.
  • NONE ou AUCUN, pas de barre de progression;
  • TOP ou HAUT, au haut, sous l'en-tête;
  • BOTTOM ou BAS, à droite du bouton « Page suivante ».
Après une virgule,
  • PERCENT ou POURCENTAGE pour exprimer la progression comme un pourcentage;
  • NUMBER ou NOMBRE pour l'exprimer comme un nombre de questions;
  • MUTE ou MUET pour ne pas mettre de texte à droite de la barre.
QUESTION1 et QUESTION2 sont optionnelles; elles sont séparées par des virgules. Ce sont les noms de la première et de la dernière question utilisées adns le calcul du niveau de la barre de progression. Si seule QUESTION1 est identifiée, QUESTION2 est la dernière question du questionnaire. Si ni l'une ni l'aitre n'est identifiée, QUESTION1 est la première question du questionnaire. QUESTION1 et QUESTION2 peuvent aussi être des substitutions qui retourneront le nom d'une question lors de l'exécution du questionnaire.
NONE
# Stop button
# Bouton stop (*)
=no|yes|[condition], question|substitution
non|oui|[condition], question|substitution
Détermine si un bouton d'interruption est affiché. Si oui ou si la condition d'affichage entre crochets est vraie, un second argument suit une virgule : il s'agit du nom d'une question vers laquelle le participant est redirigé après avoir cliqué sur le bouton ou l'image Stop, ou une substitution qui produira un nom de question lors de l'exécution du questionnaire.no
# Thermometer text
# Texte thermometre (*)
=texteTexte affiché au-dessus de la barre de progression. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Progression dans le questionnaire
# Thermometer colour
# Couleur thermometre (*)
=#FFFFFFCouleurde la barre de progression.# M_ColumnTitleColour
# Thermometer width
# Largeur thermometre (*)
=pixelsNombre de pixels utilisé pour la largeur de la barre de progression.200
# Thermometer height
# Hauteur thermometre (*)
=pixelsNombre de pixels utilisés pour la hauteur de la barre de progression.10
# Thermometer border width
# Largeur bordure thermometre (*)
=pixelsNombre de pixels de la bordure de la barre de progression.1
# Thermometer border colour
# Couleur bordure thermometre (*)
=#FFFFFFCouleur de la bordure de la barre de progression.#CCCCCC
# Thermometer gap width
# Largeur espace thermometre (*)
=pixelsNombre de pixels de l'écart entre la bordure de la barre de progression et la barre de progression elle-même.1
# Thermometer gap colour
# Couleur espace thermometre (*)
=#FFFFFFCouleur de l'écart entre la bordure de la barre de progression et la barre de progression elle-même.#FFFFFF
# Second line of buttons
# Seconde ligne de boutons (*)
=yes|noContrôle l'affichage d'une ligne de texte sous les boutons et la barre de progression. Peut être utilisée pour attacher des options « alt » et « title » aux boutons de navigation tout en évitant d'afficher le texte équivalent sous les boutons.Yes
# Image left
# Image gauche (*)
=nom de fichierNom du fichier conte Contraindre la longueur des reponsesnant l'image utilisée pour le bouton « Page précédente ». Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Image right
# Image droite (*)
=nom de fichierNom du fichier contenant l'image utilisée pour le bouton « Page suivante ». Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Submit image
# Image submit (*)
=nom de fichierNom du fichier contenant l'image utilisée pour le bouton « Page suivante » pour les questions de type SUBMIT. Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Language image
# Image langue (*)
=nom de fichierNom du fichier contenant l'image à utiliser pour le bouton de langue. Le chemin doit être précisé. Sans cette précision, un bouton HTML est produit. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Image stop=nom de fichierNom du fichier contenant l'image utilisée pour le bouton « Stop ». Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Image unlock=nom de fichierNom du fichier contenant l'image utilisée pour le bouton « Unlock ». Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Radio button suffix (retired)
# Suffixe des boutons radios (retiré) *
=texteSuffixe ajouté aux noms des fichiers d'images servant à remplacer les boutons radios et les boîtes à cocher. Les substitutions sont honorées.. Les fichiers d'images peuvent résider dans le répertoire de projet ou dans le répertoire de ressources (gr/). Les types d'images suivants sont recherchés (dans cet ordre : png, gif, jpg. Idéalement, les images devraient être des carrés de 12 à 15 pixels de côté. Huit images doivent être définies dans un jeu : cboxCheckedDisabled, cboxDisabled, cboxChecked, cbox, radioCheckedDisabled, radioDisabled, radioChecked, radio (p.ex., cboxCheckedDisabledGREEN.png). Les jeux suivants sont pré-définis : BLUE, GREEN, PURPLE, RED, YELLOWaucun
# Radio button directory
# Repertoire des boutons radios *
=texteRépertoire où les images de boutons radios et de boîtes à cocher se trouvent (voir # Suffixe des boutons radios). Ce doit être un sous-répertoire de la racine de l'instance. Les substitutions sont honorées..gr/
CONTRÔLE DE L'APPARENCE (messages)
# Mandatory question
# Question obligatoire (*)
=texte HTMLInsère le texte HTML après la question ou la note d'une question obligatoire (qui comporte un nombre minimal de réponses plus grand que zéro). Le texte peut utiliser du code HTML tel que <SPAN CLASS=ERREUR>*</SPAN>. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
(OBSOLÈTE)
# General error message
# Message erreur general (*)
=texteTexte affiché au haut d'une page qui comporte une erreur. Les codes HTML sont interprétés et le texte est entièrement encadré par le style .ERREUR. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Des données incomplètes ou erronées ont été identifiées sur cette page. Veuillez vérifier ci-dessous.
# Demo message
# Message demo (*)
=texteTexte affiché au haut de chaque page lorsque le système fonctionne en mode démonstration (et ne sauve pas de données). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.MODE DÉMONSTRATION. Aucune réponse ne sera enregistrée.
# Frozen data message
# Message donnees figees (*)
=texteTexte affiché au haut de chaque page lorsque les données sont figées par # Figer les donnees si (pas de modification de données). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Les données de ce dossier sont figées. Aucun changement ne sera enregistré.
# System message [message number]
# Message du systeme [numéro du message] (*)
= Redéfinit les messages systèmes et en permet une gestion précise. « [numéro du message] » doit être le numéro du message système à modifier. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Enforce response length
# Contraindre la longueur des reponses (*)
=oui|nonLimite le nombre de caractères saisis dans une réponse alpha-numérique multi-ligne au nombre défini dans le fichier .scw (en autant que JavaScript soit activé dans le navigateur du participant). Aussi, détermine si CallWeb produit un message d'erreur si une réponse alpha-numérique multi-ligne est plus longue que la taille de la partie ouverte prévue dans le questionnaire.non
CONTRÔLE DE L'APPARENCE (page du code d'accès)
# Access page header=yes|no
oui|non
Détermine s'il faut afficher l'en-tête sur la page de demande de code d'accès.oui
# Access page footer=yes|no
oui|non
Détermine s'il faut afficher le pied de page sur la page de demande de code d'accès.oui
# Access request telkey=texteTexte affiché avant la boîte de saisie du code d'accès lorsqu'aucun code d'accès n'est offert. Les codes HTML sont interprétés. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<P ALIGN=CENTER>Votre code d'accès, s'il-vous-plaît</P>
# Access give telkey=texteTexte affiché avant la boîte de saisie sur la page de demande de code d'accès (quand un nouveau code a été offert) Les codes HTML sont interprétés. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align="center">Votre code d'accès est <B>{$_telkey}</B>.<BR>Transcrivez-le pour pouvoir accéder à vos réponses à l'avenir.</p>
# Access send telkey button=texteTexte sur le bouton Envoyer de la page de demande de code d'accès. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Envoyer
# Access send telkey image=nom de fichierNom du fichier contenant l'image utilisée pour le bouton Envoyer de la page de demande de code d'accès. Le chemin doit être précisé. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.aucune
# Access no telkey button=texteTexte du bouton « Je n'ai pas de code d'accès » de la page de demande de code d'accès (# Type enquete = Ouvert Offert). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Si vous n'avez pas de code d'accès, cliquez ici
# Access bad telkey=texteTexte affiché quand un code d'accès incorrect est fourni (# Type enquete = Ferme ou Ouvert Offert). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align="center" class="erreur">Le code d'accès fourni (<EXECUTE>$formdata{_telkey}</EXECUTE>) n'est pas valide.</p>
# Access bad telkey 7=texteTexte affiché quand un code d'accès ou un mot de passe incorrect est fourni (# Type enquete = Mot de passe). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align="center" class="erreur">Cette combinaison de code d'accès (<EXECUTE>$formdata{_telkey}</EXECUTE>) et de mot de passe n'est pas valide.</p>
# Access request access code in type 3=texteTexte affiché en # Type enquete = Ouvert Combinaison pour demander un code d'accès (les règles de construction du code pourraient être incluses dans ce texte). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\">Votre <b>code d'accès</b>, s'il-vous-plaît.<br />Si vous n'avez pas encore de code d'accès, veuillez en créer un.</p>
# Access request password in type 3=texteTexte affiché en # Type enquete = Ouvert Combinaison pour demander un mot de passe (les règles de construction du mot de passe pourraient être incluses dans ce texte). Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\">Votre <b>mot de passe</b>, s'il-vous-plaît.<br />Si vous n'avez pas encore de mot de passe, veuillez en créer un.</p>
# Access bad combination in type 3=texteTexte affiché sur identification d'un mauvais mot de passe pour un code d'accès existant en # Type enquete = Ouvert Combinaison. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\" class=\"erreur\">Ce code d'accès existe déjà ou la combinaison du code et du mot de passe est invalide.</p>
# Access bad telkey pattern in type 3=texteTexte affiché sur identification d'un code d'accès qui ne se conforme pas au # Access telkey pattern. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\" class=\"erreur\">Le code d'accès ne respecte pas le patron attendu.</p>
# Access bad password pattern in type 3=texteTexte affiché sur identification d'un code d'accès qui ne se conforme pas au # Access pasword pattern. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\" class=\"erreur\">Le mot de passe ne respecte pas le patron attendu.</p>
# Access request password in type 7 (*)=texteTexte affiché en # Type enquete = Mot de passe pour demander un mot de passe. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<P ALIGN=CENTER>Vorte <B>mot de passe</B>, s'il vous plaît.</P>
# Access request new password in type 7 (*)=texteTexte affiché en # Type enquete = Mot de pase pour offrir de saisir un nouveau mot de passe. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align="center">Si vous voulez changer votre <b>mot de passe</b>, fournissez le mot de passe existant ci-haut, puis saisissez deux fois le nouveau mot de passe ci-dessous.</p>
# Access bad telkey pattern in type 7 (*)=texteTexte affiché sur identification d'un mot de passe qui ne se conforme pas au # Access telkey pattern. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.<p align=\"center\" class=\"erreur\">Le mot de passe ne respecte pas le patron attendu.</p>
# Access telkey pattern=expression régulièreExpression régulière décrivant le patron des codes d'accès acceptables en # Type enquete = Ouvert Combinaison. Ne pas inclure les obliques ouvrant et fermant mais échapper l'expression conformément aux règles de Perl. CallWeb prend pour acquis que l'expression régulière débute par ^ et se termine par $ — c'est-à-dire que le code d'accès entier doit se conformer au patron..+
# Access password pattern=expression régulièreExpression régulière décrivant le patron des mots de passe acceptables en # Type enquete = Ouvert Combinaison. Ne pas inclure les obliques ouvrant et fermant mais échapper l'expression conformément aux règles de Perl. CallWeb prend pour acquis que l'expression régulière débute par ^ et se termine par $ — c'est-à-dire que le mot de passe entier doit se conformer au patron..+
CONTRÔLE DE L'APPARENCE (relation)
# Text relation add=textePour une question RELATION, texte affiché sur le bouton permettant d' ajouter un enfant. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Ajouter
# Text relation refresh=textePour une question RELATION, texte affiché sur le bouton permettant de mettre la page à jour. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Mettre à jour
# Text relation delete=textePour une question RELATION, texte affiché sur le bouton permettant d'effacer un enfant. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Effacer (effet immédiat)
# Text relation modify=textePour une question RELATION, texte affiché sur le bouton permettant de modifier un enfant. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.Modifier
CONTRÔLE DE L'APPARENCE (CATI et robot)
# Read
# Lire
=texteTexte inséré avant l'étiquette de la catégorie de réponse comportant un code de comportement L. Peut contenir du code HTML.<img src="gr/lire.gif">&nbsp;
# Do not read
# Ne pas lire (*)
=texteTexte inséré avant l'étiquette de la catégorie de réponse comportant un code de comportement P. Peut contenir du code HTML.<img src="gr/nepaslire.gif">&nbsp;
# Display min max
# Affiche min max (*)
=yes|no
oui|non
Détermine si les nombres minimum et maximum de réponses sont affichées dans le champ de note.non
# Robot caller id=numéro de téléphoneNuméro de téléphone affiché par le robot IVR.aucune
# Robot caller id text=texteTexte affiché par le robot IVR.aucune
# Caller id=numéro de téléphoneNuméro de téléphone affiché par le serveur Asterisk plaçant des appels au nom des interviewers.aucune
# Caller id text=texteTexte affiché par le serveur Asterisk plaçant des appels au nom des interviewers.aucune
AUTRE
# No deep mobile check (*)=oui|nonSaute la vérification approfondie des appareils mobiles avec le module BrowserDetect.non
## texteCommentaire; éliminé lors de la compilation.aucune
#> texteLigne de continuation. Le texte de cette ligne est ajouté à celui de la ligne précédente.aucune

* Cette valeur est utilisée par CallWeb à l'interne.

   

Appendix B

Installation instructions

Server software requirements

CallWeb needs the following to be installed on the server:

  • Perl 5 (including the following modules: CGI, CGI::Carp, DB_File, DBI, Fcntl, File::Compare, File::Copy, File::Path, FileHandle, IO::Socket, locale, LWP::Simple, Net::FTP, Net::Telnet, POSIX, Time::HiRes, Time::Local, SOAP::Lite 1.08, Encode)
  • MySQL 4 or better
  • Berkeley DB
  • a Web server (tested with Apache 2 with mod_unique_id enabled)
  • Sendmail
  • (for dialer and robot operations) Asterisk, version 1.2 or better (and the Asterisk::AGI Perl module)

Questionnaire designer client station

The following software has proven very valuable in editing CallWeb .scw files:

  • TextPad is an extraordinary pure-text editor which offers a whealth of functions. In particular, it supports syntax highlighting which makes CallWeb .scw files much more readable. A TextPad syntax highlighting file is available for CallWeb. Alternatively, some like Notepad++ for which CallWeb has a basic syntax highlighting file as well.
  • KeyText is a fabulous keyboard and hot key mapper. For example, one can paste an entire CallWeb question definition by simply pressing a predetermined combination of keys.
  • the free RGBtoHEX provides an easy way to select colours and identify the corresponding hex code.
  • the free Pixie is a colour picker: point to a colour on screen and Pixie tells you the hex, RGB, HTML, CMYK and HSV values of that colour (the hex value can be copied to the paste buffer using a keycoard key combination). ColorZilla, a free Firefox extension implements a similar function, but it is available only within Firefox.
  • there are hundreds of useful Web applications. For example, http://gradcolor.com/ creates a gradient which is very useful to find different intensities of a given coulour (do this by requesting a gradient from that colour to white).

File locations

DirectoryContentNotesPermission
{master}Main access directorymandatory: callweb.cgi, cwroutine.pl
optional: cwx.cgi cwjscripts.js, cwAST.pl
read, execute (world)
{master}/grSystem graphic filesmandatory: collection of .gif files
optional: style.css (when no style.css exists in the project directory)
read, execute (world)
{master}/cw... (i.e., name starting with "cw" or "cw" only)Everything project-relatedmandatory: *.scw, *.qcw
optional: style.css (for all projects located in the same directory; the # Stylesheet instruction can specify a stylesheet for a particular project), navigation images, all files referenced by questionnaires in that directory (linked by cw.../file.xxx in the .scw file), project configuration file (named projectSOMETHING.conf)
 
Notes
(1) all directories named cw* are considered project directories
(2) .scw (raw questionnaire) files must be located in their respective cw directory for compilation purposes; once compiled, they may be deleted or moved
(3) several projects may cohabitate in the same cw* directory; they then share the style.css file
(4) prepopulation files (e.g., pop.tab) must be located in the directory of the project to which they contribute
read, write, execute (world)
{master}/{any name}CallWeb utilitiesoptional according to circumstances: cw.cgi, cwappels.pl, cwarchive.cgi, cwarchive.pl, cwautoemail.pl, cwbounces.pl, cwcheck.cgi, cwcompare.cgi, cwcompile.cgi, cwdestruction.cgi, cwdossier.cgi, cwedit.cgi, cwemail.cgi, cwextr.cgi, cwfreq.cgi, cwgen.cgi, cwnav.cgi, cwpermissions.pl, cwprepop.cgi, cwquestionnaire.cgi, cwstats.cgi, cwstats.pl, cwtelkeys.cgi, cwupdate.cgi, cwupdate.pl
for CATI installations: cwcodescati.cgi, cwgroupes.cgi, cwoutcomes.cgi, cwphone.cgi, cwphone.pl, cwprod.cgi, cwsuper.cgi, cwsuperimp.cgi, cwsuperpro.cgi, cwsuperpro.pl, cwdial.pl
for robot installations: cwrobot.pl (see complete robot installation instructions)
optional: style.css (controls the appearance of utilities, unless a project-related style.css (or other file) exists)
read, execute (world)
{master}/{any name}CallWeb CATI interviewer utilitiesmandatory for CATI installations: int1acces.cgi, int2select.cgi, int3travail.cgiread, execute (world)
{master}/etcSystem configuration filemandatory: the name must start with "usager" and end with ".conf" as in usager__531vh.confowner: apache
read, write (owner)
{master}/calCalendar filesoptional but mandatory to get pop-up calendarsread, execute (world)
/opt/callwebCallWeb daemon programmandatory for the daemon mode: callwebd.plread, execute (root)
/etcCallWeb daemon program configuration filemandatory for the daemon mode: callweb.confread, write (root)
/var/spool/callwebCallWeb daemon program spool directorymandatory for the daemon mode: directory where the CallWeb daemon reads and writes request and response filesread, write (world)
/etc/rc.d/init.dCallWeb daemon control programmandatory for the daemon mode: callwebdread, write (world)

System configuration file

The system configuration file and the project configuration files may contain several parameters controlling the in-depth behaviour of CallWeb and its default appearance. Some parameters must be supplied in one file or the other. Mandatory parameters are (parameters are case-sensitive):

client=(prefix used in naming MySQL data bases for this installation; do not include periods)
hote=(MySQL host, typically "localhost" but it could be the IP address of a distant MySQL server)
usager=(MySQL user name)
motdepasse=(MySQL user password)
driver=(Perl data base engine driver, typically "mysql")

The following are mandatory in CATI mode:

local_area_codes=(in CATI mode only, comma-delimited list of area codes not requiring a long distance call)
long_distance_exchanges_in_local_area_codes=(in CATI mode only, comma-delimited list of area+exchange codes requiring a long distance call within an otherwise local zone)
server_gmtoffset=offset hours to GMT (negative west of Greenwich)
gmtnnn=GMT offset hours for the area code nnn; negative west of Greenwich; there is one such line for each area code
gmtnnnxxx=GMT offset hours for exchange xxx in area code nnn; negative west of Greenwich; these are exceptions to the area code rules

The following are mandatory to connect an Asterisk server to CallWeb:

asterisk_ip=local network IP address of the Asterisk server
asterisk_ip_ecoute=local network IP address of the Asterisk server for supervising stations (asterisk_ip is used if asterisk_ip_ecoute does not exist)
asterisk_external_ip=external IP address of the Asterisk server (could be the same as asterisk_ip if the CATI server is on the same local network as the Asterisk server)
asterisk_telnetport=Telnet port on the Asterisk server (usually 5038)
asterisk_telnetuser=Telnet user on the Asterisk server (to communicate with Asterisk)
asterisk_telnetpw=Telnet user password on the Asterisk server (to communicate with Asterisk)
asterisk_cati_callerid=telephone number used for call display in CATI context
asterisk_cati_callerid_text=name used for call display in CATI context
asterisk_mysqlcdr=name of the MySQL data base where Asterisk stores the cdr table (usually asteriskcdrdb)
asterisk_mysqluser=mysql user on the Asterisk server (must be accessible from the CallWeb server)
asterisk_mysqlpw=mysql user password on the Asterisk server (must be accessible from the CallWeb server)
asterisk_sqlengine=SQL engine used on the Asterisk server (usually mysql)
longdistance_cost_per_minute=cost per minute of long distance calling
longdistance_minimum_seconds=minimum chargeable length (seconds) of a long distance call
longdistance_increment_seconds=increment (seconds) used to calculate long distance charges

The following are mandatory in robot mode:

pris_locaux=comma-delimited list of PRI lines which can dial local and long distance numbers (e.g., "pris_locaux = 1, 2" defines dialling lines 1 to 23 and 24 to 45)
pris_interurbains=comma-delimited list of PRI lines which can dial only long distance numbers (e.g., "pris_interurbains = 3" defines dialling lines 46 to 71)
asterisk_ivr_callerid=telephone number used for call display in robot context
asterisk_ivr_callerid_text=text used for call display in robot context
asterisk_mysqluser=mysql user on the Asterisk server (must be accessible from the robot server)
asterisk_mysqlpw=mysql user password on the Asterisk server (must be accessible from the robot server)
asterisk_sqlengine=SQL engine used on the Asterisk server (usually mysql)
cati_ip_for_robot=external IP address of the robot server (the Asterisk server needs to verify the number of interviewers logged in)
cati_user_for_robot=MySQL user for CallWeb on the robot server
cati_pw_for_robot=MySQL user password for CallWeb on the robot server
cati_clientdb_for_robot="client" parameter used by the robot on the robot server (see the client parameter above)
external_transfer_string=string used by Asterisk to send robot calls on a SIP trunk
siptrunk_prefix=string used by Asterisk to identify robot calls to be sent to a SIP trunk
number_of_SIP_channels=integer indicating how many SIP trunk channels the robot has access to

The following are mandatory in connecting CallWeb to a predictive dialer:

dialer_dbhote=IP address of the dialer data base host
dialer_dbusager=user name on the dialer data base
dialer_dbmotdepasse=password on the dialer data base
dialer_dbdriver=data base engine used by the dialer data base (e.g., mysql)
dialer_dbname=name of the dialer data base on the data base host
dialer_result_table=name of the table where call results are stored in the dialer data base
dialer_softphone_port=interviewer softphone port (the softphone is used to communicate some information to the dialer
dialer_server=IP address of the dialer host
dialer_server_port=port used by the dialer host
dialer_wait_for_human=number of seconds that CallWeb will wait for the dialer to supply a human call before giving up (default = 60)

In a project-specific configuration file, if the MySQL host is redefined, the following entry is mandatory:

projet=(name of the CallWeb project to which the configuration file belongs)

Any pound instruction can be inserted in the system configuration file. All such pound instructions found in the system configuration file are inserted at the beginning of all questionnaires upon compilation. This means two things:

  • that system-wide defaults can be defined for any of the pound instructions, such as defining a default read access password for all projects with "# cwNav read password = some_password";
  • that such system default values can be overwritten inside any questionnaire by adding the same instruction (with other parameters) in the .scw file.

In addition, optional configuration parameters include (parameters are case-sensitive):

administrator_email=(e-mail address of the CallWeb system administrator)
notify_after=(number of days of data base inactivity that triggers an e-mail reminder; the default is 14)
notify_every=(number of days between notifications of inactive projects as defined by notify_after; the default is 1)
maximum_undo_versions=(number of update versions to keep available for undo; the default is 5)
serveurftp=(name/address of the FTP server offering system updates and upgrades)
proxyftp=(name/address of the proxy server through which FTP has to connect; add ":port" if the proxy does not use the default FTP port)
usagerftp =(user name on serveurftp)
motdepasseftp =(password for usagerftp)
engine=(MyISAM or InnoDB)
use_telkey_table=(yes or no; determines whether a table of reserved _telkeys is used for open projects (preferable); requires mod_unique_id in Apache; default "no")
nom_de_ce_serveur=(name of the server; used in # Only for server and # Master compilation server instructions)
repertoire_utilitaire_maitre=(name of the master utility directory)
repertoire_cati_maitre=(name of the master directory for CATI scripts)
nom_installation=(name of the installation reflected in the utility banner)
langue=(2-letter code for the default language)
update_daemon=(0 or 1 according to whether the daemon files must be updated with cwupdate. Place in only one CallWeb instance on a given server.)
cwextr_types=(default extraction file types presented as a comma-delimited list among the following: csv, dat, tcw, opn, sps, sas, rcode, asc, sss, scw)
cwextr_email=(e-mail address to select as the default extraction destination)
csv_delimiter=(single character used as a delimiter in extracted csv files)

champs_par_csv
=(default number of fields in an extracted csv file)
test_email_address_hostname=(domain name used by the test_email_address function to build the FROM parameter (should be a subdomain like mail.callweb.ca). Uses $ENV{HTTP_HOST} or $ENV{HOSTNAME} otherwise.)
url_principal=(URL used by cwautoemail.pl to call cwemail.cgi; must be a fully qualified URL ending with a slash such as http://domain.com/utilities/)
max_var_label_length=(default maximum length of variable labels extracted to other software code; default = 60)
max_value_label_length=(default maximum length of category labels extracted to other software code; default = 40)
max_spss_alpha_field=(maximum number of characters read off alphanumaric fields in SPSS; default = 254)
default_cwtelkeys_pattern=_telkey pattern proposed by default by cwtelkeys
_M_COULEURCELLULES=(# colour code; base cell colour for tables)
_M_COULEURCELLULES2=(# colour code; second cell colour for tables)
_M_COULEURTITRESCOLONNES=(# colour code; column header cell colour for tables)
_M_COULEURTITRESLIGNES=(# colour code; base line header cell colour for tables)
_M_COULEURTITRESLIGNES2=(# colour code; second line header cell colour for tables)
_M_COULEURBORDURES=(# colour code; border colour for tables)
_M_BORDURES=(number of pixels for table borders)
_M_ESPACEMENTINTERIEUR=(number of pixels for internal spacing of table cells)
_M_ALIGNEMENTTITRESCOLONNES=(T|B; vertical alignment of column header cells)
cati=(oui|non|ivr, whether the installation is CATI- or IVR-type by default)
couleur_commentaire_o=(# colour code; colour of the CATI result codes where interviewer comments are mandatory)
couleur_commentaire_f=(# colour code; colour of the CATI result codes where interviewer comments are optional)
couleur_commentaire_a=(# colour code; colour of the CATI result codes where interviewer comments are disallowed)
between_cati_buttons=(number of pixels to insert between CATI buttons presented to interviewers)
lignes_commentaires=(number of lines of the comment entry box for interviewers)
colonnes_commentaires=(number of columns of the comment entry box for interviewers)
size_of_stratum_selection_box_in_cwsuperpro=(number of lines for the multiple select drop-down list of strata in cwsuperpro; default 5)
default_for_cati_comment_carry_over=(yes|no whether the interviewer comment is carried over from call to call by default
delai_min_entre_appels=minimum number of seconds between two call results by a particular interviewer for a given case
allow_password_change_by_interviewers=yes | no (if yes, interviewers are given a change to change their password upon login)
allow_sip_change_by_interviewers=yes | no (if yes, interviewers are given a chance to change their SIP extension upon login)
constrain_to_groups=yes | no (if yes, the free case selection option is not displayed to interviewers if groups exists in CATI mode)
allow_viewing_time=yes | no (if no, interviewers are not offered the option to view thier cumulated time in CATI mode)
interviewer_clock=12|24 (displays the apppointment clock as a 12- or 24-hour clock; 24 is the default)
allow_cross_project_search=yes | no (if no, interviewers are not offered the list of projects from which to search for a case in CATI mode)
interviewer_timer=yes | no (whether or not interviewers are shown a timer on the call management screen; the default is yes)
mpBASEtemps=password used in BASEtemps (mpBASEtemps is used in cwsuper to give supervisors access to interviewer time slips.)
productivity_index=MySQL expression returning an index of interviewer productivity. Used in cwprod.cgi. The default is ROUND((completes_first + 2*completes_norefusal + 5*completes_withrefusal - 3*refusals_first ) / duration,1).
repertoire_wav=absolute path to the server directory containing the project directories where .wav files of the interviews are stored
repertoire_html_wav=directory alias defined in the Apache configuration to permit building URLs to the .wav files even if they are outside the Web server directory structure
seconds_before_dialling=seconds (in CATI mode with an Asterisk dialler, length of the pause between the display of the call management screen and the automated dialling of the telephone number)
storeinBASEappels=yes | no (in CATI mode, if no, call results are not stored in real time in BASEappels and interviewers do not get a dynamic count of their results)
week_start=between 0 and 6: determines when the week starts in the calculation of the _week system variable; 0 for Sunday, 1 for Monday, etc.
comparative_results=yes|no (in CATI mode, controls the display of a summary of interviewer productivity to each interviewer)
command_prefix_for_record_wav=(some text) (prefix command used by the Apache user to start and stop recordings in face-to-face settings)
url_to_cwagent=(url) (full URL to the cwagent.cgi script to bridge agents from int2select.cgi to cwagent.cgi; should be in the usagerXXX.conf file of the CallWeb instance agents use to log in) (e.g., http://192.168.0.1/prod/interviewers/cwagent.cgi)
url_from_cwagent=(url) (full URL to the int2select.cgi script to bridge agents from cwagent.cgi back into int2select.cgi; should be in the usagerXXX.conf file of the CallWeb instance where cwagent.cgi runs, i.e. in the robot instance) (e.g., http://192.168.0.2/prod2/interviewers/int2select.cgi)
agent_languages=comma-delimited list of ISO language codes offered to the agents logging into cwagent.cgi
parms_to_copy_dump_file (OBSOLETE)=apache@server (where "server" is a distant MySQL server where the backup dump files will be written. This parameter serves to copy the dump file over to the administrative server and to delete it from the MySQL server. For this to work, ssh keys must have been exchanged for the Apache user [for compilation backups] and the root user [for automated backups])
control_by_other_server_possible=yes | no, set this to yes if it is possible that there will be CATI projects that are controlled by another server based on the # Master compilation server pound instruction
default_cwpermissions_directory_permissions=(permission level assigned to project directories by cwpermission); it must be in octal representation; the default is 0777.
default_cwpermissions_file_permissions=(permission level assigned to project files by cwpermission); it must be in octal representation; the default is 0666.
cwpermissions_deletes_from_cwdir=(regular expression, minutes); the two options are separated by a comma; cwpermissions.pl deletes files that correspond to the regular expression pattern when they are older than the number of minutes stated in the second option; the regular expression is not tested — it is entirely the responsibility of the CallWeb manager.
exclude_from_cwcompile_backup=(case insensitive regular expression); defines a regular expression identifying files to NOT save in cwcompile zip backups..
hide_user_from_cwdocs_link=yes; if defined, this option hides the user code from the cwdocs link in cw.cgi.
check_login=yes | no, set to no, it deactivates the authentification system.
dialer_timeout_milliseconds=number of milliseconds after which the dialer considers a call ring-no-answer.
musiconhold=0|1, whether or not to use music-on-hold when transfering a batch-dialed extra call to an agent.
external_transfer_string=string used by Asterisk to compose SIP channel information for external audio monitoring; this is lifted from the relevant Asterisk context.
systemlog=level of logging to be performed in the instance. Valid values are: 0: Emergency (emerg); 1: Alerts (alert); 2: Critical (crit); 3: Errors (err); 4: Warnings (warn); 5: Notification (notice); 6: Information (info); 7: Debug (debug).
max_log_size=maximum size of the log file before rotation, expressed in megs.
service_command_path=path of the service command used in cwupdate.pl. Normally, this option is not necessary.
login_pw_valid_days=number of days after which a user must change their password to access CallWeb utility modules (none by default).
login_pw_allow_same=(yes|no) whether or not users are allowed to supply the same password when requested to change it.
login_pw_rules=tab-delimited list of regular expressions that must be adhered to in creating a new password.
login_pw_rules_message=text displayed to explain the password composition rules. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.
out_of_service=(yes|no) blocks all access to the instance questionnaires and displays a general out-of-service message.
no_lastlogin_storage=(yes) avoids storing the time of last utility program login in the permission file.
user_cookie_expiry_minutes=(number of minutes after which a user cookie expires; the default is 120)
use_user_cookie=yes | no, determines if user cookies are used instead of the _user parameter
cwarchive_extensions=(extensions), provides a comma-space delimited list of file extensions to add to the automated archives
cookie_same_site_security=(none|lax|strict), default = lax, SameSite security level of the administrative user cookie
charset=(character set), default = ISO-8859-15, character set declared upon the creation of the HTML pages; change this only if use of a UTF-8 font is necessary

Automated tasks

A number of tasks are performed automatically by various programs once they are scheduled in the cron feature of a Linux server. They are as follows.

ScriptType of installationDescriptionTypical location
cwupdate.plAllScans the CallWeb instance and updates programs to the most recent version.cron.minute
cwpermissions.plAllAdjusts the permissions of CallWeb directories and files which require open access by the Web server, throughout the CallWeb instance.cron.minute
cwsuperpro.plCATIScans projects to perform updates of the CATI files containing the cases available to telephone interviewers.cron.minute
cwphone.cgiCATI with AsteriskFor CATI installations equipped with an Asterisk PBX server, updates the list of last times when there was activity on an IP address. Add the CallWeb "client" name as an argument, e.g., "perl cwphone.cgi PROD".cron.minute
cwdial.plCATI with Asterisk and dialerFor CATI installations equipped with an Asterisk PBX server and the CallWeb dailer, absorbs automated call results into the CallWeb call history. Add the CallWeb "client" name as an argument and an ampersand to release the process, e.g., "perl cwdial.pl PROD &".cron.minute
cwrobot.plIVRFor robot servers: handles placing calls on the Asterisk server as well as collecting call results from the Asterisk server (see complete robot installation instructions). The call must be accompanied by the "client" name from the installation file of the CallWeb instance.cron.minute
cwarchive.plAllPerforms the back-ups throughout the instance of CallWeb as determined in cwarchive.cron.hourly*
cwautoemail.plAllSends the e-mail messages requested in "# Auto email" instructions throughout the instance of CallWeb. Add the CallWeb "client" name as an argument, e.g., "perl cwautoemail.cgi PROD &".cron.hourly*
cwstats.plAllComputes various usage statistics based on CallWeb data bases throughout the instance of CallWeb. The results are displayed by cwstats.cron.hourly
cwupdate.cgiAllE-mails the system administrator in case of available system updates.cron.daily
cwappels.plCATI(CATI only) Re-creates the BASEappels data base which contains one entry for each call made in each project available in the CallWeb instance.cron.daily
* Considering the functionality of the script, this must be its location.
Note that each of these scripts needs to be called individually for each instance of CallWeb installed on the server. To simplify this process, put an executable text file containing a series of "cd" commands (to change to the utilities directory) followed by "perl script" commands in the pertinent cron directory, as in:
cd /var/www/html/scripts
perl cwstats.pl
cd /home/someuser/scripts
perl cwstats.pl

One last script cwbounces.pl is a special case. Its purpose is to intercept bounced messages and to update the CallWeb data base with an indication of this bounce. It is not located in the cron system but rather, it is called by Sendmail upon receiving bounced messages for the "bounces" address. A single instance of this program services an entire server and all instances of CallWeb installed on it. Here are detailed installation instructions:

  • put the cwbounces.pl script in the main utilities directory;
  • make cwbounces.pl executable (0755);
  • create a symbolic link cwbounces.pl in /etc/smrsh, pointing to the cwbounces.pl script in the utilities directory;
  • create a virtual user called "bounces.+*@domain.xxx" (adjust the domain name but leave the left side of this expression intact) and send its mail to the "bounces" alias;
  • create a mail alias "bounces" piped to the cwbounces.pl script (|cwbounces.pl).

Note that, for cwbounces.pl to work with a given instance of CallWeb on a server, the following directories and files must be readable by the user or the group "mail" (under which Sendmail runs):

  • the cwroutines.pl file ;
  • the etc directory;
  • the file usager???.conf file within the etc directory (the exact name of this file varies with each instance of CallWeb).

Daemon mode installation

The CallWeb daemon mode is three times as fast as the base mode. In daemon mode, CallWeb runs constantly in the server background, waiting for questionnaire page request files to be placed by cwx.cgi (which replaces callweb.cgi in daemon mode) in the spool directory. The CallWeb daemon processes these request files and places the HTML code of the next questionnaire page in the spool directory for cwx.cgi to display to the respondent.

To use the CallWeb daemon mode, follow the installation instructions and then call the questionnaires with the cwx.cgi module instead of the callweb.cgi module.

CallWeb daemon mode installation instructions:

  • the daemon mode requires that Apache loads the mod_unique_id module. Make sure that the following line is part of the Apache configuration:
    LoadModule unique_id_module modules/mod_unique_id.so
  • create the directory /var/spool/callweb and allow the Web server user to read from it and to write to it, for example:
    mkdir /var/spool/callweb
    chmod 0777 /var/spool/callweb
  • place cwx.cgi in the CallWeb installation master directory and allow the Web server user to execute it, for example:
    chmod 0755 cwx.cgi
  • create the /opt/callweb directory and place callwebd.pl as well as cwroutines.pl in it, for example:
    mkdir /opt/callweb
    cp callwebd.pl /opt/callweb
    cp cwroutines.pl /opt/callweb
    chmod 0700 /opt/callweb/callwebd.pl
  • create the /var/log/callweb directory and make it writable by the Apache user, for example:
    mkdir /var/log/callweb
    chown apache:apache /var/log/callweb
    chmod 0755 /var/log/callweb
  • place callwebd in /etc/rc.d/init.d and give it execution permission by root, for example:chmod 0700 /etc/rc.d/init.d/callwebd
  • request that the CallWeb daemon be started automatically upon server boot: chkconfig --add callwebd (see update-rc.d for Ubuntu)
  • to allow for daemon system updates, add the following line to the usagerXXX.conf file of one instance on the server (probably the most active production instance): update_daemon = 1. That CallWeb instance will control updates to the daemon system.
  • if the system is connected to a Munin server:
    • activate loglevels 1 (for problems) and 4 (for page creation) in /etc/callweb.conf (see below);
    • place the callwebd_pages script in the /etc/munin/plugins directory
    • make callwebd_pages executable
    • restart Munin with service munin-node restart

The CallWeb daemon is started, stopped and restarted with the command service callwebd start|stop|restart. The daemon status can also be probed with service callwebd status. When the "restart" or the "stop" command is issued, the CallWeb daemon waits until the request queue is empty before proceeding with stopping the daemon.

The CallWeb daemon configuration file is /etc/callweb.conf. The CallWeb daemon must be restarted for changes to the configuration file to take effect. Its content is as follows.

SectionContentNotes
AnywhereLines starting with a pound sign are commented out.
[General]loglevel=n"n" is the sum of the numerical values associated with each element of information that may be logged. For example, a loglevel of 5 activates the logging of information numbered 1 and 4. The elements of information are numbered as follows:
1: system start and stop, problems encountered
2: state of the server, noted every minute
4: name of each file processed and project concerned
8: opening of request files and closing of response files
A loglevel of 0 indicates that no information is to be logged.

Multi-server configuration (CallWeb cluster)

Using the configuration files, it is possible to develop various server implementations of CallWeb. First, CallWeb can run on the same computer as the data base server if the "hote" parameter of the main CallWeb configuration file points locally:

hote = localhost

Another CallWeb server could use the same MySQL server by specifying a distant address for the "hote" in its main configuration file:

hote = 99.99.99.99

If the two CallWeb servers use the same "client" parameters in their main configuration file, both servers will "see" projects from both origins; that would be the typical setup of a multi-site CATI system. If they use different "client" parameters, each CallWeb server will only see its own projects.

Each project used in a multi-server configuration (also called "CallWeb cluster") should possess a # Master compilation server pound instruction to protect the integrity of the questionnaire files. Parallelism of the questionnaire files across servers is ensured by the # Copy questionnaire into instruction which dispatches a copy of the questionnaire (and an empty .scw file) to distant servers (there should be one such instruction for each of the distant servers in the CallWeb cluster which will use the questionnaire). This dispatching of questionnaires requires that a direct SSH connection (with exchange of public keys) exists between the servers; see below for the procedure.

In a multi-server configuration, re-compilation of the .scw script involving changes in data structure should be performed on the computer running the MySQL server. Otherwise, while the compilation will be performed and the data base adjusted if required, no backup of the data will be kept before modifying the data structure.

Note that, for bi-mode projects, the CATI CallWeb server must be the Master for compilation so that the .ccw file is correctly processed.

Exchange of public keys between servers

This procedure must be carried out only once per server connection. In brief, here is the procedure for the exchange of public keys between Linux servers:

  • in this procedure, "computer2" (the server, or the CallWeb computer which will receive the compiled CallWeb questionnaires) is the machine granting access to "computer1" (the client, or the computer which will send the compiled CallWeb questionnaires);
  • on computer1,
    • in a root shell, issue the following commands:
      • passwd apache [when prompted, enter a password for user apache]
      • usermod -s /bin/bash apache
      • chown apache:apache /var/www
    • enter a shell with the apache user ("su apache");
    • as the apache user, issue the following commands in a computer1 terminal window:
      • cd /var/www/
      • [if the .ssh directory does not exist] mkdir .ssh
      • cd .ssh
      • ssh-keygen -t rsa [accept the default options and do not specify a passphrase; this generates two files: id_rsa and id_rsa.pub]
    • in a root shell, issue the following commands:
      • chown root:root /var/www
  • copy id_rsa.pub from computer1 to computer2, in directory /var/www/.ssh (for example, via SFTP);
  • on computer2, in a root shell, issue the following commands:
    • usermod -s /bin/bash apache
    • cd /var/www/.ssh
    • cat id_rsa.pub >> authorized_keys
  • in a shell as the apache user on computer1, initiate an SSH connection and type "yes" when prompted; this needs be done once to accept the exchange of keys.

Appendix B

Installation instructions

Server software requirements

CallWeb needs the following to be installed on the server:

  • Perl 5 (including the following modules: CGI, CGI::Carp, DB_File, DBI, Fcntl, File::Compare, File::Copy, File::Path, FileHandle, IO::Socket, locale, LWP::Simple, Net::FTP, Net::Telnet, POSIX, Time::HiRes, Time::Local, SOAP::Lite 1.08, Encode)
  • MySQL 4 or better
  • Berkeley DB
  • a Web server (tested with Apache 2 with mod_unique_id enabled)
  • Sendmail
  • (for dialer and robot operations) Asterisk, version 1.2 or better (and the Asterisk::AGI Perl module)

Questionnaire designer client station

The following software has proven very valuable in editing CallWeb .scw files:

  • TextPad is an extraordinary pure-text editor which offers a whealth of functions. In particular, it supports syntax highlighting which makes CallWeb .scw files much more readable. A TextPad syntax highlighting file is available for CallWeb. Alternatively, some like Notepad++ for which CallWeb has a basic syntax highlighting file as well.
  • KeyText is a fabulous keyboard and hot key mapper. For example, one can paste an entire CallWeb question definition by simply pressing a predetermined combination of keys.
  • the free RGBtoHEX provides an easy way to select colours and identify the corresponding hex code.
  • the free Pixie is a colour picker: point to a colour on screen and Pixie tells you the hex, RGB, HTML, CMYK and HSV values of that colour (the hex value can be copied to the paste buffer using a keycoard key combination). ColorZilla, a free Firefox extension implements a similar function, but it is available only within Firefox.
  • there are hundreds of useful Web applications. For example, http://gradcolor.com/ creates a gradient which is very useful to find different intensities of a given coulour (do this by requesting a gradient from that colour to white).

File locations

DirectoryContentNotesPermission
{master}Main access directorymandatory: callweb.cgi, cwroutine.pl
optional: cwx.cgi cwjscripts.js, cwAST.pl
read, execute (world)
{master}/grSystem graphic filesmandatory: collection of .gif files
optional: style.css (when no style.css exists in the project directory)
read, execute (world)
{master}/cw... (i.e., name starting with "cw" or "cw" only)Everything project-relatedmandatory: *.scw, *.qcw
optional: style.css (for all projects located in the same directory; the # Stylesheet instruction can specify a stylesheet for a particular project), navigation images, all files referenced by questionnaires in that directory (linked by cw.../file.xxx in the .scw file), project configuration file (named projectSOMETHING.conf)
 
Notes
(1) all directories named cw* are considered project directories
(2) .scw (raw questionnaire) files must be located in their respective cw directory for compilation purposes; once compiled, they may be deleted or moved
(3) several projects may cohabitate in the same cw* directory; they then share the style.css file
(4) prepopulation files (e.g., pop.tab) must be located in the directory of the project to which they contribute
read, write, execute (world)
{master}/{any name}CallWeb utilitiesoptional according to circumstances: cw.cgi, cwappels.pl, cwarchive.cgi, cwarchive.pl, cwautoemail.pl, cwbounces.pl, cwcheck.cgi, cwcompare.cgi, cwcompile.cgi, cwdestruction.cgi, cwdossier.cgi, cwedit.cgi, cwemail.cgi, cwextr.cgi, cwfreq.cgi, cwgen.cgi, cwnav.cgi, cwpermissions.pl, cwprepop.cgi, cwquestionnaire.cgi, cwstats.cgi, cwstats.pl, cwtelkeys.cgi, cwupdate.cgi, cwupdate.pl
for CATI installations: cwcodescati.cgi, cwgroupes.cgi, cwoutcomes.cgi, cwphone.cgi, cwphone.pl, cwprod.cgi, cwsuper.cgi, cwsuperimp.cgi, cwsuperpro.cgi, cwsuperpro.pl, cwdial.pl
for robot installations: cwrobot.pl (see complete robot installation instructions)
optional: style.css (controls the appearance of utilities, unless a project-related style.css (or other file) exists)
read, execute (world)
{master}/{any name}CallWeb CATI interviewer utilitiesmandatory for CATI installations: int1acces.cgi, int2select.cgi, int3travail.cgiread, execute (world)
{master}/etcSystem configuration filemandatory: the name must start with "usager" and end with ".conf" as in usager__531vh.confowner: apache
read, write (owner)
{master}/calCalendar filesoptional but mandatory to get pop-up calendarsread, execute (world)
/opt/callwebCallWeb daemon programmandatory for the daemon mode: callwebd.plread, execute (root)
/etcCallWeb daemon program configuration filemandatory for the daemon mode: callweb.confread, write (root)
/var/spool/callwebCallWeb daemon program spool directorymandatory for the daemon mode: directory where the CallWeb daemon reads and writes request and response filesread, write (world)
/etc/rc.d/init.dCallWeb daemon control programmandatory for the daemon mode: callwebdread, write (world)

System configuration file

The system configuration file and the project configuration files may contain several parameters controlling the in-depth behaviour of CallWeb and its default appearance. Some parameters must be supplied in one file or the other. Mandatory parameters are (parameters are case-sensitive):

client=(prefix used in naming MySQL data bases for this installation; do not include periods)
hote=(MySQL host, typically "localhost" but it could be the IP address of a distant MySQL server)
usager=(MySQL user name)
motdepasse=(MySQL user password)
driver=(Perl data base engine driver, typically "mysql")

The following are mandatory in CATI mode:

local_area_codes=(in CATI mode only, comma-delimited list of area codes not requiring a long distance call)
long_distance_exchanges_in_local_area_codes=(in CATI mode only, comma-delimited list of area+exchange codes requiring a long distance call within an otherwise local zone)
server_gmtoffset=offset hours to GMT (negative west of Greenwich)
gmtnnn=GMT offset hours for the area code nnn; negative west of Greenwich; there is one such line for each area code
gmtnnnxxx=GMT offset hours for exchange xxx in area code nnn; negative west of Greenwich; these are exceptions to the area code rules

The following are mandatory to connect an Asterisk server to CallWeb:

asterisk_ip=local network IP address of the Asterisk server
asterisk_ip_ecoute=local network IP address of the Asterisk server for supervising stations (asterisk_ip is used if asterisk_ip_ecoute does not exist)
asterisk_external_ip=external IP address of the Asterisk server (could be the same as asterisk_ip if the CATI server is on the same local network as the Asterisk server)
asterisk_telnetport=Telnet port on the Asterisk server (usually 5038)
asterisk_telnetuser=Telnet user on the Asterisk server (to communicate with Asterisk)
asterisk_telnetpw=Telnet user password on the Asterisk server (to communicate with Asterisk)
asterisk_cati_callerid=telephone number used for call display in CATI context
asterisk_cati_callerid_text=name used for call display in CATI context
asterisk_mysqlcdr=name of the MySQL data base where Asterisk stores the cdr table (usually asteriskcdrdb)
asterisk_mysqluser=mysql user on the Asterisk server (must be accessible from the CallWeb server)
asterisk_mysqlpw=mysql user password on the Asterisk server (must be accessible from the CallWeb server)
asterisk_sqlengine=SQL engine used on the Asterisk server (usually mysql)
longdistance_cost_per_minute=cost per minute of long distance calling
longdistance_minimum_seconds=minimum chargeable length (seconds) of a long distance call
longdistance_increment_seconds=increment (seconds) used to calculate long distance charges

The following are mandatory in robot mode:

pris_locaux=comma-delimited list of PRI lines which can dial local and long distance numbers (e.g., "pris_locaux = 1, 2" defines dialling lines 1 to 23 and 24 to 45)
pris_interurbains=comma-delimited list of PRI lines which can dial only long distance numbers (e.g., "pris_interurbains = 3" defines dialling lines 46 to 71)
asterisk_ivr_callerid=telephone number used for call display in robot context
asterisk_ivr_callerid_text=text used for call display in robot context
asterisk_mysqluser=mysql user on the Asterisk server (must be accessible from the robot server)
asterisk_mysqlpw=mysql user password on the Asterisk server (must be accessible from the robot server)
asterisk_sqlengine=SQL engine used on the Asterisk server (usually mysql)
cati_ip_for_robot=external IP address of the robot server (the Asterisk server needs to verify the number of interviewers logged in)
cati_user_for_robot=MySQL user for CallWeb on the robot server
cati_pw_for_robot=MySQL user password for CallWeb on the robot server
cati_clientdb_for_robot="client" parameter used by the robot on the robot server (see the client parameter above)
external_transfer_string=string used by Asterisk to send robot calls on a SIP trunk
siptrunk_prefix=string used by Asterisk to identify robot calls to be sent to a SIP trunk
number_of_SIP_channels=integer indicating how many SIP trunk channels the robot has access to

The following are mandatory in connecting CallWeb to a predictive dialer:

dialer_dbhote=IP address of the dialer data base host
dialer_dbusager=user name on the dialer data base
dialer_dbmotdepasse=password on the dialer data base
dialer_dbdriver=data base engine used by the dialer data base (e.g., mysql)
dialer_dbname=name of the dialer data base on the data base host
dialer_result_table=name of the table where call results are stored in the dialer data base
dialer_softphone_port=interviewer softphone port (the softphone is used to communicate some information to the dialer
dialer_server=IP address of the dialer host
dialer_server_port=port used by the dialer host
dialer_wait_for_human=number of seconds that CallWeb will wait for the dialer to supply a human call before giving up (default = 60)

In a project-specific configuration file, if the MySQL host is redefined, the following entry is mandatory:

projet=(name of the CallWeb project to which the configuration file belongs)

Any pound instruction can be inserted in the system configuration file. All such pound instructions found in the system configuration file are inserted at the beginning of all questionnaires upon compilation. This means two things:

  • that system-wide defaults can be defined for any of the pound instructions, such as defining a default read access password for all projects with "# cwNav read password = some_password";
  • that such system default values can be overwritten inside any questionnaire by adding the same instruction (with other parameters) in the .scw file.

In addition, optional configuration parameters include (parameters are case-sensitive):

administrator_email=(e-mail address of the CallWeb system administrator)
notify_after=(number of days of data base inactivity that triggers an e-mail reminder; the default is 14)
notify_every=(number of days between notifications of inactive projects as defined by notify_after; the default is 1)
maximum_undo_versions=(number of update versions to keep available for undo; the default is 5)
serveurftp=(name/address of the FTP server offering system updates and upgrades)
proxyftp=(name/address of the proxy server through which FTP has to connect; add ":port" if the proxy does not use the default FTP port)
usagerftp =(user name on serveurftp)
motdepasseftp =(password for usagerftp)
engine=(MyISAM or InnoDB)
use_telkey_table=(yes or no; determines whether a table of reserved _telkeys is used for open projects (preferable); requires mod_unique_id in Apache; default "no")
nom_de_ce_serveur=(name of the server; used in # Only for server and # Master compilation server instructions)
repertoire_utilitaire_maitre=(name of the master utility directory)
repertoire_cati_maitre=(name of the master directory for CATI scripts)
nom_installation=(name of the installation reflected in the utility banner)
langue=(2-letter code for the default language)
update_daemon=(0 or 1 according to whether the daemon files must be updated with cwupdate. Place in only one CallWeb instance on a given server.)
cwextr_types=(default extraction file types presented as a comma-delimited list among the following: csv, dat, tcw, opn, sps, sas, rcode, asc, sss, scw)
cwextr_email=(e-mail address to select as the default extraction destination)
csv_delimiter=(single character used as a delimiter in extracted csv files)

champs_par_csv
=(default number of fields in an extracted csv file)
test_email_address_hostname=(domain name used by the test_email_address function to build the FROM parameter (should be a subdomain like mail.callweb.ca). Uses $ENV{HTTP_HOST} or $ENV{HOSTNAME} otherwise.)
url_principal=(URL used by cwautoemail.pl to call cwemail.cgi; must be a fully qualified URL ending with a slash such as http://domain.com/utilities/)
max_var_label_length=(default maximum length of variable labels extracted to other software code; default = 60)
max_value_label_length=(default maximum length of category labels extracted to other software code; default = 40)
max_spss_alpha_field=(maximum number of characters read off alphanumaric fields in SPSS; default = 254)
default_cwtelkeys_pattern=_telkey pattern proposed by default by cwtelkeys
_M_COULEURCELLULES=(# colour code; base cell colour for tables)
_M_COULEURCELLULES2=(# colour code; second cell colour for tables)
_M_COULEURTITRESCOLONNES=(# colour code; column header cell colour for tables)
_M_COULEURTITRESLIGNES=(# colour code; base line header cell colour for tables)
_M_COULEURTITRESLIGNES2=(# colour code; second line header cell colour for tables)
_M_COULEURBORDURES=(# colour code; border colour for tables)
_M_BORDURES=(number of pixels for table borders)
_M_ESPACEMENTINTERIEUR=(number of pixels for internal spacing of table cells)
_M_ALIGNEMENTTITRESCOLONNES=(T|B; vertical alignment of column header cells)
cati=(oui|non|ivr, whether the installation is CATI- or IVR-type by default)
couleur_commentaire_o=(# colour code; colour of the CATI result codes where interviewer comments are mandatory)
couleur_commentaire_f=(# colour code; colour of the CATI result codes where interviewer comments are optional)
couleur_commentaire_a=(# colour code; colour of the CATI result codes where interviewer comments are disallowed)
between_cati_buttons=(number of pixels to insert between CATI buttons presented to interviewers)
lignes_commentaires=(number of lines of the comment entry box for interviewers)
colonnes_commentaires=(number of columns of the comment entry box for interviewers)
size_of_stratum_selection_box_in_cwsuperpro=(number of lines for the multiple select drop-down list of strata in cwsuperpro; default 5)
default_for_cati_comment_carry_over=(yes|no whether the interviewer comment is carried over from call to call by default
delai_min_entre_appels=minimum number of seconds between two call results by a particular interviewer for a given case
allow_password_change_by_interviewers=yes | no (if yes, interviewers are given a change to change their password upon login)
allow_sip_change_by_interviewers=yes | no (if yes, interviewers are given a chance to change their SIP extension upon login)
constrain_to_groups=yes | no (if yes, the free case selection option is not displayed to interviewers if groups exists in CATI mode)
allow_viewing_time=yes | no (if no, interviewers are not offered the option to view thier cumulated time in CATI mode)
interviewer_clock=12|24 (displays the apppointment clock as a 12- or 24-hour clock; 24 is the default)
allow_cross_project_search=yes | no (if no, interviewers are not offered the list of projects from which to search for a case in CATI mode)
interviewer_timer=yes | no (whether or not interviewers are shown a timer on the call management screen; the default is yes)
mpBASEtemps=password used in BASEtemps (mpBASEtemps is used in cwsuper to give supervisors access to interviewer time slips.)
productivity_index=MySQL expression returning an index of interviewer productivity. Used in cwprod.cgi. The default is ROUND((completes_first + 2*completes_norefusal + 5*completes_withrefusal - 3*refusals_first ) / duration,1).
repertoire_wav=absolute path to the server directory containing the project directories where .wav files of the interviews are stored
repertoire_html_wav=directory alias defined in the Apache configuration to permit building URLs to the .wav files even if they are outside the Web server directory structure
seconds_before_dialling=seconds (in CATI mode with an Asterisk dialler, length of the pause between the display of the call management screen and the automated dialling of the telephone number)
storeinBASEappels=yes | no (in CATI mode, if no, call results are not stored in real time in BASEappels and interviewers do not get a dynamic count of their results)
week_start=between 0 and 6: determines when the week starts in the calculation of the _week system variable; 0 for Sunday, 1 for Monday, etc.
comparative_results=yes|no (in CATI mode, controls the display of a summary of interviewer productivity to each interviewer)
command_prefix_for_record_wav=(some text) (prefix command used by the Apache user to start and stop recordings in face-to-face settings)
url_to_cwagent=(url) (full URL to the cwagent.cgi script to bridge agents from int2select.cgi to cwagent.cgi; should be in the usagerXXX.conf file of the CallWeb instance agents use to log in) (e.g., http://192.168.0.1/prod/interviewers/cwagent.cgi)
url_from_cwagent=(url) (full URL to the int2select.cgi script to bridge agents from cwagent.cgi back into int2select.cgi; should be in the usagerXXX.conf file of the CallWeb instance where cwagent.cgi runs, i.e. in the robot instance) (e.g., http://192.168.0.2/prod2/interviewers/int2select.cgi)
agent_languages=comma-delimited list of ISO language codes offered to the agents logging into cwagent.cgi
parms_to_copy_dump_file (OBSOLETE)=apache@server (where "server" is a distant MySQL server where the backup dump files will be written. This parameter serves to copy the dump file over to the administrative server and to delete it from the MySQL server. For this to work, ssh keys must have been exchanged for the Apache user [for compilation backups] and the root user [for automated backups])
control_by_other_server_possible=yes | no, set this to yes if it is possible that there will be CATI projects that are controlled by another server based on the # Master compilation server pound instruction
default_cwpermissions_directory_permissions=(permission level assigned to project directories by cwpermission); it must be in octal representation; the default is 0777.
default_cwpermissions_file_permissions=(permission level assigned to project files by cwpermission); it must be in octal representation; the default is 0666.
cwpermissions_deletes_from_cwdir=(regular expression, minutes); the two options are separated by a comma; cwpermissions.pl deletes files that correspond to the regular expression pattern when they are older than the number of minutes stated in the second option; the regular expression is not tested — it is entirely the responsibility of the CallWeb manager.
exclude_from_cwcompile_backup=(case insensitive regular expression); defines a regular expression identifying files to NOT save in cwcompile zip backups..
hide_user_from_cwdocs_link=yes; if defined, this option hides the user code from the cwdocs link in cw.cgi.
check_login=yes | no, set to no, it deactivates the authentification system.
dialer_timeout_milliseconds=number of milliseconds after which the dialer considers a call ring-no-answer.
musiconhold=0|1, whether or not to use music-on-hold when transfering a batch-dialed extra call to an agent.
external_transfer_string=string used by Asterisk to compose SIP channel information for external audio monitoring; this is lifted from the relevant Asterisk context.
systemlog=level of logging to be performed in the instance. Valid values are: 0: Emergency (emerg); 1: Alerts (alert); 2: Critical (crit); 3: Errors (err); 4: Warnings (warn); 5: Notification (notice); 6: Information (info); 7: Debug (debug).
max_log_size=maximum size of the log file before rotation, expressed in megs.
service_command_path=path of the service command used in cwupdate.pl. Normally, this option is not necessary.
login_pw_valid_days=number of days after which a user must change their password to access CallWeb utility modules (none by default).
login_pw_allow_same=(yes|no) whether or not users are allowed to supply the same password when requested to change it.
login_pw_rules=tab-delimited list of regular expressions that must be adhered to in creating a new password.
login_pw_rules_message=text displayed to explain the password composition rules. Différentes versions linguistiques peuvent être définies en insérant des codes [xx] utilisant des codes de langue ISO; voir # URL pour un exemple.
out_of_service=(yes|no) blocks all access to the instance questionnaires and displays a general out-of-service message.
no_lastlogin_storage=(yes) avoids storing the time of last utility program login in the permission file.
user_cookie_expiry_minutes=(number of minutes after which a user cookie expires; the default is 120)
use_user_cookie=yes | no, determines if user cookies are used instead of the _user parameter
cwarchive_extensions=(extensions), provides a comma-space delimited list of file extensions to add to the automated archives
cookie_same_site_security=(none|lax|strict), default = lax, SameSite security level of the administrative user cookie
charset=(character set), default = ISO-8859-15, character set declared upon the creation of the HTML pages; change this only if use of a UTF-8 font is necessary

Automated tasks

A number of tasks are performed automatically by various programs once they are scheduled in the cron feature of a Linux server. They are as follows.

ScriptType of installationDescriptionTypical location
cwupdate.plAllScans the CallWeb instance and updates programs to the most recent version.cron.minute
cwpermissions.plAllAdjusts the permissions of CallWeb directories and files which require open access by the Web server, throughout the CallWeb instance.cron.minute
cwsuperpro.plCATIScans projects to perform updates of the CATI files containing the cases available to telephone interviewers.cron.minute
cwphone.cgiCATI with AsteriskFor CATI installations equipped with an Asterisk PBX server, updates the list of last times when there was activity on an IP address. Add the CallWeb "client" name as an argument, e.g., "perl cwphone.cgi PROD".cron.minute
cwdial.plCATI with Asterisk and dialerFor CATI installations equipped with an Asterisk PBX server and the CallWeb dailer, absorbs automated call results into the CallWeb call history. Add the CallWeb "client" name as an argument and an ampersand to release the process, e.g., "perl cwdial.pl PROD &".cron.minute
cwrobot.plIVRFor robot servers: handles placing calls on the Asterisk server as well as collecting call results from the Asterisk server (see complete robot installation instructions). The call must be accompanied by the "client" name from the installation file of the CallWeb instance.cron.minute
cwarchive.plAllPerforms the back-ups throughout the instance of CallWeb as determined in cwarchive.cron.hourly*
cwautoemail.plAllSends the e-mail messages requested in "# Auto email" instructions throughout the instance of CallWeb. Add the CallWeb "client" name as an argument, e.g., "perl cwautoemail.cgi PROD &".cron.hourly*
cwstats.plAllComputes various usage statistics based on CallWeb data bases throughout the instance of CallWeb. The results are displayed by cwstats.cron.hourly
cwupdate.cgiAllE-mails the system administrator in case of available system updates.cron.daily
cwappels.plCATI(CATI only) Re-creates the BASEappels data base which contains one entry for each call made in each project available in the CallWeb instance.cron.daily
* Considering the functionality of the script, this must be its location.
Note that each of these scripts needs to be called individually for each instance of CallWeb installed on the server. To simplify this process, put an executable text file containing a series of "cd" commands (to change to the utilities directory) followed by "perl script" commands in the pertinent cron directory, as in:
cd /var/www/html/scripts
perl cwstats.pl
cd /home/someuser/scripts
perl cwstats.pl

One last script cwbounces.pl is a special case. Its purpose is to intercept bounced messages and to update the CallWeb data base with an indication of this bounce. It is not located in the cron system but rather, it is called by Sendmail upon receiving bounced messages for the "bounces" address. A single instance of this program services an entire server and all instances of CallWeb installed on it. Here are detailed installation instructions:

  • put the cwbounces.pl script in the main utilities directory;
  • make cwbounces.pl executable (0755);
  • create a symbolic link cwbounces.pl in /etc/smrsh, pointing to the cwbounces.pl script in the utilities directory;
  • create a virtual user called "bounces.+*@domain.xxx" (adjust the domain name but leave the left side of this expression intact) and send its mail to the "bounces" alias;
  • create a mail alias "bounces" piped to the cwbounces.pl script (|cwbounces.pl).

Note that, for cwbounces.pl to work with a given instance of CallWeb on a server, the following directories and files must be readable by the user or the group "mail" (under which Sendmail runs):

  • the cwroutines.pl file ;
  • the etc directory;
  • the file usager???.conf file within the etc directory (the exact name of this file varies with each instance of CallWeb).

Daemon mode installation

The CallWeb daemon mode is three times as fast as the base mode. In daemon mode, CallWeb runs constantly in the server background, waiting for questionnaire page request files to be placed by cwx.cgi (which replaces callweb.cgi in daemon mode) in the spool directory. The CallWeb daemon processes these request files and places the HTML code of the next questionnaire page in the spool directory for cwx.cgi to display to the respondent.

To use the CallWeb daemon mode, follow the installation instructions and then call the questionnaires with the cwx.cgi module instead of the callweb.cgi module.

CallWeb daemon mode installation instructions:

  • the daemon mode requires that Apache loads the mod_unique_id module. Make sure that the following line is part of the Apache configuration:
    LoadModule unique_id_module modules/mod_unique_id.so
  • create the directory /var/spool/callweb and allow the Web server user to read from it and to write to it, for example:
    mkdir /var/spool/callweb
    chmod 0777 /var/spool/callweb
  • place cwx.cgi in the CallWeb installation master directory and allow the Web server user to execute it, for example:
    chmod 0755 cwx.cgi
  • create the /opt/callweb directory and place callwebd.pl as well as cwroutines.pl in it, for example:
    mkdir /opt/callweb
    cp callwebd.pl /opt/callweb
    cp cwroutines.pl /opt/callweb
    chmod 0700 /opt/callweb/callwebd.pl
  • create the /var/log/callweb directory and make it writable by the Apache user, for example:
    mkdir /var/log/callweb
    chown apache:apache /var/log/callweb
    chmod 0755 /var/log/callweb
  • place callwebd in /etc/rc.d/init.d and give it execution permission by root, for example:chmod 0700 /etc/rc.d/init.d/callwebd
  • request that the CallWeb daemon be started automatically upon server boot: chkconfig --add callwebd (see update-rc.d for Ubuntu)
  • to allow for daemon system updates, add the following line to the usagerXXX.conf file of one instance on the server (probably the most active production instance): update_daemon = 1. That CallWeb instance will control updates to the daemon system.
  • if the system is connected to a Munin server:
    • activate loglevels 1 (for problems) and 4 (for page creation) in /etc/callweb.conf (see below);
    • place the callwebd_pages script in the /etc/munin/plugins directory
    • make callwebd_pages executable
    • restart Munin with service munin-node restart

The CallWeb daemon is started, stopped and restarted with the command service callwebd start|stop|restart. The daemon status can also be probed with service callwebd status. When the "restart" or the "stop" command is issued, the CallWeb daemon waits until the request queue is empty before proceeding with stopping the daemon.

The CallWeb daemon configuration file is /etc/callweb.conf. The CallWeb daemon must be restarted for changes to the configuration file to take effect. Its content is as follows.

SectionContentNotes
AnywhereLines starting with a pound sign are commented out.
[General]loglevel=n"n" is the sum of the numerical values associated with each element of information that may be logged. For example, a loglevel of 5 activates the logging of information numbered 1 and 4. The elements of information are numbered as follows:
1: system start and stop, problems encountered
2: state of the server, noted every minute
4: name of each file processed and project concerned
8: opening of request files and closing of response files
A loglevel of 0 indicates that no information is to be logged.

Multi-server configuration (CallWeb cluster)

Using the configuration files, it is possible to develop various server implementations of CallWeb. First, CallWeb can run on the same computer as the data base server if the "hote" parameter of the main CallWeb configuration file points locally:

hote = localhost

Another CallWeb server could use the same MySQL server by specifying a distant address for the "hote" in its main configuration file:

hote = 99.99.99.99

If the two CallWeb servers use the same "client" parameters in their main configuration file, both servers will "see" projects from both origins; that would be the typical setup of a multi-site CATI system. If they use different "client" parameters, each CallWeb server will only see its own projects.

Each project used in a multi-server configuration (also called "CallWeb cluster") should possess a # Master compilation server pound instruction to protect the integrity of the questionnaire files. Parallelism of the questionnaire files across servers is ensured by the # Copy questionnaire into instruction which dispatches a copy of the questionnaire (and an empty .scw file) to distant servers (there should be one such instruction for each of the distant servers in the CallWeb cluster which will use the questionnaire). This dispatching of questionnaires requires that a direct SSH connection (with exchange of public keys) exists between the servers; see below for the procedure.

In a multi-server configuration, re-compilation of the .scw script involving changes in data structure should be performed on the computer running the MySQL server. Otherwise, while the compilation will be performed and the data base adjusted if required, no backup of the data will be kept before modifying the data structure.

Note that, for bi-mode projects, the CATI CallWeb server must be the Master for compilation so that the .ccw file is correctly processed.

Exchange of public keys between servers

This procedure must be carried out only once per server connection. In brief, here is the procedure for the exchange of public keys between Linux servers:

  • in this procedure, "computer2" (the server, or the CallWeb computer which will receive the compiled CallWeb questionnaires) is the machine granting access to "computer1" (the client, or the computer which will send the compiled CallWeb questionnaires);
  • on computer1,
    • in a root shell, issue the following commands:
      • passwd apache [when prompted, enter a password for user apache]
      • usermod -s /bin/bash apache
      • chown apache:apache /var/www
    • enter a shell with the apache user ("su apache");
    • as the apache user, issue the following commands in a computer1 terminal window:
      • cd /var/www/
      • [if the .ssh directory does not exist] mkdir .ssh
      • cd .ssh
      • ssh-keygen -t rsa [accept the default options and do not specify a passphrase; this generates two files: id_rsa and id_rsa.pub]
    • in a root shell, issue the following commands:
      • chown root:root /var/www
  • copy id_rsa.pub from computer1 to computer2, in directory /var/www/.ssh (for example, via SFTP);
  • on computer2, in a root shell, issue the following commands:
    • usermod -s /bin/bash apache
    • cd /var/www/.ssh
    • cat id_rsa.pub >> authorized_keys
  • in a shell as the apache user on computer1, initiate an SSH connection and type "yes" when prompted; this needs be done once to accept the exchange of keys.

   

Annexe C

Options d'URLs

Il est recommendé d'utiliser le module d'interface intégrée pour accéder aux diverses options de CallWeb (par simplicité). Cependant, il peut y avoir des circonstances où le codage direct des URLs est nécessaire. Le tableau suivant identifie les différents paramètres d'URLs qui peuvent faciliter la création de menus spécialisés.

Options d'URLs pour le module callweb

Les options sont utilisées pour composer des URLs pour appeler CallWeb. De tels URLs pourraient ressembler à ceci : <http://blabla.ca/callweb.cgi?_proj=test&_demo=1&_lq=1&_print=1&_debute=Q1>. CallWeb offre aussi une syntaxe courte pour composer les URLs d'appel de questionnaires.

OptionValeurComportement
_telkeycode d'accèsFournit le code d'accès à un dossier particulier.
_projnom, du projetFournit le nom du projet qui doit être exactement le même que le nom du fichier .qcw (sensible à la casse).
_langcode de langue de deux lettresFournit le code de langue à utiliser pour interagir avec le programme. Seuls les codes de langue définis dans l'instruction « # Langues disponibles » peuvent être utilisés. Les codes utilisent la convention ISO. En l'absence de cette information, le système utilise la langue définie dans l'instruction « # Langue par defaut ».
_demo1Active le mode de démonstration où aucune donnée n'est sauvegardée dans le fichier de données; un message d'avertissement s'affiche au haut de chaque écran; son contenu est déterminé par l'instruction « # Message demo ».
_epwmot de passe chiffréEn mode Password, passe la valeur chiffrée du mot de passe, tel que stockée dans la base de données.
_lq1L'option _lq (qui signifie « liste de questions ») affiche, au haut de la page du questionnaire, une liste déroulante de toutes les questions démarrant une page. En choisissant une entrée dans cette liste, le système saute automatiquement à cette question. Attention : les conditions d'affichage ne sont pas traitées, c'est-à-dire que la question sélectionnée sera affichée qu'elle ait dû l'être ou non en fonction du contexte du questionnaire. Cette option est utile pour les fins de mise en page de questionnaire mais ne devrait pas être utilisée en contexte de production.
_printentierL'option _print affiche le questionnaire entier à l'écran, sans égard pour les structures de pages et les conditions d'affichage. Elle est utile pour produire aisément une version générique imprimée du questionnaire tel qu'il est vu en ligne par les participants. Des portions de questionnaires peuvent être imprimées en utilisant les options _debute et _termine.
Le nombre entier peut être simplement 1 pour activer le mode imprimé, mais il peut aussi être la somme des valeur pertinentes qui suivent pour exercer un contrôle accru sur la sortie :
1 = activater le mode imprimé
2 = ne pas afficher les boutons de navigation
4 = ne pas afficher le pied de page
8 = ne pas afficher l'en-tête
_debuteQ1Cette option fournit le nom de la question où le questionnaire devrait débuter. Ce nom doit être en majuscules. Sans cette option, le questionnaire démarre à la première question affichable ou, dans le cas d'un questionnaire déjà entamé, à la dernière question vue.
_termineQ2Cette options fournit le nom de la question où _print cesse d'imprimer le questionnaire.
_custom1L'option _print affiche le questionnaire entier à l'écran y compris les réponses fournies par le participant mais en sautant les questions sans réponse. Elle est utile pour produire aisément une version imprimée du questionnaire tel qu'il est vu par un participant, pour fins de référence.
_affichenomsquestions1Cette option déclenche l'affichage des noms de questions dans le questionnaire CallWeb.
_access (ni nécessaire ni supporté à compté de mars 20231Cette option place le questionnaire CallWeb en mode d'accessibilité pour les mal-voyants. Les pages n'utilisent pas de feuille de style, de tableaux de questions ou de tableaux structurels. Les tableaux CallWeb sont affichés en mode linéaire.
_training_mode1Cette option place le questionnaire CallWeb en mode formation d'interviewer où les sauts et les conditions d'affichage sont affichées mais non respectées.
_show_skips1Cette option affiche les sauts à l'écran.
_show_dc1Cette option affiche les conditions d'affichage à l'écran.
_show_code1Cette option affiche les codes numériques de chaque catégorie de réponse.
_show_substitute1Cette option affiche les codes de rappel plutôt que de réellement effectuer les rappels.
_no_permutation1Cette option désactive les permutations dans tout le questionnaire.

Annexe C

Options d'URLs

Il est recommendé d'utiliser le module d'interface intégrée pour accéder aux diverses options de CallWeb (par simplicité). Cependant, il peut y avoir des circonstances où le codage direct des URLs est nécessaire. Le tableau suivant identifie les différents paramètres d'URLs qui peuvent faciliter la création de menus spécialisés.

Options d'URLs pour le module callweb

Les options sont utilisées pour composer des URLs pour appeler CallWeb. De tels URLs pourraient ressembler à ceci : <http://blabla.ca/callweb.cgi?_proj=test&_demo=1&_lq=1&_print=1&_debute=Q1>. CallWeb offre aussi une syntaxe courte pour composer les URLs d'appel de questionnaires.

OptionValeurComportement
_telkeycode d'accèsFournit le code d'accès à un dossier particulier.
_projnom, du projetFournit le nom du projet qui doit être exactement le même que le nom du fichier .qcw (sensible à la casse).
_langcode de langue de deux lettresFournit le code de langue à utiliser pour interagir avec le programme. Seuls les codes de langue définis dans l'instruction « # Langues disponibles » peuvent être utilisés. Les codes utilisent la convention ISO. En l'absence de cette information, le système utilise la langue définie dans l'instruction « # Langue par defaut ».
_demo1Active le mode de démonstration où aucune donnée n'est sauvegardée dans le fichier de données; un message d'avertissement s'affiche au haut de chaque écran; son contenu est déterminé par l'instruction « # Message demo ».
_epwmot de passe chiffréEn mode Password, passe la valeur chiffrée du mot de passe, tel que stockée dans la base de données.
_lq1L'option _lq (qui signifie « liste de questions ») affiche, au haut de la page du questionnaire, une liste déroulante de toutes les questions démarrant une page. En choisissant une entrée dans cette liste, le système saute automatiquement à cette question. Attention : les conditions d'affichage ne sont pas traitées, c'est-à-dire que la question sélectionnée sera affichée qu'elle ait dû l'être ou non en fonction du contexte du questionnaire. Cette option est utile pour les fins de mise en page de questionnaire mais ne devrait pas être utilisée en contexte de production.
_printentierL'option _print affiche le questionnaire entier à l'écran, sans égard pour les structures de pages et les conditions d'affichage. Elle est utile pour produire aisément une version générique imprimée du questionnaire tel qu'il est vu en ligne par les participants. Des portions de questionnaires peuvent être imprimées en utilisant les options _debute et _termine.
Le nombre entier peut être simplement 1 pour activer le mode imprimé, mais il peut aussi être la somme des valeur pertinentes qui suivent pour exercer un contrôle accru sur la sortie :
1 = activater le mode imprimé
2 = ne pas afficher les boutons de navigation
4 = ne pas afficher le pied de page
8 = ne pas afficher l'en-tête
_debuteQ1Cette option fournit le nom de la question où le questionnaire devrait débuter. Ce nom doit être en majuscules. Sans cette option, le questionnaire démarre à la première question affichable ou, dans le cas d'un questionnaire déjà entamé, à la dernière question vue.
_termineQ2Cette options fournit le nom de la question où _print cesse d'imprimer le questionnaire.
_custom1L'option _print affiche le questionnaire entier à l'écran y compris les réponses fournies par le participant mais en sautant les questions sans réponse. Elle est utile pour produire aisément une version imprimée du questionnaire tel qu'il est vu par un participant, pour fins de référence.
_affichenomsquestions1Cette option déclenche l'affichage des noms de questions dans le questionnaire CallWeb.
_access (ni nécessaire ni supporté à compté de mars 20231Cette option place le questionnaire CallWeb en mode d'accessibilité pour les mal-voyants. Les pages n'utilisent pas de feuille de style, de tableaux de questions ou de tableaux structurels. Les tableaux CallWeb sont affichés en mode linéaire.
_training_mode1Cette option place le questionnaire CallWeb en mode formation d'interviewer où les sauts et les conditions d'affichage sont affichées mais non respectées.
_show_skips1Cette option affiche les sauts à l'écran.
_show_dc1Cette option affiche les conditions d'affichage à l'écran.
_show_code1Cette option affiche les codes numériques de chaque catégorie de réponse.
_show_substitute1Cette option affiche les codes de rappel plutôt que de réellement effectuer les rappels.
_no_permutation1Cette option désactive les permutations dans tout le questionnaire.

   

Annexe D

Changements et ajouts récents

DateChangement / ajout
17 décembre 2023Ajout du suivi de l'ouverture des courriels avec [track=]
7 juin 2023Ajout de l'instruction dièse POSITION DU BOUTON RADIO
20 mai 2023Les patrons de _telkey peuvent inclure tout caractère autre que ceux ayant une signification particulière; ils sont insérés tels quels.
18 mai 2023Nouveau design de tableaux cwfreq et ajout d'un lien de téléchargement de fichier csv.
12 mai 2023Ajout de la variable système _bin.
5 avril 2023En mode password, si le _telkey est fourni dans l'URL, il n'a pas à être saisi à nouveau à l'entrée.
27 mars 2023cwfreq peut exclure les lignes dont les effectifs totaux sont inférieurs à une certaine valeur.
20 mars 2023cwemail et cwautoemail convertissent le sujet du message en UTF-8 à moins qu'il ne soit déjà dans cet encodage.
15 mars 2023Ajout du champ contextuel « empreinte ».
14 mars 2023Le modificateur W de partie ouverte C limite le texte d'une boîte multi-ligne à un certain nombre de mots plutôt que de caractères si # Contraindre la longueur des reponses vaut OUI.
9 mars 2023Le mode spécial _access pour la mise en page spécifiquement pour les lecteurs d'écran n'est plus proposé car les pages normales sont désormais formatées pour l'accessibilité.
24 janvier 2023Les programmes utilitaires peuvent sélectionner les dossiers qui contiennent une chaîne dans n'importe quel champ.
1er novembre 2022cwstats.pl emmagasine maintenant le nombre de champs dans le fichier-mémoire.
27 octobre 2022Modifications pour supporter le mode sctrict de MySQL.
26 août 2022Ajout de l'attribut <title> aux catégories de réponse pour une meilleure accessibilité.
28 juin 2022Ajout de l'instruction dièse FOCUS ON ERROR
28 juin 2022Ajout de l'instruction dièse TABLE DES MATIERES DES ERREURS
27 juin 2022Ajout du code de comportement H pour fournir une valeur à l'option <label> en mode accessibilité.
22 juin 2022Ajout de l'opérateur ACCESS() dans les conditions d'affichage.
19 mai 2022Ajout de l'instruction dièse 2FA qui permet une authentification à deux facteurs
11 mai 2022Ajout de l'instruction d'installation cwarchive_extensions
19 mars 2022Refonte du système de contrôle d'accès des utilisateurs pour éviter de transmettre les noms d'utilisateurs, même chiffrés, dans les URL et les posts. Pour assurer la compatibilité à rebours, ceci n'est pas activé par défaut mais contrôlé par les options d'installation use_user_cookie et user_cookie_expiry_minutes
11 mars 2022Ajout de 10 caractères spéciaux utilisables dans les _telkeys et disponibles dans cwtelkeys.cgi
24 novembre 2021Ajout d'un commutateur pour afficher le chemin à travers le questionnaire pendant le parcours
16 juillet 2020Ajout de la création de vues de base de données (# CREATE VIEW) pour faciliter l'accès aux données aux applications externes
15 mai 2020cwfreq peut afficher un graphique des moyennes d'une partie ouverte numérique ventilée selon une variable discrète
1er août 2019Ajout du type de question WEIGHT pour pondérer les résultats de cwfreq et cwquestionnaire.
4 juillet 2019Conversion des signes plus en &plus; dans les parties ouvertes.
18 octobre 2018Élimination de la journalisation des pages de questionnaires non existants.
25 août 2018Ajout des classes MATRICE2 et MATRICE3 aux tableaux imbriqués pour accorder davantage de contrôle de mise en page.
16 mars 2018Ajout d'une option pour sauter le test MX dans cwemail.
8 juin 2017Ajout d'une option de compilation pour prévenir la prise d'une copie texte des données avant une compilation avec changement structurel.
7 février 2017Le module intégré ne montre que les fichiers de prépopulation qui résident dans des répertoires de projets accessibles par l'usager.
19 octobre 2016Ajout de l'instruction dièse # Index.
16 septembre 2016Les caractères spéciaux sont convertis en entités HTML dans les courriels.
3 mai 2016cwprepop peut importer des zéros dans un champ fermé.
8 décembre 2015Ajout de la fonction random_integer2.
5 novembre 2015Ajout d'une en-tête Message-Id aux courriels pour réduire les risques d'identification comme pourriel.
12 août 2015Ajout de l'option CRYPT aux questions RELATION.
5 août 2015Ajout de l'instruction dièse # Load JavaScript Library.
15 juillet 2015Les variables BOX respectent l'instruction FORMAT.
10 juillet 2015La fonction email peut envoyer une copie cachée.
4 mars2015Les liens {JUMP} peuvent maintenant être chiffrés grâce à {JUMPC}.
3 mars 2015Ajout de l'instruction dièse # Toujours ouvrir a.
3 mars 2015Ajout de l'option NOPARAGRAPH à la ligne du nom de la question.
17 février 2015Ajout de conditions d'affichage aux colonnes du tableau des enfants dans les questions RELATION.
16 février 2015Ajout du code de comportement K pour éviter un retour à la ligne avant une partie ouverte alphanumérique.
17 janvier 2015Ajout des instructions dièses # Position des boutons haut et # Position des boutons bas.
11 janvier 2015Ajout du code de comportement E pour définir une catégorie comme un titre.
10 janvier 2015Ajout des instructions dièses # Image Erreur Champ et # Image Erreur Page.
10 janvier 2015Ajout de l'option NOLANGUAGE à la ligne du nom de la question pour ne pas afficher le(s) bouton(s) de langue.
10 janvier 2015Ajout de l'instruction usager.conf max_spss_alpha_field pour permettre la lecture de plus de 254 caractères dans les champs alphanumériques en SPSS.
15 septembre 2014cwprepop ne tient pas compte des lignes de prépopulation qui commencent par une chaîne de commentaire (##), permettant donc de commenter les fichiers de données.
20 août 2014Les instructions dièses # IMAGE GAUCHE, # IMAGE DROITE, # IMAGE SUBMIT, # IMAGE STOP acceptent les substitutions et donc les rappels condtitionnels.
20 juillet 2014cwfreq utilise maintenant calc_graph pour construire des graphes des distributions univariées et bivariées.
20 juillet 2014Ajout de la fonction calc_graph.
15 juillet 2014Ajout du type de question GOTOURL.
13 juillet 2014L'instruction dièse # Executer si peut appeler plus d'une question CALCUL.
13 juillet 2014Ajout d'une extraction de questionnaire en format Triple-S XML 2.0.
13 juillet 2014Ajout de l'instruction dièse # Projet Pretest pour identifier le projet CallWeb utilisé pour le prétest.
12 juillet 2014Tenter de démarrer un questionnaire à une question inexistante est interdit.
12 juillet 2014Ajout de l'option ORDER_BY aux questions RELATION.
27 juin 2014Ajout de l'option READ_ALSO aux questions RELATION.
8 avril 2014Ajout de l'option ERASE_CALCUL aux questions RELATION.
1er avril 2014Le nombre de lignes d'une boîte de texte multi-ligne s'ajuste à la quantité de texte saisie.
15 novembre 2013Ajout du type de question CATEGORIES qui tire ses catégories de réponses du contenu d'une partie ouverte.
5 novembre 2013Ajout de la substitution .
5 novembre 2013Ajout des fonctions obscurcir/cover et decouvrir/uncover.
9 août 2013cwxlog.cgi extrait de l'information du journal de l'instance locale.
8 août 2013L'extraction de base de données à base de données peut utiliser un port autre que le port par défaut de MySQL.
16 juin 2013Ajout du délimiteur tilde à la substitution par &#RAPPEL pour permettre l'absence d'espace après un tel rappel.
15 juin 2013Les instructions dièses # LIRE et # NE PAS LIRE peuvent utiliser des substitutions.
13 juin 2013cwextr.cgi produit du code SAS et SPSS plus compact.
22 mai 2013Les conditions d'erreur dans l'envoi de messages par courriel gardent maintenant une trace de la date et de l'heure de la tentative avortée.
8 mai 2013Ajout de contrôle plus précis sur le mode imprimé.
8 mai 2013Ajout du type de question DONOTPRINT qui saute la question en mode imprimé.
6 mai 2013Modification de plusieurs attributions de styles dans les modules administratifs pour une apparence plus unifiée et un contrôle accru sur l'expérience des usagers. Feuille de style et charte de couleur officielles de CallWeb.
25 avril 2013Ajout du type de question PAGEBREAK.
25 avril 2013Ajout des options d'URL _debute et _termine utilisées de concert avec _print.
29 mars 2013Ajout de l'instruction dièse # Executer si.
29 mars 2013Ajout de la capacité d'accorder des permissions pour cwdocs.cgi sur la base des répertoires.
19 février 2013L'instruction dièse "# Contraindre la longueur des reponses" affiche le nombre de caractères permis dans une boîte de texte multi-lignes ainsi que le nombre de caractères restants.
28 janvier 2013Ajout de l'instruction usager.conf out_of_service pour bloquer temporairement l'accès aux questionnaires et afficher un message général d'indisponibilité.
28 janvier 2013Ajout de l'instruction dièse # Repertoire des boutons radios pour relocaliser les images de boutons radios et de cases à cocher.
26 janvier 2013Les mots de passe utilisés pour accéder aux modules utilitaires peuvent expirer après un certain nombre de jours grâce aux instructions d'installation login_pw_valid_days, login_pw_allow_same, login_pw_rules et login_pw_rules_message.
17 janvier 2013Ajout de l'instruction dièse # Suffixe des boutons radios pour changer l'apparence des boutons radios et des cases à cocher.
14 janvier 2013Ajout des instructions dièses # Figer les donnees si et # Message donnees figees.
2 janvier 2013L'instruction dièse Gabarit accepte les substitutions.
2 janvier 2013Ajout de l'opérateur MOBILE() dans les conditions d'affichage.
2 janvier 2013L'instruction dièse Stylesheet accepte les substitutions.
20 décembre 2012Le type de partie ouverte D accepte des expressions Perl (entre accolades) pour les bornes minimale et maximale.
19 décembre 2012Ajout de l'instruction dièse Separateur de milliers.
7 décembre 2012Ajout de la fonction combine_into_multiple.
3 décembre 2012Ajout de code JavaScript pour éviter d'envoyer la page de questionnaire CallWeb en utilisant la touche Retour dans une case texte.
2 décembre 2012Nouveau type de question SUGG (SUGGère) qui avise une seule fois d'un nombre insuffisant de réponses à une question.
28 novembre 2012L'instruction <COMPUTE BUTTON> comporte un paramètre additionnel pour court-circuiter les validations normales de questions.
28 novembre 2012Le compilateur peut copier des fichiers .scw et les fichiers # INCLUDE associés se trouvant sur un server distant (tout en créant les répertoires nécessaires et sans projet de départ).
24 novembre 2012Ajout de la fonction n_dossiers.
12 octobre 2012Ajout de la fonction sauf_codes.
3 octobre 2012Ajout du mot de passe chiffré à l'information contextuelle.
3 octobre 2012Ajout du paramètre _epw aux URLs.
2 octobre 2012Ajout d'une librairie JavaScript et addition des boîtes à cocher intelligentes.
19 juillet 2012Ajout de l'option « Mot de passe » à l'instruction dièse Type Enquete. Ce type de contrôle d'accès est basé sur un code d'usager fixe et un mot de passe modifiable. Une recette décrit ce système en détail.
26 juin 2012Ajout de la fonction dernier_acces dans les questions calculées.
7 juin 2012Avec une partie ouverte de type L, une condition de sélection peut être spécifiée pour limiter les valeurs affichées dans la liste déroulante.
30 mai 2012Nouveau mode « comprimé » associé au mode « imprimé »dans le module intégré : il omet d'afficher les boutons radios de la première variable d'une matrice pour accorder plus d'espace aux étiquettes de lignes, fournissant donc un imprimé plus serré.
17 mai 2012Ajout de l'instruction dièse « mot de passe cwemail » pour contrôler l'envoi de messages courriels par cwemail.
7 décembre 2011Les instructions dièses suivantes peuvent accepter des substitutions (y inclus une substitution conditionnelle): URL, Titre HTML et Telkey pattern.
30 novembre 2011Si une question <BOX> ne comporte pas de partie ouverte, les choix de réponses fermés sont présentés sous forme de liste déroulante.
23 novembre 2011Les instructions dièses # BOUTON STOP et # AFFICHE THERMOMETRE peuvent accepter des substitutions (incluant une substitution conditionnelle) en lieu et place d'un nom de question.
21 novembre 2011L'instruction dièse # BOUTON STOP peut être contrôlée par une condition d'affichage.
16 novembre 2011Le mode imprimé (qui affiche un questionnaire complet sur une seule page Web) peut insérer des marqueurs de sauts de page de questionnaire et des sauts de page réels à l'imprimé.
5 novembre 2011Le type de question SCALE centre l'échelle sur la page si la largeur des colonnes est préfixée d'un C (p.ex., SCALE=C80).
5 novembre 2011Ajout de l'instruction dièse « cwarchive zip password » pour chiffrer les données archivées dans un fichier zip.
5 novembre 2011Ajout de l'instruction dièse « cwcompile zip password » pour chiffrer les informations extraites dans un fichier zip lors d'une compilation.
5 novembre 2011Ajout de l'instruction dièse « cwemail report to » fournissant une adresse de courriel où livrer le rapport d'envoi de courriels par cwemail.cgi en mode turbo.
5 novembre 2011cwautoemail.pl ne démarre pas une instruction autoemail si un appel précédent de la même instruction est toujours en traitement.
1er novembre 2011Dans cwemail.cgi, ajout d'un rapport sur les messages en attente en file et capacité de détruire des files d'attente de messages.
27 octobre 2011Ajout de l'instruction dièse « Cwextr Zip Password » pour chiffrer les données extraites dans le fichier zip.
10 octobre 2011Reconceptualisation en profondeur du mécanisme d'envoi des courriels par l'utilisation du mode démon. En conséquence, performance décuplée de l'instruction dièse « Autoemail » et du module cwemail.cgi, avec une charge moindre sur le serveur.
27 août 2011Nouvelle fonction n_appels.
23 août 2011cwedit.cgi reconnaît une ligne de commentaire située entre la ligne de nom de question et la ligne pourcent indiquant le début de la section du texte de la question.
21 août 2011cwautoemail.pl exige que l'identité du client CallWeb soit ajoutée en argument, p.ex., "perl cwautoemail.cgi PROD &". Ceci permet l'exécution concurrente du script dans différentes instances de CallWeb sur un même serveur.
7 juillet 2011Ajout de diverses instructions d'installation qui accroissent la sécurité des fichiers dans les répertoires de projets : default_cwpermissions_directory_permissions, default_cwpermissions_file_permissions, cwpermissions_deletes_from_cwdir et exclude_from_cwcompile_backup.
21 juin 2011Ajout du code de comportement tilde (~) pour désactiver l'affichage du calendrier d'une partie ouverte D.
4 avril 2011Le module d'archivage peut sauvegarder les copies de sécurité dans un répertoire autre que le répertoire de projet, y inclus sur un autre serveur.
29 mars 2011Ajout du type de question DESTOP qui branche vers la question depuis laquelle le bouton STOP a été utilisé.
28 février 2011Le module intégré peut afficher une interface simplifiée pour un unique projet.
25 février 2011Ajout de l'opérateur NREPONSES dans les conditions d'affichage; il retourne le nombre de réponses fournies à une question.
23 février 2011Ajout de l'instruction dièse « Activer le mode mobile » pour afficher des pages plus simples aux appareils mobiles.
23 février 2011Ajout de l'instruction dièse « M_ mise en evidence » pour définir la couleur de la mise en évidence.
22 février 2011Ajout de l'instruction dièse « Mise en evidence des cellules » pour désactiver cette fonction dans les questionnaires.
14 février 2011Ajout de la function indexposition.
1er février 2011La « valeur » utilisée dans les filtres des modules utilitaires peut être « $semaine » ou « $NNsemaines ». Ces expressions sont traduites en date d'il y a autant de semaines.
30 janvier 2011Ajout de la structure <parent></parent> qui permet de spécifier du texte alternatif dans les questions et les catégories de réponse pour affichage dans les tableaux RELATION.
24 janvier 2011cwupload.cgi est maintenant intégré à cwdocs.cgi. Veuillez détruire cwupload.cgi du répertoire des utilitaires.
18 janvier 2011Rétablissement des mots de passe en lecture et écriture au niveau des projets, par demande populaire, en plus du système de contrôle d'accès.
9 janvier 2011Ajout du concept de groupe de permissions ou de permissions dynamiques au système de contrôle d'accès.
31 décembre 2010Ajout d'un système complet de contrôle d'accès aux modules administratifs et utilitaires.
15 décembre 2010Améliorations aux codes de comportement de catégories de réponse permettant de contrôler le placement de la boîte ouverte autour de l'étiquette de réponse.
25 novembre 2010Ajout de la capacité de téléverser des documents sur le serveur en utilisant une partie ouverte de type « F ».
21 novembre 2010Le module cwedit offre le verrouillage au niveau des questions, permettant donc l'édition de questionnaires par plusieurs usagers concurremment.
21 novembre 2010La gestion des courriels non acheminés est maintenant effectuée, beaucoup plus efficacement et économiquement, par le daemon CallWeb.
21 novembre 2010cwextr.cgi extrait un fichier .tcw standard même quand des dichotomies multiples sont exigées.
21 novembre 2010Les tableaux bivariés peuvent maintenant exclure les colonnes sans effectif.
20 novembre 2010Ajout du type de question NOPRETEST pour annulé l'effet de « # PRETEST » pour une question particulière.
19 novembre 2010La barre de progression peut ne pas comporter de texte à sa droite grâce au mot-clef MUET de # Affiche thermometre.
19 novembre 2010CallWeb efface les caractères exogènes (comme un point) dans le nom du projet dans un URL pour éviter des liens brisés provenant de courriels.
20 octobre 2010"# Questions attributables" est testée pour identifier des noms de variables inexistantes.
9 octobre 2010Un message de patience est affiché sur les pages de questionnaires pendant que cwcompile efface un champ d'une base de données de projet.
17 juillet 2010cwcompile identifie la présence d'un saut inconditionnel depuis une question autre que la dernière d'une page à plusieurs questions comme une erreur.
16 juillet 2010La nouvelle function calculée « time_between » retourne la durée entre deux dates ou heures.
16 juillet 2010Ajout de l'instruction dièse « cwemail envoyeur par defaut » pour préciser l'adresse technique d'envoi du courriel dans cwemail.
13 juillet 2010Ajout de l'instruction dièse use_telkey_table pour ajuster l'instruction d'installation use_telkey_table projet par projet (nécessaire pour que BASEpretest fonctionne correctement).
12 juillet 2010Ajout du concept d'« avertissement » à cwcompile : les messages d'avetissement sont affichés durant la compilation mais ne l'interrompent pas.
10 juillet 2010Ajout du concept de « SUFFIXE titre » qui transforme automatiquement une question SUFFIXE en un titre dans un tableau.
8 juillet 2010Ajout de la capacité de confirmer l'effacement des enfants dans les projets hiérarchiques.
2 juillet 2010Les rappels &# sont affichés de manière intelligible dans cwquestionnaire et cwfreq ainsi que dans le mode questionnaire si l'option d'affichage des codes de rappel est sélectionnée.
1er juillet 2010La fonction email peut envoyer une copie conforme.
30 juin 2010cwemail.cgi peut produire un énoncé # AUTOEMAIL à partir des sélections effectuées dans l'interface.
17 juin 2010La nouvelle function calculée « shuffle_code_labels » retourne le texte d'une série de codes de réponses, dans un ordre aléatoire.
12 juin 2010cwextr peut sauver une extraction dans n'importe quel répertoire de l'ordinateur CallWeb. Ceci peut être particulièrement utile pour extraire des données d'un ordinateur CallWeb portable sur une clef USB. Voir l'instruction dièse # repertoire sauvegarde cwextr.
11 juin 2010Ajout de l'instruction dièse # Extraction de largeur minimale.
3 juin 2010Nouvelle option d'extraction pour ajouter le nom de la question en préfixe de l'étiquette de variable.
31 mai 2010cwdossier.cgi affiche le nom de la question depuis cwnav.cgi.
31 mai2010cwcompile.cgi permet des lignes vides entre deux définitions de questions dans le fichier .scw.
21 mai 2010Ajout d'un tableau de _telkeys réservés, pour mieux contrôler l'attribution de _telkeys dans les projets ouverts. Associé à la nouvelle instruction d'installation « use_telkey_table ».
19 mai 2010Ajout de la création d'un fichier .scw de base à partir d'un fichier de données délimité-tab.
12 mai 2010Ajout d'inversions parallèles grâce à INVERSION=Qx : l'inversion des catégories de réponses d'une question est copiée de l'inversion des catégories de réponses d'une autre question.
11 mai 2010L'instruction FORMAT ajoute maintenant des séparateurs de milliers lorsque des formats numériques sont utilisés.
19 avril 2010Ajout de l'en-tête list-unsubscribe aux messages produits par cwemail.cgi et cwautoemail.pl ainsi que de l'instruction d'installation « list unsubscribe » correspondante.
18 avril 2010Ajout de l'en-tête sender aux messages produits par cwemail.cgi et cwautoemail.pl.
8 avril 2010cwextr.cgi peut utiliser un délimiteur différent de la virgule dans les fichiers csv (utile pour ceux et celles qui utilisent une version autre qu'anglaise d'Excel, par exemple). La nouvelle instruction d'installation csv_delimiter peut faire de ce nouveau délimiteur la valeur par défaut de l'instance.
8 avril 2010Une comparaison des fichiers .scw et .scw.last est sauvegardée dans le fichier .zip créé par chaque compilation de questionnaire.
6 avril 2010Ajout de l'opérateur QUESTION() dans les conditions d'affichage.
15 mars 2010cwcompile.cgi identifie une erreur en l'absence d'un calcul dans une question CALCUL.
13 mars 2010L'instruction dièse "# Contraindre la longueur des reponses" limite dynamiquement le nombre de caractères saisis dans une réponse alpha-numérique multi-ligne à la limite définie dans le questionnaire (en autant que JavaScript soit activé dans le navigateur de l'utilisateur.
11 février 2010cwextr.cgi produit un rapport sur les paramètres de l'extraction et le place dans le fichier .zip d'extraction dans le fichier _info_.txt.
10 février 2010Les compteurs historiques de cwstats.cgi peuvent être réinitialisés.
8 février 2010L'instruction « # Controle par cookie » réouvre maintenant la dernière page affichée d'un seul et même dossier comme si le _telkey avait été fourni dans l'argument.
24 janvier 2010Ajout du mode « personnalisé » qui affiche une version personnalisée du questionnaire (avec réponses) pour un _telkey particulier.
23 janvier 2010Ajout d'indices pour expliquer les options dans le module intégré.
12 décembre 2009Ajout de la création de code Stata dans l'extracteur.
11 décembre 2009cwnav.cgi peut recalculater plusieurs champs à la fois.
22 novembre 2009Le texte des divers boutons (Page suivante, Page précédente, Soumettre, Stop, Sauver et fermer) peut utiliser toutes les syntaxes de rappels de valeurs. En particulier, le texte des boutons peut utiliser l'instruction « # Rappel » conditionnelle et donc s'adapter complètement au contexte du questionnaire.
22 novembre 2009Ajout du type de question SUBMIT qui utilise les instructions dièses « # Texte submit » et « # Image submit » pour le bouton de Page suivante.
22 novembre 2009Ajout du type de question NOPRINTCAT qui désactive l'impression des catégories de réponse en mode imprimé (utile pour les très longues listes de catégories).
22 novembre 2009Ajout des tris en ordre décroissant dans cwnav.cgi.
22 novembre 2009Ajout de l'option REPORTTO à # AutoEmail.
11 novembre 2009Ajout de l'instruction # Access send telkey image; elle définit une image pour le bouton d'envoi sur la page de demande de mot de passe.
29 octobre 2009Les substitutions peuvent être utilisées dans les messages systèmes.
20 octobre 2009Ajout de la fonction add_to_date.
20 octobre 2009Ajout de l'instruction dièse "# Contraindre la longueur des reponses" pour produire un message d'erreur si une réponse alpha-numérique multi-ligne est plus longue que la limite définie dans le questionnaire.
6 octobre 2009Ajout de l'instruction dièse # Stylesheet pour définir un fichier de styles pour un projet particulier.
2 août 2009Ajout de l'option FORMAT ZERO pour les parties ouvertes numériques.
21 août 2009Ajout d'un contrôle par CSS des boutons de questionnaires, des boîtes textes et numériques, et des listes déroulantes.
17 juillet 2009Ajout d'une sélection automatique de tous les dossiers dans les modules utilitaires.
10 juillet 2009Ajout de la condition AUTREMENT à l'instruction dièse RAPPEL.
10 juillet 2009Ajout de l'opérateur NONVIDE pour les conditions logiques.
24 juin 2009Ajout de la fonction straightlined qui identifie le comportement de straightlining dans les sondages Web.
23 juin 2009Ajout de la fonction put_values_in_case qui peut placer des valeurs dans n'importe quel champ de n'importe quel dossier de n'importe quel projet, ainsi que créer des dossiers dans un projet.
10 juin 2009L'instruction dièse RAPPEL permet maintenant de rappeler du texte ou des valeurs sur la base de conditions d'affichage.
25 mai 2009Ajout du contrôle sur la largeur maximale des étiquettes de variables et de valeurs produites par cwextr.cgi pour SPSS et autres logiciels. Les valeurs par défaut peuvent être précisées dans le fichier de configuration.
9 mai 2009Ajout du code de comportement de catégorie de réponse « ) » qui place le texte dans une cellule de tableau (code de comportement « M ») à droite du bouton radio ou de la case à cocher. Voir aussi « # Position texte M »
5 mai 2009Ajout du type de question AUTONEXT qui passe automatiquement à l'écran suivant du questionnaire après un nombre prédéterminé de secondes.
1er mai 2009Ajout d'une option d'installation (interviewer_timer) contrôlant l'affichage d'un chronomètre à l'interviewer.
30 avril 2009Nouvelle capacité d'annuler des mises à jour du système CallWeb.
30 avril 2009Nouveau code de comportement de catégorie de réponse A qui Affiche toujours la catégorie dans les tableaux cwfreq.cgi.
28 avril 2009La syntaxe des URLs courts a été rendue plus flexible.
18 avril 2009Ajout de la capacité de démarrer cwautoemail.pl manuellement pour un projet particulier depuis cwemail.
18 avril 2009Ajout de la capacité d'envoyer des copies carbones dans cwemail et dans les instruction dièses Auto Email.
17 avril 2009Ajout de la capacité de tester les instruction dièses Auto Email depuis cwemail.
17 avril 2009Ajout de l'option ACTIVE à l'instruction dièse Auto Email pour activer et désactiver de telles instructions.
16 avril 2009cwautoemail envoie un message à l'administrateur du système après avoir complété une tâche.
14 avril 2009Ajout d'une option d'installation (notify_every) contrôlant la fréquence des messages concernant les projects inactifs.
9 avril 2009Ajout d'une exception à l'utilisation de CSS pour la composition de la barre de progression sous Internet Explorer 6 qui ne rend pas le code CSS correctement. Le vieux code utilisant des tableaux imbriqués est alors utilisé.
8 avril 2009Ajout d'un rappel par courriel concernant les projets inactifs depuis plus de 14 jours (ce délai est modifiable dans le fichier de configuration).
7 avril 2009Ajout de la fonction test_email_address pour vérifier qu'une adresse de courriel est livrable.
5 avril 2009La barre de progression reflète fidèlement le cheminement dans le questionnaire lorsque des permutations sont faites sur plusieurs pages.
4 avril 2009Ajout des types de questions MEMEXCL et VBTMEXCL pour exclure des questions des traitements MEMO et VERBATIM.
27 mars 2009Toute nouvelle série d'instructions dièses pour les barres de progression : "# Largeur thermometre", "# Hauteur thermometre", "# Largeur bordure thermometre", "# Couleur bordure thermometre", "# Largeur espace thermometre", "# Couleur espace thermometre"
24 mars 2009Les modules callweb.cgi et cwx.cgi peuvent afficher les codes de rappel (plutôt que les rappels eux-mêmes) et éviter les permutations de sorte à produire une version stable du questionnaire pour l'impression et le partage.
22 mars 2009Les modules callweb.cgi et cwx.cgi peuvent afficher les codes de réponses, les conditions d'affichage et les sauts. De pair avec le mode imprimé, qui affiche tout le questionnaire sur une seule page Web, ceci permet la production de versions des questionnaires à partager avec les personnes moins habiles sur le plan technique.
21 mars 2009Le nouveau mode daemon de CallWeb est prêt pour la production.
17 février 2009Tous les éléments du nouveau mode daemon de CallWeb sont en place — mais pas encore mis en production.
14 février 2009Ajout d'une table de matières hyperliée à la sortie de cwfreq.cgi si plus d'un tableau est produit.
10 février 2009Optimisation de cwautoemail.pl pour éviter les délais associés aux champs d'adresses de courriel vides.
9 février 2009Les changements structurels à la base de données peuvent être acceptés durant la compilation s'ils constituent le seul enjeu de compilation.
8 février 2009Ajout du « mode formation » qui affiche le questionnaire sans saut ni condition d'affichage, et sans faire la substitution des rappels de réponses. Ce mode de démonstration est conçu pour la formation des interviewers.
7 février 2009Ajout de l'instruction dièse « # Gabarit » qui permet de construire des pages de questionnaire sur la base de pages HTML existantes. Maintenant, vous pouvez reproduire l'apparence de sites Web existants ou implanter des pages normalisées comme celles de l'initiative de normalisation des sites Web du Gouvernement du Canada.
1er février 2009Ajout des instructions dièses « # Button order top » et « # Button order bottom » qui remplacent l'instruction « # Button order ». La rétro-compatibilité est assurée.
1er février 2009Les catégories de réponses contrôlées par # Auto submit sont soumises au style AUTOSUBMIT; elles peuvent donc afficher leur statut Auto-submit.
1er février 2009Reconceptualisation en profondeur du système de production des pages de questionnaires qui permettra d'ajouter plusieurs nouveaux outils.
13 janvier 2009Un journal des changements structurels effectués sur les questionnaires est conservé dans le fichier projet.change.log.
15 décembre 2008La priorité des messages peut être précisée dans cwemail.cgi.
8 décembre 2008cwedit.cgi sauve les fichiers .scw avec des caractères de fins de lignes Windows.
23 novembre 2008Ajout de la capacité d'insérer toute instruction dièse dans le fichier de configuration du système.
6 novembre 2008Ajoute de l'instruction dièse Auto submit pour accélérer le travail CATI.
22 septembre 2008Ajout de l'extraction de code R pour la lecture des fichiers de données CallWeb.
18 septembre 2008Les extractions aux fichiers .csv peuvent maintenant compter davantage de champs pour utiliser les capacités accrues de Excel 2007.
4 septembre 2008Les tableaux univariés et bivariés peuvent maintenant exclure les lignes sans effectif.
26 juin 2008Ajout de l'instruction d'installation comparative_results pour afficher de l'information sur la productivité des interviewers aux interviewers.
20 juin 2008Le champ obligatoire _telkey peut être placé n'importe où dans un fichier de prépopulationnement.
17 juin 2008Le système de Pretest a été modifié de sorte que les notes de prétest d'une question particulière dans un dossier spécifique sont réaffichées lorsque le lien de prétest est réutilisé pour cette même question dans ce même dossier.
16 juin 2008Ajout de l'instruction dièse Allow new in open combination qui contrôle la permission d'ajout de nouveaux dossiers dans le mode « Ouvert combinaison ».
9 juin 2008Révision majeure du code de production des pages de questionnaires pour rendre celles-ci compatibles avec la norme XHTML. Les modules d'appui seront modifiés prochainement.
20 avril 2008Nouveau module de gestion des fichiers cwdocs avec lequel les usagers peuvent créer, effacer, copier, renommer et déplacer des répertoires, téléverser, télécharger, effacer, copier, renommer et déplacer des fichiers sur le serveur sans nécessiter d'application locale autre qu'un navigateur.
9 avril 2008Des modules particuliers accessibles depuis le menu intégré (peut-être des modules moins utilisés) peuvent être éliminés du menu.
4 avril 2008Ajout de l'instruction dièse Robot caller id qui identifie le numéro que le robot d'appels affiche.
16 mars 2008Ajout de l'instruction de sélection de codes de réponse CODESIN et de la fonction de gestion de base de données pull_value.
3 mars 2008Ajout de l'opérateur LANGUE dans les conditions d'affichage pour spécifier des versions linguistiques du questionnaire.
19 février 2008Ajout de la variable système _semaine qui indique la date du dernier accès au questionnaire exprimée en date-semaine.
14 février 2008Améliorations dans la gestion des courriels dans cwemail.cgi : meilleure identification des domaines inaccessibles, codes d'erreurs additionnels dans le champ de sortie.
12 février 2008Nouvelle fonction de calcul « push_value » servant à placer une valeur dans une question dans n'importe quel projet sur la base de conditions de sélections arbitraires.
2 février 2008Ajout de deux critères de sélection de dossiers dans tous les programmes utilitaires : « dans une liste de valeurs » et « en-dehors d'une liste de valeurs »
31 janvier 2008cwquestionnaire.cgi peut produire des imprimés de questionnaires polyglotes.
4 décembre 2007La comparaison multiple de suites et de valeurs ponctuelles est maintenant possible dans les conditions d'affichage (p.ex., Q1.EQ.1-5,7).
13 novembre 2007Nouveau type de question SEMANTIC pour simplifier la programmation d'échelles de sémantique différentielle.
12 novembre 2007Un champ INFOCATI comportant une partie ouverte de type T affiche un bouton de signalement si le projet utilise un signaleur.
12 novembre 2007Le module cwquestionnaire peut afficher les alias de catégories de réponses.
9 novembre 2007cwfreq.cgi est maintenant capable d'afficher distributions de fréquences et tableaux en ordre décroissant de fréquences.
23 octobre 2007Ajout de la capacité de commenter différentes parties de la définition d'une question; ces commentaires sont affichés par cwquestionnaire.cgi
20 octobre 2007Dans le module cwemail.cgi, il est possible de tester un envoi à une seule adresse.
18 octobre 2007Ajout de la possibilité de copier un script CallWeb d'un autre serveur avant la compilation.
October 14, 2007Open-end questions associated with <BOX> instructions don't need to be defined before their use in the questionnaire anymore.
October 12, 2007Addition of the <COMPUTE BUTTON> instruction which displays a new button on the page and performs arbitrarily simple or complex calculations before returning to the same questionnaire page.
October 6, 2007In the presentation of a table involving _cetecran, cwfreq hyperlinks to a cwquestionnaire display of the question.
September 14, 2007In cwnav.cgi, if a multiple-response question is edited in boxed mass edit mode, different values can be separated by commas or spaces. CallWeb edits the data upon Action! to delimit the values using "μ" characters.
September 3, 2007In table presentations, answer categories that would never be selectable because of display conditions are not shown.
September 2, 2007Addition a mechanism to # Auto email to avoid bombarding a domain with messages and, thereby, reduce the risks of being black-listed or identified as a spammer.
September 2, 2007Addition of links to other utility programs, passing along all common parameters. This allows to carry over a case selection (and other parameters) automatically from one utility program to another.
August 29, 2007Addition of an optional title displayed in utility programs (cwnav.cgi, cwfreq.cgi, cwoutcomes.cgi and cwquestionnaire.cgi). It is formatted with the EQUIVALENTH5 style by default.
August 28, 2007cwcompile.cgi compares the ID of the current user to that of the most recent person who compiled a project and reports discrepancies.
August 18, 2007Addition of the BASEpretest pound instruction which activates the CallWeb pretest mode. See the related recipe.
August 11, 2007Addition of the NOTEST question type which cancels compilation tests on response categories for a certain question; useful to speed up the compilation when a question includes thousands of answer categories, it has been tested in the past and no change was made to it).
August 9, 2007CallWeb now implements parallel permutations where the random order of one set of variables is mirrored in another set.
August 6, 2007cwextr.cgi can now extract directly into another CallWeb data base located on the same server or another server.
July 10, 2007cwarchive.pl keeps the questionnaire script .scw file and the style.css file in the .zip archive along with the .tcw version of the data.
July 5, 2007In addition to optionally showing field display conditions in the header of the tables, cwfreq.cgi can acknowledge the presence of skip patterns — which is helpful in assessing the integrity of the data.
June 26, 2007Addition of the capacity to recalculate CALCUL questions on any number of data records from within cwnav.cgi.
June 20, 2007Addition of the BASEclicks pound instruction which speeds up calls to callweb.cgi.
June 2, 2007CHECKALL can be used in conjunction with the copy of answer categories.
June 2, 2007Assuming no language parameter is passed on to CallWeb, the questionnaire now start in the first language accepted by the respondent's browser if this language exists in the questionnaire. The default language is used otherwise.
May 25, 2007New DEACTIVATE PAGES pound instruction which shortcircuits the GROUP (ECRAN) and TABLE (MATRICE) instructions in the questionnaire. It may serve to linearize a questionnaire for CATI purposes.
May 18, 2007E-mail messages are sent no faster than one per five seconds to any given domain to avoid bombarding.
May 17, 2007Several constraints in the management of multi-server projects are lifted.
May 13, 2007New RECALL pound instruction which provides another method to substitute text and values in questionnaires.
May 12, 2007Recalls can now be made within recalls (of any type within any type and at any depth level).
April 24, 2007cwupdate.pl can now run at the cron.minute pace, allowing for much more dynamic system updates.
April 23, 2007The short CallWeb syntax may now include the name of the initial question in the questionnaire.
April 19, 2007New recode function to recode answers into another coding scheme.
April 19, 2007New I answer behaviour code which makes the code invisible.
April 17, 2007The RTF (Word-printable) version of the questionnaire is now uploaded to the workstation where it can be opened directly into Microsoft Word (or other RTF-compliant word processing programs) instead of being displayed on screen.
April 11, 2007Addition of the POSITION parameter in the definition of tables to put the table on the left side of the page, on the right or centered.
March 31, 2007Using the Control by cookie pound instruction, addition of the capacity to limit the creation of a single questionnaire using cookies.
March 28, 2007Addition of the New question order pound instruction to put questions in an order that is different from the sequential order of the .scw file. This is useful to allow the SUFFIX syntax with non-contiguous questions.
March 18, 2007Addition of security controls to avoid illegitimate form submissions by spammers.
March 16, 2007Addition of the capacity to open a particular record in cwnav.cgi from the integrated interface cw.cgi.
March 14, 2007Addition of the # Button position pound instruction to locate the submission buttons on the page.
March 13, 2007Addition of the V answer category behaviour code to flag missing values in univariate tables in cwfreq.
March 9, 2007The "<", "=" and ">" answer category behaviour codes also control drop-down lists located in tables.
March 8, 2007Addition of three answer category behaviour codes to control the location of open-end boxes within cells of tables.
February 14, 2007Addition of the administrator_email installation parameter used to automatically send information on available system updates.
February 9, 2007Acceleration of the look-up of answer categories.
February 7, 2007Addition of parallel permutations using ROTATON=Qx whereby the permutation of answer categories is made the same as the permutation of answer categories in another question.
February 3, 2007New M open-end part to create "password" fields (M for mot de passe) which display asterisks in the input box upon data entry.
January 31, 2007Data extraction can now respect the width of the closed data fields instead of outputing a fixed number of columns.
January 30, 2007New response category behaviour code B to identify codes which are not subject to permutation, inversion or alpha order.
January 27, 2007Response aliases can be labelled using letters and numbers, not only numbers.
January 24, 2007Hierarchical projects can link to a subset of children not associated with the current parent.
January 12, 2007cwfreq can display absolute-frequency-only tables (without percentages).
January 10, 2007Addition of readable date and date-time values in the context data.
January 8, 2007Addition of the concept of answer code alias which can be used in recalls to display different text without having to create extra questions or use the somewhat involved EXECUTE syntax. See the recipe about it.
January 5, 2007New operators ISEMPTY and ESTVIDE for display conditions and x-base logical expressions generally. They identify fields which contain no data. They replace the ".NOT.field" syntax which is made obsolete by allowing zeros in answer categories.
January 5, 2007Answer categories may now use zero as a code.
December 13, 2006Open-end parts of [D]ate type automatically pop a calendar (as long as the browser accepts JavaScript code) upon clicking into the open-end box. The respondent can pick a date from that calendar.
December 7, 2006The questionnaire progress bar is now based on the number of questionnaire pages displayed to the respondent instead of the number of question prompts.
November 7, 2006cwnav hyperlinks directly to the .wav recordings of telephone interviews (an Asterisk server is used to control the telephone conversation and record the interview).
November 3, 2006New Refuse duplicates in cwprepop pound instruction.
November 2, 2006New random_subset function to select a random subset of responses to a multiple-response question.
November 2, 2006cwprepop flags invalid numeric values associated with close-ended questions.
October 31, 2006Ability to format a 10-digit number as a telephone number when displaying it.
October 25, 2006The integrated module can hide or display BASE projects.
October 24, 2006New CATI selection 3 pound instruction.
September 29, 2006Values can be truncated independently for lines and columns in cwfreq.
September 28, 2006New MySQL engine pound instruction.
September 9, 2006New Display thermometer pound instruction replacing "Thermometer" with a more user friendly interface. "# Thermometer" is maintained for backward compatibility.
September 4, 2006The conditions used to select records in the CallWeb data base may now be entered as a full SQL expression in addition to the dropdown list-assisted traditional mode.
September 3, 2006Addition of the cwcheck module which reports cases with missing data and excess data (stemming from changes to the questionnaire part-way into the data collection) based on existing answers and the questionnaire logic.
August 30, 2006Implementation of a new (and much finer) mechanism to determine the colours in questionnaire tables.
August 26, 2006cwedit can be instructed to display only text fields so that the translation can take place in cwedit without fear of changing the structure of the questionnaire.
August 19, 2006Addition of the T answer behaviour code which asks to confirm a numeric open-end value which is outside the minimum and maximum bounds planned in the questionnaire.
August 11, 2006Default extraction file types and e-mail destinations can be specified in the instance configuration options.
August 2, 2006A report on the result of the most recent update is available from the integrated module.
July 30, 2006Addition of the ability to easily select the language of the questionnaire to extract for data processing purposes.
July 26, 2006Addition of the Extraction width pound instruction.
July 19, 2006Addition of the "ivr" mode to the CATI pound instruction.
May 20, 2006Addition of the ONCEACROSS parameter on the question name line to allow only one respondent to chose any given response category.
May 15, 2006RELATION questions feature a simpler user interface for respondents.
May 10, 2006The demo mode is now fully operational even on Closed, Open Combination and Open Offered survey types.
May 7, 2006The compiler now flags simple skips on non-exclusive codes of multiple-answer categories as errors.
May 5, 2006Production of an English and a French version of a symmary card of CallWeb syntax.
May 5, 2006The Survey type pound instruction can be expressed using clear type names rather than numeric codes.
April 30, 2006It is now possible to perform several extractions concurrently on a given project.
April 27, 2006Addition of the ONLYONCE parameter on the question name line to refuse to change the answer to a question.
April 24, 2006Data modification in cwnav can now be constrained to existing close list codes to simplify coding and to enhance quality control.
April 21, 2006A question name line and a SUFFIX note can modify the CORNER heading of a table.
April 18, 2006Addition of the NOTHERMOMETER parameter on the question name line to avoid displaying the progress bar.
April 15, 2006cwcompile reports duplicate answer codes.
April 11, 2006cwcompile now has an option to beautify scw files (adding indentation, labelling percent and exclamation lines).
April 10, 2006The positional parameters on the TABLE pound instruction are replaced by keywords.
April 10, 2006The positional parameters on the PERMUTATION pound instruction are replaced by keywords.
April 10, 2006The positional parameters for the minimum and maximum numbers of answers on the question name line are replaced by the MIN and MAX keywords.
April 7, 2006The D positional parameter on the question name line is replaced by the DROPDOWN keyword.
April 7, 2006Addition of a "search and replace" function in cwnav.
April 2, 2006Addition of cwupdate.cgi and cwupdate.pl which perform a scheduled update of the CallWeb system software.
March 24, 2006Addition of the CHECKALL question type.
March 24, 2006A CallWeb cookbook has been initiated which offers recipes for common and not so common tasks.
March 16, 2006In matrix format, radio buttons and checkboxes can be selected by clicking anywhere in the table cell.
March 15, 2006It is now possible to back track to a question without responses or allowing no response.
March 10, 2006Addition of the "Second line of buttons" pound instruction.
March 9, 2006Addition of the project name and of the date of the last update to the questionnaire in the context data.
March 8, 2006If the first column of a matrix is empty, it is not displayed.
February 27, 2006Launch of the first version of cwgen which generates random test data to verify the integrity of a questionnaire logic.
February 16, 2006The "value" used in subsetting comparisons in utility programs may be "$today" or "$aujourdhui" or "$yesterday" or "$hier". These expressions are then translated into the appropriate date.
February 10, 2006The new VERBATIM question type (meant for use in CATI mode) allows for the easy cleaning of character open-ends at the end of an interview.
February 9, 2006The frequencies displayed by cwquestionnaire can use a filtering expression so as to report only a subset of the cases.
January 23, 2006The new # Mandatory question instruction can display a signal on every mandatory question in the questionnaire.
January 16, 2006The new _h3 system variable stores the dates and times of modifications performed on data from within cwnav (either in mass edit mode or in individual case edition).
January 16, 2006Dates of data prepopulation are now kept in _prepops; the new field _lastprepop contains the most recent prepopulation action date.
January 13, 2006E-mail messages, be they massive or individual, can now contain an HTML portion.
December 31, 2005cwextr can now extract only a subset of the questionnaire fields.
December 9, 2005cwedit can now copy questions from other projects within the instance of CallWeb.
November 30, 2005Addition of the # Deny access if instruction to block access to questionnaires.
November 15, 2005Addition of the # Thermometer colour instruction to determine the colour of the thermometer.
November 14, 2005Addition of the ability to add attachments to e-mail messages sent via cwemail.
November 10, 2005Addition of the System message pound instruction.
November 3, 2005Images used for the left, right and stop buttons can now be different from language to language.
October 31, 2005Addition of configuration options to define local telephone numbers in CATI mode.
October 25, 2005Addition of the # Master CATI server instruction which identifies which server may manage the CATI operations of a project.
October 24, 2005Addition of the # Copy questionnaire into instruction which sends a copy of a local questionnaire to a secondary CallWeb server.
October 23, 2005Addition of the # Master compilation server instruction which identifies which server may compile the project.
October 22, 2005Addition of the # Only for server instruction which makes a pound instruction conditional to which server the scripts runs on.
October 22, 2005Addition of the ability to switch languages using images rather than HTML buttons using the # Language image instruction.
October 19, 2005Initial launch of the beta version of cwedit which is a visual editing environment for CallWeb questionnaires.
October 14, 2005Optionally, cwquestionnaire can add actual data base frequencies and percentages into the questionnaire output.
October 5, 2005A new mechanism intercepts and reports (by interruption) the presence of infinite loops in questionnaires.
October 4, 2005Simple skips associated with CALCUL questions are now honoured. This simplifies multiple branching.
September 22, 2005The compiler refuses to process a script if a compiled script of the same name exists elsewhere in its CallWeb directory structure.
September 6, 2005The data base server is fully detached from the CallWeb server; it can reside on the same computer or on a separate one and one data base server can serve severa CallWeb servers.
August 30, 2005Individual projects can now have their individual installation (conf) files to specify parameters at the installation level such as the data base engine to use, the location of the data base server or the default language.
August 19, 2005cwtelkeys can now insert the newly created _telkeys directly into the project data base.
August 15, 2005Addition of the "Button Order" pound instruction to control the order of presentation of the buttons and thermometer at the bottom of each question screen.
August 11, 2005Addition of the "HTML Title" pound instruction to provide a title for the questionnaire HTML page.
August 8, 2005Addition of the S behaviour code which gives special formatting to response categories.
August 6, 2005Addition of the SCALE question type which displays the answers as a horizontal scale.
August 4, 2005Text can be added in the title cell above a drop-down list located in a table using the M behaviour code and the [COL] feature.
July 29, 2005Simplification of the integrated module (cw) to focus on key project management functions.
July 26, 2005Addition of a data export format (opn): open end parts along with their question name and _telkey.
July 20, 2005New utility (cwtelkeys) to create lists of _telkeys that are unique within a project.
June 5, 2005It is now possible to create entire batteries of questions much more rapidly, thanks to question cloning.
May 26, 2005The page explaining tables instructs on how to create semantic differential scales or repeated end-point scales.
May 25, 2005Improvements to _print mode which now displays only relevant fields; display conditions and skips are displayed in clear to make this questionnaire format readable as well as informative.
May 17, 2005Addition of the features to make unit-type questions possible.
May 17, 2005The minimum and maximum values of a numeric open-end part may now be Perl expressions (therefore, calculated values).
May 13, 2005Addition of a pound instruction to indicate that a CallWeb project runs in CATI context.
May 5, 2005Addition of function to facilitate the integration of dual-mode (Web + telephone) projects.
April 28, 2005Addition of a method to assign values based on calculated expressions in cwnav.
April 26, 2005A new minimalist URL syntax is now available to initiate questionnaires.
April 19, 2005Addition of the JUMP hyperlink feature to jump to another question of the questionnaire without collecting data (useful for linked menus).
April 8, 2005Addition of the ability to permutate questions within permutations of blocks — down to any chosen depth level.
March 30, 2005Addition of the G behaviour code which ensures proper casing of an open-end part.
March 14, 2005Addition of the TEST pound instructions which implements any logical validation test anywhere in the questionnaire and reports anywhere on the CallWeb page.
February 22, 2005Addition of an option to display only statistics (no frequencies) for continuous data.
January 25, 2005Addition of extended x-base syntax .EQ. and .NE. operators to compare with multiple values at once.
January 20, 2005Addition of a CALCUL function to select random combinations of response choices (e.g., select any 2 choices among 5 possible answers).
January 17, 2005Moved the log of bounced messages to the project directory.
January 16, 2005Capacity to extract data and code to a DOS/Windows file format or a Linux file format.
December 13, 2004Addition of the capacity to run one-way and two-way tables on truncated data values.
December 1, 2004Addition of the INCLUDE pound instruction to include outside text files in .scw scripts.
November 28, 2004Addition of automated e-mails sent on the basis of a preset plan, using all of the information in the questionnaire; ideal for panel management!
November 25, 2004Addition of non-cleaning display conditions.
November 20, 2004Addition of a system to capture bounced messages (cwbounces.pl) in response to CallWeb invitations or other messages sent by CallWeb, and to store the bounces in the CallWeb data base in the relevant questionnaire data string.
November 19, 2004Considerable acceleration of data base prepopulation.
November 18, 2004In utility programs, addition of the ability to reduce the lists of questions to Web-meaninful ones.
November 17, 2004Translation of all pound instruction names into English (the French versions remain valid).
November 15, 2004Addition of the ability to display response categories in alphabetical order of label in all languages.
October 29, 2004Addition of a question type forcing the display of a table banner when questions are arrayed in table mode.
October 28, 2004Addition of a pound instruction to direct e-mail bounces.
October 21, 2004Addition the ability to span pound instructions over several lines and to integrate all linguistic versions of a pound instruction in a single declaration.
October 20, 2004Addition of a pound instruction to specify the text above the progress thermometer.
October 12, 2004Addition of the ability to FORMAT open-ended parts as dollar amounts, percentages, etc.
September 28, 2004Simplification of the syntax of CALCUL questions.
September 24, 2004cwcompile disallows the use of MySQL-reserved keywords as question names.
September 21, 2004Addition of the capacity to insert an open-end box within in the label cell of a matrix row (e.g., to add and "other, specify" entry in a matrix).
September 10, 2004Addition of the # Affiche min max instruction.
September 9, 2004Extractions of csv files create as many files as there are groups of 240 variables, in recognition of the limit imposed by Excel.
August 25, 2004Addition of a second level sort in cwNav.
August 24, 2004Improvement to the cwNav hyperlinks in cwFreq.
August 19, 2004Addition of a CALCUL function to close the browser window.
August 17, 2004Addition of the capacity to stop the questionnaire and direct the respondent to a special section of the script while ensuring that the questionnaire will resume from the page attained before requesting the interruption.
August 16, 2004cwcompile checks that the copy of individual response code texts is done from the default language and not to it.
August 7, 2004Available projects selectable by drop-down menus in cw.
August 6, 2004Addition of a selection criterion which does not discriminate between accentuated and non-accentuated vowels.
August 4, 2004cwNav links child records to parent records when a relation question is displayed.
August 4, 2004Addition of # Type enquete = 3 which allows survey participants to enter an access code and a password of their choosing.
August 3, 2004Additions of "Previous n" and "Next n" buttons in cwNav.
July 25, 2004Permutations and inversions of response categories are stable upon redisplaying a question with such permutated/inverted categories (back-and-forward or reentering a questionnaire).
June 12, 2004Addition of a URL open-end type.
June 11, 2004Addition of the <EXECUTE>Perl expression</EXECUTE> syntax to display the results of complex calculations without storing them.
June 9, 2004A table presentation of the data in RELATION questions can be recalled into other questions.
June 4, 2004Addition of master codes to access CallWeb projects (MASTER CODES pound instruction).
May 16, 2004Addition of the RELATION questions and of hierachical projects.
May 10, 2004Addition of the L (lire) answer behaviour code.
May 7, 2004Addition of a "regular expression" open-end type (R).
April 25, 2004cwQuestionnaire can identify HTML styles in use in a questionnaire and can attempt to replicate the style structure in an RTF file.
April 7, 2004Addition of the M response category behaviour code.
March 31, 2004cwQuestionnaire associates discrete styles to question names and calculated questions.
March 29, 2004Addition of the CORNER option in the TABLE statement to display text in the upper left corner of a table.
March 22, 2004Addition of a mechanism (cwDossier) to view the last few completed questions as part of cwNav (for CATI purposes).
March 18, 2004Addition of the "is empty" and "is not empty" operators in the selection tools of all utility menus.
March 12, 2004Security upgrade for the CallWeb configuration file.
March 11, 2004Addition of a means to display individual cases in legible form from cwNav.
March 10, 2004cwCompare identifies structural differences between two versions of a questionnaire.
March 3, 2004New "Condition de non retour" pound instruction to better control re-entry into the questionnaire.
March 2, 2004Addition of the "Visible depuis" pound instruction to limit project access for utility directories.
February 26, 2004An equal sign can be used to copy text from the default language into a non-default language, anywhere language-based text is used.
February 25, 2004The algorithm used by SUBSET questions is vastly enhanced, making selections in thousands of categories as fast as ordinary small sets.
February 7, 2004Addition of the STOCK question type to store simply information.
February 5, 2004cwCompile senses that questions were moved within the questionnaire script and adjuts the data structure.
January 23, 2004CallWeb script files now bear the .scw extension.
January 21, 2004cwExtr can now create Triple-S code files; it can also include the CallWeb code file in the extraction zip file.
January 12, 2004NEVERUPDATE questions are never displayed on screen.
December 17, 2003New possibility to attribute values to questions upon initial call fo CallWeb.
December 10, 2003Major upgrade to accommodate guidelines for the preparation of pages for the visually impaired (W3C); addition of the _access switch.
December 4, 2003cwPrepop can insert data into existing cases from a tab-delimited file.
December 2, 2003Possibility to calculate the thermometer from a question other than the first question.
November 28, 2003cwNav links into the questionnaire utility.
November 27, 2003cwNav allows the edition of data en masse, several records and several variables at a time.
November 25, 2003The CallWeb questionnaire pages includes only key information on the session; the complete data vector is not carried over from page to page anymore.
November 24, 2003Addition of the capacity to insert standardized formatted tables in any string.
November 23, 2003Addition of the capacity to transpose questions and answers in question tables (i.e., questions as columns).
November 21, 2003Addition of the capacity to reinitialize records to their initial state after prepopulation (assuming proper use of NEVERUPDATE questions).
November 19, 2003Addition of a default back-up strategy for all projects without specific archival settings.
November 16, 2003Addition of a validation condition (MUST) based on any data in the questionnaire, including in the current screen.
November 15, 2003Addition of an option to display question names during a real or simulated interview, including the production of a complete questionnaire printout.
November 12, 2003Implementation of the cwArchive system to perform timed back-ups.
November 8, 2003The thermometer is now calculated using the last question of a screen rather than the first.
November 7, 2003Display conditions can be borrowed from other questions using the "=" operator.
November 5, 2003Possibility to flag individual response categories using a behaviour code (P).
October 25, 2003Addition of an option to not hyperlink the data tables from cwfreq to cwnav.
October 25, 2003Addition of a parameter for the error message displayed upon supplying an incorrect access code.
October 22, 2003Clicking the language button preserves the answers already provided on a page.
October 21, 2003Ability to save responses provided before going backwards using the CallWeb back button (not the browser button).
October 18, 2003Alternating colours of matrix rows.
October 15, 2003Access code pattern can be pre-determined.
October 10, 2003Frequency distributions and two-way tables can be output to a CSV or a tab-delimited format.
October 7, 2003In the CATI version, the number of dossiers available per stratum can be set to a maximum.
October 7, 2003Addition of ability to borrow question and note text from another question.
October 5, 2003Separation of the NOTE text from the question text.
September 28, 2003Customized access code request screen.
September 11, 2003Extractions may be left on the server instead of being sent by e-mail.
September 9, 2003Addition of the telephone number open-end type.
September 8, 2003Addition of the ability to edit only selected variables in cwNav.
September 7, 2003Addition of the ability to select or deselect (for deletion) all displayed cases in cwNav.
September 5, 2003Addition of a open-end type for the first three digits of a Canadian postal code.
August 29, 2003In extracting data, it is possible to subset cases as well as select data and code file types.
August 25, 2003Addition of tool to generate URLs to complex utility requests.
August 25, 2003Addition of a checkbox view for question selection in cwnav and cwfreq.
August 20, 2003Substantial acceleration (and increased sturdiness) of the compilation process when structural changes are required.
August 16, 2003Possible suppression of the SUBSTITUT style in response recall.
August 10, 2003Addition of descriptive statistics in two-way tables (cwfreq).
August 8, 2003Addition of a method to enter a questionnaire elsewhere than at the first question.
August 8, 2003Support for an external library of Perl functions in cwplugins.pl.
August 5, 2003Permutations can be set to display a limited number of randomly chosen questions.
July 30, 2003Permutations can now include all questions on a page.
July 28, 2003Improvements to the validation of display conditions during compilation.
July 25, 2003Solidification of the compilation process to eliminate risks of data corruption.
July 17, 2003Addition of interview type 6.
June 21, 2003Addition of the U behaviour code to make all text in an alphanumeric open part upper case.
June 13, 2003Addition of SUBSET feature to select answer categories using a few characters in the category label.
June 12, 2003Addition of the Forced category behaviour.
June 11, 2003Addition of ability to borrow response categories from another question.
June 5, 2003Addition of the "Changement de langue" pound-option.
May 24, 2003Addition of levels of parentheses in selection menus used in utility programs.
May 23, 2003Users can now use the browser back button without data loss. The CallWeb Back button has become optional (defaulting to no-show) via the # Affiche retour arriere option.
May 21, 2003Addition of a case-level lock to prevent two people from modifying the same information.
May 20, 2003Addition of the "O" category behaviour code (optional open-end parts).
May 20, 2003Addition of an Hour question type with validation within a time range.
May 3, 2003Addition of a Date question type with validation within a date range.
April 19, 2003cwNav can display answer labels in addition to or in replacement of answer codes.
April 18, 2003Addition of a question type to render data unchangeable from within CallWeb (except by prepopulation).
April 17, 2003Addition of a question type that restricts back-tracking in a questionnaire..
April 17, 2003Addition of the capacity to e-mail from within a CallWeb script.
April 12, 2003Addition of the capacity to test questionnaires without affecting permanent files.
April 11, 2003New module to destroy data bases.
April 7, 2003Ability to colour columns of question tables differently.
April 6, 2003New module to handle invitation and reminder e-mails.
April 4, 2003Addition of recalls (piping) of responses to questions allowing multiple selections.
March 31, 2003The compiler detects and reports dangerous structural differences between the untransported data table and the questionnaire.
March 27, 2003Addition of the "~" prefix to create non-cleaning skips.
March 26, 2003Revamping of cw which is now an integrated front-end for all CallWeb functions.
March 20, 2003Addition of the ability to destroy data bases using cwdestruction.
March 19, 2003Addition of the capacity to structure tables using more than one variable in the columns (horizontally joined tables).
March 18, 2003Addition of the quota management system.
March 10, 2003Addition of the CULDESAC question type.
March 9, 2003Migration of data storage to a MySQL data base.
March 3, 2003Addition of the capacity to lay out response categories over several columns, globally or question by question.
March 2, 2003Addition of the _print command line parameter for the callweb module to display the entire questionnaire in a form fit for printing yet similar to the experience provided to the survey respondent.

Annexe D

Changements et ajouts récents

DateChangement / ajout
17 décembre 2023Ajout du suivi de l'ouverture des courriels avec [track=]
7 juin 2023Ajout de l'instruction dièse POSITION DU BOUTON RADIO
20 mai 2023Les patrons de _telkey peuvent inclure tout caractère autre que ceux ayant une signification particulière; ils sont insérés tels quels.
18 mai 2023Nouveau design de tableaux cwfreq et ajout d'un lien de téléchargement de fichier csv.
12 mai 2023Ajout de la variable système _bin.
5 avril 2023En mode password, si le _telkey est fourni dans l'URL, il n'a pas à être saisi à nouveau à l'entrée.
27 mars 2023cwfreq peut exclure les lignes dont les effectifs totaux sont inférieurs à une certaine valeur.
20 mars 2023cwemail et cwautoemail convertissent le sujet du message en UTF-8 à moins qu'il ne soit déjà dans cet encodage.
15 mars 2023Ajout du champ contextuel « empreinte ».
14 mars 2023Le modificateur W de partie ouverte C limite le texte d'une boîte multi-ligne à un certain nombre de mots plutôt que de caractères si # Contraindre la longueur des reponses vaut OUI.
9 mars 2023Le mode spécial _access pour la mise en page spécifiquement pour les lecteurs d'écran n'est plus proposé car les pages normales sont désormais formatées pour l'accessibilité.
24 janvier 2023Les programmes utilitaires peuvent sélectionner les dossiers qui contiennent une chaîne dans n'importe quel champ.
1er novembre 2022cwstats.pl emmagasine maintenant le nombre de champs dans le fichier-mémoire.
27 octobre 2022Modifications pour supporter le mode sctrict de MySQL.
26 août 2022Ajout de l'attribut <title> aux catégories de réponse pour une meilleure accessibilité.
28 juin 2022Ajout de l'instruction dièse FOCUS ON ERROR
28 juin 2022Ajout de l'instruction dièse TABLE DES MATIERES DES ERREURS
27 juin 2022Ajout du code de comportement H pour fournir une valeur à l'option <label> en mode accessibilité.
22 juin 2022Ajout de l'opérateur ACCESS() dans les conditions d'affichage.
19 mai 2022Ajout de l'instruction dièse 2FA qui permet une authentification à deux facteurs
11 mai 2022Ajout de l'instruction d'installation cwarchive_extensions
19 mars 2022Refonte du système de contrôle d'accès des utilisateurs pour éviter de transmettre les noms d'utilisateurs, même chiffrés, dans les URL et les posts. Pour assurer la compatibilité à rebours, ceci n'est pas activé par défaut mais contrôlé par les options d'installation use_user_cookie et user_cookie_expiry_minutes
11 mars 2022Ajout de 10 caractères spéciaux utilisables dans les _telkeys et disponibles dans cwtelkeys.cgi
24 novembre 2021Ajout d'un commutateur pour afficher le chemin à travers le questionnaire pendant le parcours
16 juillet 2020Ajout de la création de vues de base de données (# CREATE VIEW) pour faciliter l'accès aux données aux applications externes
15 mai 2020cwfreq peut afficher un graphique des moyennes d'une partie ouverte numérique ventilée selon une variable discrète
1er août 2019Ajout du type de question WEIGHT pour pondérer les résultats de cwfreq et cwquestionnaire.
4 juillet 2019Conversion des signes plus en &plus; dans les parties ouvertes.
18 octobre 2018Élimination de la journalisation des pages de questionnaires non existants.
25 août 2018Ajout des classes MATRICE2 et MATRICE3 aux tableaux imbriqués pour accorder davantage de contrôle de mise en page.
16 mars 2018Ajout d'une option pour sauter le test MX dans cwemail.
8 juin 2017Ajout d'une option de compilation pour prévenir la prise d'une copie texte des données avant une compilation avec changement structurel.
7 février 2017Le module intégré ne montre que les fichiers de prépopulation qui résident dans des répertoires de projets accessibles par l'usager.
19 octobre 2016Ajout de l'instruction dièse # Index.
16 septembre 2016Les caractères spéciaux sont convertis en entités HTML dans les courriels.
3 mai 2016cwprepop peut importer des zéros dans un champ fermé.
8 décembre 2015Ajout de la fonction random_integer2.
5 novembre 2015Ajout d'une en-tête Message-Id aux courriels pour réduire les risques d'identification comme pourriel.
12 août 2015Ajout de l'option CRYPT aux questions RELATION.
5 août 2015Ajout de l'instruction dièse # Load JavaScript Library.
15 juillet 2015Les variables BOX respectent l'instruction FORMAT.
10 juillet 2015La fonction email peut envoyer une copie cachée.
4 mars2015Les liens {JUMP} peuvent maintenant être chiffrés grâce à {JUMPC}.
3 mars 2015Ajout de l'instruction dièse # Toujours ouvrir a.
3 mars 2015Ajout de l'option NOPARAGRAPH à la ligne du nom de la question.
17 février 2015Ajout de conditions d'affichage aux colonnes du tableau des enfants dans les questions RELATION.
16 février 2015Ajout du code de comportement K pour éviter un retour à la ligne avant une partie ouverte alphanumérique.
17 janvier 2015Ajout des instructions dièses # Position des boutons haut et # Position des boutons bas.
11 janvier 2015Ajout du code de comportement E pour définir une catégorie comme un titre.
10 janvier 2015Ajout des instructions dièses # Image Erreur Champ et # Image Erreur Page.
10 janvier 2015Ajout de l'option NOLANGUAGE à la ligne du nom de la question pour ne pas afficher le(s) bouton(s) de langue.
10 janvier 2015Ajout de l'instruction usager.conf max_spss_alpha_field pour permettre la lecture de plus de 254 caractères dans les champs alphanumériques en SPSS.
15 septembre 2014cwprepop ne tient pas compte des lignes de prépopulation qui commencent par une chaîne de commentaire (##), permettant donc de commenter les fichiers de données.
20 août 2014Les instructions dièses # IMAGE GAUCHE, # IMAGE DROITE, # IMAGE SUBMIT, # IMAGE STOP acceptent les substitutions et donc les rappels condtitionnels.
20 juillet 2014cwfreq utilise maintenant calc_graph pour construire des graphes des distributions univariées et bivariées.
20 juillet 2014Ajout de la fonction calc_graph.
15 juillet 2014Ajout du type de question GOTOURL.
13 juillet 2014L'instruction dièse # Executer si peut appeler plus d'une question CALCUL.
13 juillet 2014Ajout d'une extraction de questionnaire en format Triple-S XML 2.0.
13 juillet 2014Ajout de l'instruction dièse # Projet Pretest pour identifier le projet CallWeb utilisé pour le prétest.
12 juillet 2014Tenter de démarrer un questionnaire à une question inexistante est interdit.
12 juillet 2014Ajout de l'option ORDER_BY aux questions RELATION.
27 juin 2014Ajout de l'option READ_ALSO aux questions RELATION.
8 avril 2014Ajout de l'option ERASE_CALCUL aux questions RELATION.
1er avril 2014Le nombre de lignes d'une boîte de texte multi-ligne s'ajuste à la quantité de texte saisie.
15 novembre 2013Ajout du type de question CATEGORIES qui tire ses catégories de réponses du contenu d'une partie ouverte.
5 novembre 2013Ajout de la substitution .
5 novembre 2013Ajout des fonctions obscurcir/cover et decouvrir/uncover.
9 août 2013cwxlog.cgi extrait de l'information du journal de l'instance locale.
8 août 2013L'extraction de base de données à base de données peut utiliser un port autre que le port par défaut de MySQL.
16 juin 2013Ajout du délimiteur tilde à la substitution par &#RAPPEL pour permettre l'absence d'espace après un tel rappel.
15 juin 2013Les instructions dièses # LIRE et # NE PAS LIRE peuvent utiliser des substitutions.
13 juin 2013cwextr.cgi produit du code SAS et SPSS plus compact.
22 mai 2013Les conditions d'erreur dans l'envoi de messages par courriel gardent maintenant une trace de la date et de l'heure de la tentative avortée.
8 mai 2013Ajout de contrôle plus précis sur le mode imprimé.
8 mai 2013Ajout du type de question DONOTPRINT qui saute la question en mode imprimé.
6 mai 2013Modification de plusieurs attributions de styles dans les modules administratifs pour une apparence plus unifiée et un contrôle accru sur l'expérience des usagers. Feuille de style et charte de couleur officielles de CallWeb.
25 avril 2013Ajout du type de question PAGEBREAK.
25 avril 2013Ajout des options d'URL _debute et _termine utilisées de concert avec _print.
29 mars 2013Ajout de l'instruction dièse # Executer si.
29 mars 2013Ajout de la capacité d'accorder des permissions pour cwdocs.cgi sur la base des répertoires.
19 février 2013L'instruction dièse "# Contraindre la longueur des reponses" affiche le nombre de caractères permis dans une boîte de texte multi-lignes ainsi que le nombre de caractères restants.
28 janvier 2013Ajout de l'instruction usager.conf out_of_service pour bloquer temporairement l'accès aux questionnaires et afficher un message général d'indisponibilité.
28 janvier 2013Ajout de l'instruction dièse # Repertoire des boutons radios pour relocaliser les images de boutons radios et de cases à cocher.
26 janvier 2013Les mots de passe utilisés pour accéder aux modules utilitaires peuvent expirer après un certain nombre de jours grâce aux instructions d'installation login_pw_valid_days, login_pw_allow_same, login_pw_rules et login_pw_rules_message.
17 janvier 2013Ajout de l'instruction dièse # Suffixe des boutons radios pour changer l'apparence des boutons radios et des cases à cocher.
14 janvier 2013Ajout des instructions dièses # Figer les donnees si et # Message donnees figees.
2 janvier 2013L'instruction dièse Gabarit accepte les substitutions.
2 janvier 2013Ajout de l'opérateur MOBILE() dans les conditions d'affichage.
2 janvier 2013L'instruction dièse Stylesheet accepte les substitutions.
20 décembre 2012Le type de partie ouverte D accepte des expressions Perl (entre accolades) pour les bornes minimale et maximale.
19 décembre 2012Ajout de l'instruction dièse Separateur de milliers.
7 décembre 2012Ajout de la fonction combine_into_multiple.
3 décembre 2012Ajout de code JavaScript pour éviter d'envoyer la page de questionnaire CallWeb en utilisant la touche Retour dans une case texte.
2 décembre 2012Nouveau type de question SUGG (SUGGère) qui avise une seule fois d'un nombre insuffisant de réponses à une question.
28 novembre 2012L'instruction <COMPUTE BUTTON> comporte un paramètre additionnel pour court-circuiter les validations normales de questions.
28 novembre 2012Le compilateur peut copier des fichiers .scw et les fichiers # INCLUDE associés se trouvant sur un server distant (tout en créant les répertoires nécessaires et sans projet de départ).
24 novembre 2012Ajout de la fonction n_dossiers.
12 octobre 2012Ajout de la fonction sauf_codes.
3 octobre 2012Ajout du mot de passe chiffré à l'information contextuelle.
3 octobre 2012Ajout du paramètre _epw aux URLs.
2 octobre 2012Ajout d'une librairie JavaScript et addition des boîtes à cocher intelligentes.
19 juillet 2012Ajout de l'option « Mot de passe » à l'instruction dièse Type Enquete. Ce type de contrôle d'accès est basé sur un code d'usager fixe et un mot de passe modifiable. Une recette décrit ce système en détail.
26 juin 2012Ajout de la fonction dernier_acces dans les questions calculées.
7 juin 2012Avec une partie ouverte de type L, une condition de sélection peut être spécifiée pour limiter les valeurs affichées dans la liste déroulante.
30 mai 2012Nouveau mode « comprimé » associé au mode « imprimé »dans le module intégré : il omet d'afficher les boutons radios de la première variable d'une matrice pour accorder plus d'espace aux étiquettes de lignes, fournissant donc un imprimé plus serré.
17 mai 2012Ajout de l'instruction dièse « mot de passe cwemail » pour contrôler l'envoi de messages courriels par cwemail.
7 décembre 2011Les instructions dièses suivantes peuvent accepter des substitutions (y inclus une substitution conditionnelle): URL, Titre HTML et Telkey pattern.
30 novembre 2011Si une question <BOX> ne comporte pas de partie ouverte, les choix de réponses fermés sont présentés sous forme de liste déroulante.
23 novembre 2011Les instructions dièses # BOUTON STOP et # AFFICHE THERMOMETRE peuvent accepter des substitutions (incluant une substitution conditionnelle) en lieu et place d'un nom de question.
21 novembre 2011L'instruction dièse # BOUTON STOP peut être contrôlée par une condition d'affichage.
16 novembre 2011Le mode imprimé (qui affiche un questionnaire complet sur une seule page Web) peut insérer des marqueurs de sauts de page de questionnaire et des sauts de page réels à l'imprimé.
5 novembre 2011Le type de question SCALE centre l'échelle sur la page si la largeur des colonnes est préfixée d'un C (p.ex., SCALE=C80).
5 novembre 2011Ajout de l'instruction dièse « cwarchive zip password » pour chiffrer les données archivées dans un fichier zip.
5 novembre 2011Ajout de l'instruction dièse « cwcompile zip password » pour chiffrer les informations extraites dans un fichier zip lors d'une compilation.
5 novembre 2011Ajout de l'instruction dièse « cwemail report to » fournissant une adresse de courriel où livrer le rapport d'envoi de courriels par cwemail.cgi en mode turbo.
5 novembre 2011cwautoemail.pl ne démarre pas une instruction autoemail si un appel précédent de la même instruction est toujours en traitement.
1er novembre 2011Dans cwemail.cgi, ajout d'un rapport sur les messages en attente en file et capacité de détruire des files d'attente de messages.
27 octobre 2011Ajout de l'instruction dièse « Cwextr Zip Password » pour chiffrer les données extraites dans le fichier zip.
10 octobre 2011Reconceptualisation en profondeur du mécanisme d'envoi des courriels par l'utilisation du mode démon. En conséquence, performance décuplée de l'instruction dièse « Autoemail » et du module cwemail.cgi, avec une charge moindre sur le serveur.
27 août 2011Nouvelle fonction n_appels.
23 août 2011cwedit.cgi reconnaît une ligne de commentaire située entre la ligne de nom de question et la ligne pourcent indiquant le début de la section du texte de la question.
21 août 2011cwautoemail.pl exige que l'identité du client CallWeb soit ajoutée en argument, p.ex., "perl cwautoemail.cgi PROD &". Ceci permet l'exécution concurrente du script dans différentes instances de CallWeb sur un même serveur.
7 juillet 2011Ajout de diverses instructions d'installation qui accroissent la sécurité des fichiers dans les répertoires de projets : default_cwpermissions_directory_permissions, default_cwpermissions_file_permissions, cwpermissions_deletes_from_cwdir et exclude_from_cwcompile_backup.
21 juin 2011Ajout du code de comportement tilde (~) pour désactiver l'affichage du calendrier d'une partie ouverte D.
4 avril 2011Le module d'archivage peut sauvegarder les copies de sécurité dans un répertoire autre que le répertoire de projet, y inclus sur un autre serveur.
29 mars 2011Ajout du type de question DESTOP qui branche vers la question depuis laquelle le bouton STOP a été utilisé.
28 février 2011Le module intégré peut afficher une interface simplifiée pour un unique projet.
25 février 2011Ajout de l'opérateur NREPONSES dans les conditions d'affichage; il retourne le nombre de réponses fournies à une question.
23 février 2011Ajout de l'instruction dièse « Activer le mode mobile » pour afficher des pages plus simples aux appareils mobiles.
23 février 2011Ajout de l'instruction dièse « M_ mise en evidence » pour définir la couleur de la mise en évidence.
22 février 2011Ajout de l'instruction dièse « Mise en evidence des cellules » pour désactiver cette fonction dans les questionnaires.
14 février 2011Ajout de la function indexposition.
1er février 2011La « valeur » utilisée dans les filtres des modules utilitaires peut être « $semaine » ou « $NNsemaines ». Ces expressions sont traduites en date d'il y a autant de semaines.
30 janvier 2011Ajout de la structure <parent></parent> qui permet de spécifier du texte alternatif dans les questions et les catégories de réponse pour affichage dans les tableaux RELATION.
24 janvier 2011cwupload.cgi est maintenant intégré à cwdocs.cgi. Veuillez détruire cwupload.cgi du répertoire des utilitaires.
18 janvier 2011Rétablissement des mots de passe en lecture et écriture au niveau des projets, par demande populaire, en plus du système de contrôle d'accès.
9 janvier 2011Ajout du concept de groupe de permissions ou de permissions dynamiques au système de contrôle d'accès.
31 décembre 2010Ajout d'un système complet de contrôle d'accès aux modules administratifs et utilitaires.
15 décembre 2010Améliorations aux codes de comportement de catégories de réponse permettant de contrôler le placement de la boîte ouverte autour de l'étiquette de réponse.
25 novembre 2010Ajout de la capacité de téléverser des documents sur le serveur en utilisant une partie ouverte de type « F ».
21 novembre 2010Le module cwedit offre le verrouillage au niveau des questions, permettant donc l'édition de questionnaires par plusieurs usagers concurremment.
21 novembre 2010La gestion des courriels non acheminés est maintenant effectuée, beaucoup plus efficacement et économiquement, par le daemon CallWeb.
21 novembre 2010cwextr.cgi extrait un fichier .tcw standard même quand des dichotomies multiples sont exigées.
21 novembre 2010Les tableaux bivariés peuvent maintenant exclure les colonnes sans effectif.
20 novembre 2010Ajout du type de question NOPRETEST pour annulé l'effet de « # PRETEST » pour une question particulière.
19 novembre 2010La barre de progression peut ne pas comporter de texte à sa droite grâce au mot-clef MUET de # Affiche thermometre.
19 novembre 2010CallWeb efface les caractères exogènes (comme un point) dans le nom du projet dans un URL pour éviter des liens brisés provenant de courriels.
20 octobre 2010"# Questions attributables" est testée pour identifier des noms de variables inexistantes.
9 octobre 2010Un message de patience est affiché sur les pages de questionnaires pendant que cwcompile efface un champ d'une base de données de projet.
17 juillet 2010cwcompile identifie la présence d'un saut inconditionnel depuis une question autre que la dernière d'une page à plusieurs questions comme une erreur.
16 juillet 2010La nouvelle function calculée « time_between » retourne la durée entre deux dates ou heures.
16 juillet 2010Ajout de l'instruction dièse « cwemail envoyeur par defaut » pour préciser l'adresse technique d'envoi du courriel dans cwemail.
13 juillet 2010Ajout de l'instruction dièse use_telkey_table pour ajuster l'instruction d'installation use_telkey_table projet par projet (nécessaire pour que BASEpretest fonctionne correctement).
12 juillet 2010Ajout du concept d'« avertissement » à cwcompile : les messages d'avetissement sont affichés durant la compilation mais ne l'interrompent pas.
10 juillet 2010Ajout du concept de « SUFFIXE titre » qui transforme automatiquement une question SUFFIXE en un titre dans un tableau.
8 juillet 2010Ajout de la capacité de confirmer l'effacement des enfants dans les projets hiérarchiques.
2 juillet 2010Les rappels &# sont affichés de manière intelligible dans cwquestionnaire et cwfreq ainsi que dans le mode questionnaire si l'option d'affichage des codes de rappel est sélectionnée.
1er juillet 2010La fonction email peut envoyer une copie conforme.
30 juin 2010cwemail.cgi peut produire un énoncé # AUTOEMAIL à partir des sélections effectuées dans l'interface.
17 juin 2010La nouvelle function calculée « shuffle_code_labels » retourne le texte d'une série de codes de réponses, dans un ordre aléatoire.
12 juin 2010cwextr peut sauver une extraction dans n'importe quel répertoire de l'ordinateur CallWeb. Ceci peut être particulièrement utile pour extraire des données d'un ordinateur CallWeb portable sur une clef USB. Voir l'instruction dièse # repertoire sauvegarde cwextr.
11 juin 2010Ajout de l'instruction dièse # Extraction de largeur minimale.
3 juin 2010Nouvelle option d'extraction pour ajouter le nom de la question en préfixe de l'étiquette de variable.
31 mai 2010cwdossier.cgi affiche le nom de la question depuis cwnav.cgi.
31 mai2010cwcompile.cgi permet des lignes vides entre deux définitions de questions dans le fichier .scw.
21 mai 2010Ajout d'un tableau de _telkeys réservés, pour mieux contrôler l'attribution de _telkeys dans les projets ouverts. Associé à la nouvelle instruction d'installation « use_telkey_table ».
19 mai 2010Ajout de la création d'un fichier .scw de base à partir d'un fichier de données délimité-tab.
12 mai 2010Ajout d'inversions parallèles grâce à INVERSION=Qx : l'inversion des catégories de réponses d'une question est copiée de l'inversion des catégories de réponses d'une autre question.
11 mai 2010L'instruction FORMAT ajoute maintenant des séparateurs de milliers lorsque des formats numériques sont utilisés.
19 avril 2010Ajout de l'en-tête list-unsubscribe aux messages produits par cwemail.cgi et cwautoemail.pl ainsi que de l'instruction d'installation « list unsubscribe » correspondante.
18 avril 2010Ajout de l'en-tête sender aux messages produits par cwemail.cgi et cwautoemail.pl.
8 avril 2010cwextr.cgi peut utiliser un délimiteur différent de la virgule dans les fichiers csv (utile pour ceux et celles qui utilisent une version autre qu'anglaise d'Excel, par exemple). La nouvelle instruction d'installation csv_delimiter peut faire de ce nouveau délimiteur la valeur par défaut de l'instance.
8 avril 2010Une comparaison des fichiers .scw et .scw.last est sauvegardée dans le fichier .zip créé par chaque compilation de questionnaire.
6 avril 2010Ajout de l'opérateur QUESTION() dans les conditions d'affichage.
15 mars 2010cwcompile.cgi identifie une erreur en l'absence d'un calcul dans une question CALCUL.
13 mars 2010L'instruction dièse "# Contraindre la longueur des reponses" limite dynamiquement le nombre de caractères saisis dans une réponse alpha-numérique multi-ligne à la limite définie dans le questionnaire (en autant que JavaScript soit activé dans le navigateur de l'utilisateur.
11 février 2010cwextr.cgi produit un rapport sur les paramètres de l'extraction et le place dans le fichier .zip d'extraction dans le fichier _info_.txt.
10 février 2010Les compteurs historiques de cwstats.cgi peuvent être réinitialisés.
8 février 2010L'instruction « # Controle par cookie » réouvre maintenant la dernière page affichée d'un seul et même dossier comme si le _telkey avait été fourni dans l'argument.
24 janvier 2010Ajout du mode « personnalisé » qui affiche une version personnalisée du questionnaire (avec réponses) pour un _telkey particulier.
23 janvier 2010Ajout d'indices pour expliquer les options dans le module intégré.
12 décembre 2009Ajout de la création de code Stata dans l'extracteur.
11 décembre 2009cwnav.cgi peut recalculater plusieurs champs à la fois.
22 novembre 2009Le texte des divers boutons (Page suivante, Page précédente, Soumettre, Stop, Sauver et fermer) peut utiliser toutes les syntaxes de rappels de valeurs. En particulier, le texte des boutons peut utiliser l'instruction « # Rappel » conditionnelle et donc s'adapter complètement au contexte du questionnaire.
22 novembre 2009Ajout du type de question SUBMIT qui utilise les instructions dièses « # Texte submit » et « # Image submit » pour le bouton de Page suivante.
22 novembre 2009Ajout du type de question NOPRINTCAT qui désactive l'impression des catégories de réponse en mode imprimé (utile pour les très longues listes de catégories).
22 novembre 2009Ajout des tris en ordre décroissant dans cwnav.cgi.
22 novembre 2009Ajout de l'option REPORTTO à # AutoEmail.
11 novembre 2009Ajout de l'instruction # Access send telkey image; elle définit une image pour le bouton d'envoi sur la page de demande de mot de passe.
29 octobre 2009Les substitutions peuvent être utilisées dans les messages systèmes.
20 octobre 2009Ajout de la fonction add_to_date.
20 octobre 2009Ajout de l'instruction dièse "# Contraindre la longueur des reponses" pour produire un message d'erreur si une réponse alpha-numérique multi-ligne est plus longue que la limite définie dans le questionnaire.
6 octobre 2009Ajout de l'instruction dièse # Stylesheet pour définir un fichier de styles pour un projet particulier.
2 août 2009Ajout de l'option FORMAT ZERO pour les parties ouvertes numériques.
21 août 2009Ajout d'un contrôle par CSS des boutons de questionnaires, des boîtes textes et numériques, et des listes déroulantes.
17 juillet 2009Ajout d'une sélection automatique de tous les dossiers dans les modules utilitaires.
10 juillet 2009Ajout de la condition AUTREMENT à l'instruction dièse RAPPEL.
10 juillet 2009Ajout de l'opérateur NONVIDE pour les conditions logiques.
24 juin 2009Ajout de la fonction straightlined qui identifie le comportement de straightlining dans les sondages Web.
23 juin 2009Ajout de la fonction put_values_in_case qui peut placer des valeurs dans n'importe quel champ de n'importe quel dossier de n'importe quel projet, ainsi que créer des dossiers dans un projet.
10 juin 2009L'instruction dièse RAPPEL permet maintenant de rappeler du texte ou des valeurs sur la base de conditions d'affichage.
25 mai 2009Ajout du contrôle sur la largeur maximale des étiquettes de variables et de valeurs produites par cwextr.cgi pour SPSS et autres logiciels. Les valeurs par défaut peuvent être précisées dans le fichier de configuration.
9 mai 2009Ajout du code de comportement de catégorie de réponse « ) » qui place le texte dans une cellule de tableau (code de comportement « M ») à droite du bouton radio ou de la case à cocher. Voir aussi « # Position texte M »
5 mai 2009Ajout du type de question AUTONEXT qui passe automatiquement à l'écran suivant du questionnaire après un nombre prédéterminé de secondes.
1er mai 2009Ajout d'une option d'installation (interviewer_timer) contrôlant l'affichage d'un chronomètre à l'interviewer.
30 avril 2009Nouvelle capacité d'annuler des mises à jour du système CallWeb.
30 avril 2009Nouveau code de comportement de catégorie de réponse A qui Affiche toujours la catégorie dans les tableaux cwfreq.cgi.
28 avril 2009La syntaxe des URLs courts a été rendue plus flexible.
18 avril 2009Ajout de la capacité de démarrer cwautoemail.pl manuellement pour un projet particulier depuis cwemail.
18 avril 2009Ajout de la capacité d'envoyer des copies carbones dans cwemail et dans les instruction dièses Auto Email.
17 avril 2009Ajout de la capacité de tester les instruction dièses Auto Email depuis cwemail.
17 avril 2009Ajout de l'option ACTIVE à l'instruction dièse Auto Email pour activer et désactiver de telles instructions.
16 avril 2009cwautoemail envoie un message à l'administrateur du système après avoir complété une tâche.
14 avril 2009Ajout d'une option d'installation (notify_every) contrôlant la fréquence des messages concernant les projects inactifs.
9 avril 2009Ajout d'une exception à l'utilisation de CSS pour la composition de la barre de progression sous Internet Explorer 6 qui ne rend pas le code CSS correctement. Le vieux code utilisant des tableaux imbriqués est alors utilisé.
8 avril 2009Ajout d'un rappel par courriel concernant les projets inactifs depuis plus de 14 jours (ce délai est modifiable dans le fichier de configuration).
7 avril 2009Ajout de la fonction test_email_address pour vérifier qu'une adresse de courriel est livrable.
5 avril 2009La barre de progression reflète fidèlement le cheminement dans le questionnaire lorsque des permutations sont faites sur plusieurs pages.
4 avril 2009Ajout des types de questions MEMEXCL et VBTMEXCL pour exclure des questions des traitements MEMO et VERBATIM.
27 mars 2009Toute nouvelle série d'instructions dièses pour les barres de progression : "# Largeur thermometre", "# Hauteur thermometre", "# Largeur bordure thermometre", "# Couleur bordure thermometre", "# Largeur espace thermometre", "# Couleur espace thermometre"
24 mars 2009Les modules callweb.cgi et cwx.cgi peuvent afficher les codes de rappel (plutôt que les rappels eux-mêmes) et éviter les permutations de sorte à produire une version stable du questionnaire pour l'impression et le partage.
22 mars 2009Les modules callweb.cgi et cwx.cgi peuvent afficher les codes de réponses, les conditions d'affichage et les sauts. De pair avec le mode imprimé, qui affiche tout le questionnaire sur une seule page Web, ceci permet la production de versions des questionnaires à partager avec les personnes moins habiles sur le plan technique.
21 mars 2009Le nouveau mode daemon de CallWeb est prêt pour la production.
17 février 2009Tous les éléments du nouveau mode daemon de CallWeb sont en place — mais pas encore mis en production.
14 février 2009Ajout d'une table de matières hyperliée à la sortie de cwfreq.cgi si plus d'un tableau est produit.
10 février 2009Optimisation de cwautoemail.pl pour éviter les délais associés aux champs d'adresses de courriel vides.
9 février 2009Les changements structurels à la base de données peuvent être acceptés durant la compilation s'ils constituent le seul enjeu de compilation.
8 février 2009Ajout du « mode formation » qui affiche le questionnaire sans saut ni condition d'affichage, et sans faire la substitution des rappels de réponses. Ce mode de démonstration est conçu pour la formation des interviewers.
7 février 2009Ajout de l'instruction dièse « # Gabarit » qui permet de construire des pages de questionnaire sur la base de pages HTML existantes. Maintenant, vous pouvez reproduire l'apparence de sites Web existants ou implanter des pages normalisées comme celles de l'initiative de normalisation des sites Web du Gouvernement du Canada.
1er février 2009Ajout des instructions dièses « # Button order top » et « # Button order bottom » qui remplacent l'instruction « # Button order ». La rétro-compatibilité est assurée.
1er février 2009Les catégories de réponses contrôlées par # Auto submit sont soumises au style AUTOSUBMIT; elles peuvent donc afficher leur statut Auto-submit.
1er février 2009Reconceptualisation en profondeur du système de production des pages de questionnaires qui permettra d'ajouter plusieurs nouveaux outils.
13 janvier 2009Un journal des changements structurels effectués sur les questionnaires est conservé dans le fichier projet.change.log.
15 décembre 2008La priorité des messages peut être précisée dans cwemail.cgi.
8 décembre 2008cwedit.cgi sauve les fichiers .scw avec des caractères de fins de lignes Windows.
23 novembre 2008Ajout de la capacité d'insérer toute instruction dièse dans le fichier de configuration du système.
6 novembre 2008Ajoute de l'instruction dièse Auto submit pour accélérer le travail CATI.
22 septembre 2008Ajout de l'extraction de code R pour la lecture des fichiers de données CallWeb.
18 septembre 2008Les extractions aux fichiers .csv peuvent maintenant compter davantage de champs pour utiliser les capacités accrues de Excel 2007.
4 septembre 2008Les tableaux univariés et bivariés peuvent maintenant exclure les lignes sans effectif.
26 juin 2008Ajout de l'instruction d'installation comparative_results pour afficher de l'information sur la productivité des interviewers aux interviewers.
20 juin 2008Le champ obligatoire _telkey peut être placé n'importe où dans un fichier de prépopulationnement.
17 juin 2008Le système de Pretest a été modifié de sorte que les notes de prétest d'une question particulière dans un dossier spécifique sont réaffichées lorsque le lien de prétest est réutilisé pour cette même question dans ce même dossier.
16 juin 2008Ajout de l'instruction dièse Allow new in open combination qui contrôle la permission d'ajout de nouveaux dossiers dans le mode « Ouvert combinaison ».
9 juin 2008Révision majeure du code de production des pages de questionnaires pour rendre celles-ci compatibles avec la norme XHTML. Les modules d'appui seront modifiés prochainement.
20 avril 2008Nouveau module de gestion des fichiers cwdocs avec lequel les usagers peuvent créer, effacer, copier, renommer et déplacer des répertoires, téléverser, télécharger, effacer, copier, renommer et déplacer des fichiers sur le serveur sans nécessiter d'application locale autre qu'un navigateur.
9 avril 2008Des modules particuliers accessibles depuis le menu intégré (peut-être des modules moins utilisés) peuvent être éliminés du menu.
4 avril 2008Ajout de l'instruction dièse Robot caller id qui identifie le numéro que le robot d'appels affiche.
16 mars 2008Ajout de l'instruction de sélection de codes de réponse CODESIN et de la fonction de gestion de base de données pull_value.
3 mars 2008Ajout de l'opérateur LANGUE dans les conditions d'affichage pour spécifier des versions linguistiques du questionnaire.
19 février 2008Ajout de la variable système _semaine qui indique la date du dernier accès au questionnaire exprimée en date-semaine.
14 février 2008Améliorations dans la gestion des courriels dans cwemail.cgi : meilleure identification des domaines inaccessibles, codes d'erreurs additionnels dans le champ de sortie.
12 février 2008Nouvelle fonction de calcul « push_value » servant à placer une valeur dans une question dans n'importe quel projet sur la base de conditions de sélections arbitraires.
2 février 2008Ajout de deux critères de sélection de dossiers dans tous les programmes utilitaires : « dans une liste de valeurs » et « en-dehors d'une liste de valeurs »
31 janvier 2008cwquestionnaire.cgi peut produire des imprimés de questionnaires polyglotes.
4 décembre 2007La comparaison multiple de suites et de valeurs ponctuelles est maintenant possible dans les conditions d'affichage (p.ex., Q1.EQ.1-5,7).
13 novembre 2007Nouveau type de question SEMANTIC pour simplifier la programmation d'échelles de sémantique différentielle.
12 novembre 2007Un champ INFOCATI comportant une partie ouverte de type T affiche un bouton de signalement si le projet utilise un signaleur.
12 novembre 2007Le module cwquestionnaire peut afficher les alias de catégories de réponses.
9 novembre 2007cwfreq.cgi est maintenant capable d'afficher distributions de fréquences et tableaux en ordre décroissant de fréquences.
23 octobre 2007Ajout de la capacité de commenter différentes parties de la définition d'une question; ces commentaires sont affichés par cwquestionnaire.cgi
20 octobre 2007Dans le module cwemail.cgi, il est possible de tester un envoi à une seule adresse.
18 octobre 2007Ajout de la possibilité de copier un script CallWeb d'un autre serveur avant la compilation.
October 14, 2007Open-end questions associated with <BOX> instructions don't need to be defined before their use in the questionnaire anymore.
October 12, 2007Addition of the <COMPUTE BUTTON> instruction which displays a new button on the page and performs arbitrarily simple or complex calculations before returning to the same questionnaire page.
October 6, 2007In the presentation of a table involving _cetecran, cwfreq hyperlinks to a cwquestionnaire display of the question.
September 14, 2007In cwnav.cgi, if a multiple-response question is edited in boxed mass edit mode, different values can be separated by commas or spaces. CallWeb edits the data upon Action! to delimit the values using "μ" characters.
September 3, 2007In table presentations, answer categories that would never be selectable because of display conditions are not shown.
September 2, 2007Addition a mechanism to # Auto email to avoid bombarding a domain with messages and, thereby, reduce the risks of being black-listed or identified as a spammer.
September 2, 2007Addition of links to other utility programs, passing along all common parameters. This allows to carry over a case selection (and other parameters) automatically from one utility program to another.
August 29, 2007Addition of an optional title displayed in utility programs (cwnav.cgi, cwfreq.cgi, cwoutcomes.cgi and cwquestionnaire.cgi). It is formatted with the EQUIVALENTH5 style by default.
August 28, 2007cwcompile.cgi compares the ID of the current user to that of the most recent person who compiled a project and reports discrepancies.
August 18, 2007Addition of the BASEpretest pound instruction which activates the CallWeb pretest mode. See the related recipe.
August 11, 2007Addition of the NOTEST question type which cancels compilation tests on response categories for a certain question; useful to speed up the compilation when a question includes thousands of answer categories, it has been tested in the past and no change was made to it).
August 9, 2007CallWeb now implements parallel permutations where the random order of one set of variables is mirrored in another set.
August 6, 2007cwextr.cgi can now extract directly into another CallWeb data base located on the same server or another server.
July 10, 2007cwarchive.pl keeps the questionnaire script .scw file and the style.css file in the .zip archive along with the .tcw version of the data.
July 5, 2007In addition to optionally showing field display conditions in the header of the tables, cwfreq.cgi can acknowledge the presence of skip patterns — which is helpful in assessing the integrity of the data.
June 26, 2007Addition of the capacity to recalculate CALCUL questions on any number of data records from within cwnav.cgi.
June 20, 2007Addition of the BASEclicks pound instruction which speeds up calls to callweb.cgi.
June 2, 2007CHECKALL can be used in conjunction with the copy of answer categories.
June 2, 2007Assuming no language parameter is passed on to CallWeb, the questionnaire now start in the first language accepted by the respondent's browser if this language exists in the questionnaire. The default language is used otherwise.
May 25, 2007New DEACTIVATE PAGES pound instruction which shortcircuits the GROUP (ECRAN) and TABLE (MATRICE) instructions in the questionnaire. It may serve to linearize a questionnaire for CATI purposes.
May 18, 2007E-mail messages are sent no faster than one per five seconds to any given domain to avoid bombarding.
May 17, 2007Several constraints in the management of multi-server projects are lifted.
May 13, 2007New RECALL pound instruction which provides another method to substitute text and values in questionnaires.
May 12, 2007Recalls can now be made within recalls (of any type within any type and at any depth level).
April 24, 2007cwupdate.pl can now run at the cron.minute pace, allowing for much more dynamic system updates.
April 23, 2007The short CallWeb syntax may now include the name of the initial question in the questionnaire.
April 19, 2007New recode function to recode answers into another coding scheme.
April 19, 2007New I answer behaviour code which makes the code invisible.
April 17, 2007The RTF (Word-printable) version of the questionnaire is now uploaded to the workstation where it can be opened directly into Microsoft Word (or other RTF-compliant word processing programs) instead of being displayed on screen.
April 11, 2007Addition of the POSITION parameter in the definition of tables to put the table on the left side of the page, on the right or centered.
March 31, 2007Using the Control by cookie pound instruction, addition of the capacity to limit the creation of a single questionnaire using cookies.
March 28, 2007Addition of the New question order pound instruction to put questions in an order that is different from the sequential order of the .scw file. This is useful to allow the SUFFIX syntax with non-contiguous questions.
March 18, 2007Addition of security controls to avoid illegitimate form submissions by spammers.
March 16, 2007Addition of the capacity to open a particular record in cwnav.cgi from the integrated interface cw.cgi.
March 14, 2007Addition of the # Button position pound instruction to locate the submission buttons on the page.
March 13, 2007Addition of the V answer category behaviour code to flag missing values in univariate tables in cwfreq.
March 9, 2007The "<", "=" and ">" answer category behaviour codes also control drop-down lists located in tables.
March 8, 2007Addition of three answer category behaviour codes to control the location of open-end boxes within cells of tables.
February 14, 2007Addition of the administrator_email installation parameter used to automatically send information on available system updates.
February 9, 2007Acceleration of the look-up of answer categories.
February 7, 2007Addition of parallel permutations using ROTATON=Qx whereby the permutation of answer categories is made the same as the permutation of answer categories in another question.
February 3, 2007New M open-end part to create "password" fields (M for mot de passe) which display asterisks in the input box upon data entry.
January 31, 2007Data extraction can now respect the width of the closed data fields instead of outputing a fixed number of columns.
January 30, 2007New response category behaviour code B to identify codes which are not subject to permutation, inversion or alpha order.
January 27, 2007Response aliases can be labelled using letters and numbers, not only numbers.
January 24, 2007Hierarchical projects can link to a subset of children not associated with the current parent.
January 12, 2007cwfreq can display absolute-frequency-only tables (without percentages).
January 10, 2007Addition of readable date and date-time values in the context data.
January 8, 2007Addition of the concept of answer code alias which can be used in recalls to display different text without having to create extra questions or use the somewhat involved EXECUTE syntax. See the recipe about it.
January 5, 2007New operators ISEMPTY and ESTVIDE for display conditions and x-base logical expressions generally. They identify fields which contain no data. They replace the ".NOT.field" syntax which is made obsolete by allowing zeros in answer categories.
January 5, 2007Answer categories may now use zero as a code.
December 13, 2006Open-end parts of [D]ate type automatically pop a calendar (as long as the browser accepts JavaScript code) upon clicking into the open-end box. The respondent can pick a date from that calendar.
December 7, 2006The questionnaire progress bar is now based on the number of questionnaire pages displayed to the respondent instead of the number of question prompts.
November 7, 2006cwnav hyperlinks directly to the .wav recordings of telephone interviews (an Asterisk server is used to control the telephone conversation and record the interview).
November 3, 2006New Refuse duplicates in cwprepop pound instruction.
November 2, 2006New random_subset function to select a random subset of responses to a multiple-response question.
November 2, 2006cwprepop flags invalid numeric values associated with close-ended questions.
October 31, 2006Ability to format a 10-digit number as a telephone number when displaying it.
October 25, 2006The integrated module can hide or display BASE projects.
October 24, 2006New CATI selection 3 pound instruction.
September 29, 2006Values can be truncated independently for lines and columns in cwfreq.
September 28, 2006New MySQL engine pound instruction.
September 9, 2006New Display thermometer pound instruction replacing "Thermometer" with a more user friendly interface. "# Thermometer" is maintained for backward compatibility.
September 4, 2006The conditions used to select records in the CallWeb data base may now be entered as a full SQL expression in addition to the dropdown list-assisted traditional mode.
September 3, 2006Addition of the cwcheck module which reports cases with missing data and excess data (stemming from changes to the questionnaire part-way into the data collection) based on existing answers and the questionnaire logic.
August 30, 2006Implementation of a new (and much finer) mechanism to determine the colours in questionnaire tables.
August 26, 2006cwedit can be instructed to display only text fields so that the translation can take place in cwedit without fear of changing the structure of the questionnaire.
August 19, 2006Addition of the T answer behaviour code which asks to confirm a numeric open-end value which is outside the minimum and maximum bounds planned in the questionnaire.
August 11, 2006Default extraction file types and e-mail destinations can be specified in the instance configuration options.
August 2, 2006A report on the result of the most recent update is available from the integrated module.
July 30, 2006Addition of the ability to easily select the language of the questionnaire to extract for data processing purposes.
July 26, 2006Addition of the Extraction width pound instruction.
July 19, 2006Addition of the "ivr" mode to the CATI pound instruction.
May 20, 2006Addition of the ONCEACROSS parameter on the question name line to allow only one respondent to chose any given response category.
May 15, 2006RELATION questions feature a simpler user interface for respondents.
May 10, 2006The demo mode is now fully operational even on Closed, Open Combination and Open Offered survey types.
May 7, 2006The compiler now flags simple skips on non-exclusive codes of multiple-answer categories as errors.
May 5, 2006Production of an English and a French version of a symmary card of CallWeb syntax.
May 5, 2006The Survey type pound instruction can be expressed using clear type names rather than numeric codes.
April 30, 2006It is now possible to perform several extractions concurrently on a given project.
April 27, 2006Addition of the ONLYONCE parameter on the question name line to refuse to change the answer to a question.
April 24, 2006Data modification in cwnav can now be constrained to existing close list codes to simplify coding and to enhance quality control.
April 21, 2006A question name line and a SUFFIX note can modify the CORNER heading of a table.
April 18, 2006Addition of the NOTHERMOMETER parameter on the question name line to avoid displaying the progress bar.
April 15, 2006cwcompile reports duplicate answer codes.
April 11, 2006cwcompile now has an option to beautify scw files (adding indentation, labelling percent and exclamation lines).
April 10, 2006The positional parameters on the TABLE pound instruction are replaced by keywords.
April 10, 2006The positional parameters on the PERMUTATION pound instruction are replaced by keywords.
April 10, 2006The positional parameters for the minimum and maximum numbers of answers on the question name line are replaced by the MIN and MAX keywords.
April 7, 2006The D positional parameter on the question name line is replaced by the DROPDOWN keyword.
April 7, 2006Addition of a "search and replace" function in cwnav.
April 2, 2006Addition of cwupdate.cgi and cwupdate.pl which perform a scheduled update of the CallWeb system software.
March 24, 2006Addition of the CHECKALL question type.
March 24, 2006A CallWeb cookbook has been initiated which offers recipes for common and not so common tasks.
March 16, 2006In matrix format, radio buttons and checkboxes can be selected by clicking anywhere in the table cell.
March 15, 2006It is now possible to back track to a question without responses or allowing no response.
March 10, 2006Addition of the "Second line of buttons" pound instruction.
March 9, 2006Addition of the project name and of the date of the last update to the questionnaire in the context data.
March 8, 2006If the first column of a matrix is empty, it is not displayed.
February 27, 2006Launch of the first version of cwgen which generates random test data to verify the integrity of a questionnaire logic.
February 16, 2006The "value" used in subsetting comparisons in utility programs may be "$today" or "$aujourdhui" or "$yesterday" or "$hier". These expressions are then translated into the appropriate date.
February 10, 2006The new VERBATIM question type (meant for use in CATI mode) allows for the easy cleaning of character open-ends at the end of an interview.
February 9, 2006The frequencies displayed by cwquestionnaire can use a filtering expression so as to report only a subset of the cases.
January 23, 2006The new # Mandatory question instruction can display a signal on every mandatory question in the questionnaire.
January 16, 2006The new _h3 system variable stores the dates and times of modifications performed on data from within cwnav (either in mass edit mode or in individual case edition).
January 16, 2006Dates of data prepopulation are now kept in _prepops; the new field _lastprepop contains the most recent prepopulation action date.
January 13, 2006E-mail messages, be they massive or individual, can now contain an HTML portion.
December 31, 2005cwextr can now extract only a subset of the questionnaire fields.
December 9, 2005cwedit can now copy questions from other projects within the instance of CallWeb.
November 30, 2005Addition of the # Deny access if instruction to block access to questionnaires.
November 15, 2005Addition of the # Thermometer colour instruction to determine the colour of the thermometer.
November 14, 2005Addition of the ability to add attachments to e-mail messages sent via cwemail.
November 10, 2005Addition of the System message pound instruction.
November 3, 2005Images used for the left, right and stop buttons can now be different from language to language.
October 31, 2005Addition of configuration options to define local telephone numbers in CATI mode.
October 25, 2005Addition of the # Master CATI server instruction which identifies which server may manage the CATI operations of a project.
October 24, 2005Addition of the # Copy questionnaire into instruction which sends a copy of a local questionnaire to a secondary CallWeb server.
October 23, 2005Addition of the # Master compilation server instruction which identifies which server may compile the project.
October 22, 2005Addition of the # Only for server instruction which makes a pound instruction conditional to which server the scripts runs on.
October 22, 2005Addition of the ability to switch languages using images rather than HTML buttons using the # Language image instruction.
October 19, 2005Initial launch of the beta version of cwedit which is a visual editing environment for CallWeb questionnaires.
October 14, 2005Optionally, cwquestionnaire can add actual data base frequencies and percentages into the questionnaire output.
October 5, 2005A new mechanism intercepts and reports (by interruption) the presence of infinite loops in questionnaires.
October 4, 2005Simple skips associated with CALCUL questions are now honoured. This simplifies multiple branching.
September 22, 2005The compiler refuses to process a script if a compiled script of the same name exists elsewhere in its CallWeb directory structure.
September 6, 2005The data base server is fully detached from the CallWeb server; it can reside on the same computer or on a separate one and one data base server can serve severa CallWeb servers.
August 30, 2005Individual projects can now have their individual installation (conf) files to specify parameters at the installation level such as the data base engine to use, the location of the data base server or the default language.
August 19, 2005cwtelkeys can now insert the newly created _telkeys directly into the project data base.
August 15, 2005Addition of the "Button Order" pound instruction to control the order of presentation of the buttons and thermometer at the bottom of each question screen.
August 11, 2005Addition of the "HTML Title" pound instruction to provide a title for the questionnaire HTML page.
August 8, 2005Addition of the S behaviour code which gives special formatting to response categories.
August 6, 2005Addition of the SCALE question type which displays the answers as a horizontal scale.
August 4, 2005Text can be added in the title cell above a drop-down list located in a table using the M behaviour code and the [COL] feature.
July 29, 2005Simplification of the integrated module (cw) to focus on key project management functions.
July 26, 2005Addition of a data export format (opn): open end parts along with their question name and _telkey.
July 20, 2005New utility (cwtelkeys) to create lists of _telkeys that are unique within a project.
June 5, 2005It is now possible to create entire batteries of questions much more rapidly, thanks to question cloning.
May 26, 2005The page explaining tables instructs on how to create semantic differential scales or repeated end-point scales.
May 25, 2005Improvements to _print mode which now displays only relevant fields; display conditions and skips are displayed in clear to make this questionnaire format readable as well as informative.
May 17, 2005Addition of the features to make unit-type questions possible.
May 17, 2005The minimum and maximum values of a numeric open-end part may now be Perl expressions (therefore, calculated values).
May 13, 2005Addition of a pound instruction to indicate that a CallWeb project runs in CATI context.
May 5, 2005Addition of function to facilitate the integration of dual-mode (Web + telephone) projects.
April 28, 2005Addition of a method to assign values based on calculated expressions in cwnav.
April 26, 2005A new minimalist URL syntax is now available to initiate questionnaires.
April 19, 2005Addition of the JUMP hyperlink feature to jump to another question of the questionnaire without collecting data (useful for linked menus).
April 8, 2005Addition of the ability to permutate questions within permutations of blocks — down to any chosen depth level.
March 30, 2005Addition of the G behaviour code which ensures proper casing of an open-end part.
March 14, 2005Addition of the TEST pound instructions which implements any logical validation test anywhere in the questionnaire and reports anywhere on the CallWeb page.
February 22, 2005Addition of an option to display only statistics (no frequencies) for continuous data.
January 25, 2005Addition of extended x-base syntax .EQ. and .NE. operators to compare with multiple values at once.
January 20, 2005Addition of a CALCUL function to select random combinations of response choices (e.g., select any 2 choices among 5 possible answers).
January 17, 2005Moved the log of bounced messages to the project directory.
January 16, 2005Capacity to extract data and code to a DOS/Windows file format or a Linux file format.
December 13, 2004Addition of the capacity to run one-way and two-way tables on truncated data values.
December 1, 2004Addition of the INCLUDE pound instruction to include outside text files in .scw scripts.
November 28, 2004Addition of automated e-mails sent on the basis of a preset plan, using all of the information in the questionnaire; ideal for panel management!
November 25, 2004Addition of non-cleaning display conditions.
November 20, 2004Addition of a system to capture bounced messages (cwbounces.pl) in response to CallWeb invitations or other messages sent by CallWeb, and to store the bounces in the CallWeb data base in the relevant questionnaire data string.
November 19, 2004Considerable acceleration of data base prepopulation.
November 18, 2004In utility programs, addition of the ability to reduce the lists of questions to Web-meaninful ones.
November 17, 2004Translation of all pound instruction names into English (the French versions remain valid).
November 15, 2004Addition of the ability to display response categories in alphabetical order of label in all languages.
October 29, 2004Addition of a question type forcing the display of a table banner when questions are arrayed in table mode.
October 28, 2004Addition of a pound instruction to direct e-mail bounces.
October 21, 2004Addition the ability to span pound instructions over several lines and to integrate all linguistic versions of a pound instruction in a single declaration.
October 20, 2004Addition of a pound instruction to specify the text above the progress thermometer.
October 12, 2004Addition of the ability to FORMAT open-ended parts as dollar amounts, percentages, etc.
September 28, 2004Simplification of the syntax of CALCUL questions.
September 24, 2004cwcompile disallows the use of MySQL-reserved keywords as question names.
September 21, 2004Addition of the capacity to insert an open-end box within in the label cell of a matrix row (e.g., to add and "other, specify" entry in a matrix).
September 10, 2004Addition of the # Affiche min max instruction.
September 9, 2004Extractions of csv files create as many files as there are groups of 240 variables, in recognition of the limit imposed by Excel.
August 25, 2004Addition of a second level sort in cwNav.
August 24, 2004Improvement to the cwNav hyperlinks in cwFreq.
August 19, 2004Addition of a CALCUL function to close the browser window.
August 17, 2004Addition of the capacity to stop the questionnaire and direct the respondent to a special section of the script while ensuring that the questionnaire will resume from the page attained before requesting the interruption.
August 16, 2004cwcompile checks that the copy of individual response code texts is done from the default language and not to it.
August 7, 2004Available projects selectable by drop-down menus in cw.
August 6, 2004Addition of a selection criterion which does not discriminate between accentuated and non-accentuated vowels.
August 4, 2004cwNav links child records to parent records when a relation question is displayed.
August 4, 2004Addition of # Type enquete = 3 which allows survey participants to enter an access code and a password of their choosing.
August 3, 2004Additions of "Previous n" and "Next n" buttons in cwNav.
July 25, 2004Permutations and inversions of response categories are stable upon redisplaying a question with such permutated/inverted categories (back-and-forward or reentering a questionnaire).
June 12, 2004Addition of a URL open-end type.
June 11, 2004Addition of the <EXECUTE>Perl expression</EXECUTE> syntax to display the results of complex calculations without storing them.
June 9, 2004A table presentation of the data in RELATION questions can be recalled into other questions.
June 4, 2004Addition of master codes to access CallWeb projects (MASTER CODES pound instruction).
May 16, 2004Addition of the RELATION questions and of hierachical projects.
May 10, 2004Addition of the L (lire) answer behaviour code.
May 7, 2004Addition of a "regular expression" open-end type (R).
April 25, 2004cwQuestionnaire can identify HTML styles in use in a questionnaire and can attempt to replicate the style structure in an RTF file.
April 7, 2004Addition of the M response category behaviour code.
March 31, 2004cwQuestionnaire associates discrete styles to question names and calculated questions.
March 29, 2004Addition of the CORNER option in the TABLE statement to display text in the upper left corner of a table.
March 22, 2004Addition of a mechanism (cwDossier) to view the last few completed questions as part of cwNav (for CATI purposes).
March 18, 2004Addition of the "is empty" and "is not empty" operators in the selection tools of all utility menus.
March 12, 2004Security upgrade for the CallWeb configuration file.
March 11, 2004Addition of a means to display individual cases in legible form from cwNav.
March 10, 2004cwCompare identifies structural differences between two versions of a questionnaire.
March 3, 2004New "Condition de non retour" pound instruction to better control re-entry into the questionnaire.
March 2, 2004Addition of the "Visible depuis" pound instruction to limit project access for utility directories.
February 26, 2004An equal sign can be used to copy text from the default language into a non-default language, anywhere language-based text is used.
February 25, 2004The algorithm used by SUBSET questions is vastly enhanced, making selections in thousands of categories as fast as ordinary small sets.
February 7, 2004Addition of the STOCK question type to store simply information.
February 5, 2004cwCompile senses that questions were moved within the questionnaire script and adjuts the data structure.
January 23, 2004CallWeb script files now bear the .scw extension.
January 21, 2004cwExtr can now create Triple-S code files; it can also include the CallWeb code file in the extraction zip file.
January 12, 2004NEVERUPDATE questions are never displayed on screen.
December 17, 2003New possibility to attribute values to questions upon initial call fo CallWeb.
December 10, 2003Major upgrade to accommodate guidelines for the preparation of pages for the visually impaired (W3C); addition of the _access switch.
December 4, 2003cwPrepop can insert data into existing cases from a tab-delimited file.
December 2, 2003Possibility to calculate the thermometer from a question other than the first question.
November 28, 2003cwNav links into the questionnaire utility.
November 27, 2003cwNav allows the edition of data en masse, several records and several variables at a time.
November 25, 2003The CallWeb questionnaire pages includes only key information on the session; the complete data vector is not carried over from page to page anymore.
November 24, 2003Addition of the capacity to insert standardized formatted tables in any string.
November 23, 2003Addition of the capacity to transpose questions and answers in question tables (i.e., questions as columns).
November 21, 2003Addition of the capacity to reinitialize records to their initial state after prepopulation (assuming proper use of NEVERUPDATE questions).
November 19, 2003Addition of a default back-up strategy for all projects without specific archival settings.
November 16, 2003Addition of a validation condition (MUST) based on any data in the questionnaire, including in the current screen.
November 15, 2003Addition of an option to display question names during a real or simulated interview, including the production of a complete questionnaire printout.
November 12, 2003Implementation of the cwArchive system to perform timed back-ups.
November 8, 2003The thermometer is now calculated using the last question of a screen rather than the first.
November 7, 2003Display conditions can be borrowed from other questions using the "=" operator.
November 5, 2003Possibility to flag individual response categories using a behaviour code (P).
October 25, 2003Addition of an option to not hyperlink the data tables from cwfreq to cwnav.
October 25, 2003Addition of a parameter for the error message displayed upon supplying an incorrect access code.
October 22, 2003Clicking the language button preserves the answers already provided on a page.
October 21, 2003Ability to save responses provided before going backwards using the CallWeb back button (not the browser button).
October 18, 2003Alternating colours of matrix rows.
October 15, 2003Access code pattern can be pre-determined.
October 10, 2003Frequency distributions and two-way tables can be output to a CSV or a tab-delimited format.
October 7, 2003In the CATI version, the number of dossiers available per stratum can be set to a maximum.
October 7, 2003Addition of ability to borrow question and note text from another question.
October 5, 2003Separation of the NOTE text from the question text.
September 28, 2003Customized access code request screen.
September 11, 2003Extractions may be left on the server instead of being sent by e-mail.
September 9, 2003Addition of the telephone number open-end type.
September 8, 2003Addition of the ability to edit only selected variables in cwNav.
September 7, 2003Addition of the ability to select or deselect (for deletion) all displayed cases in cwNav.
September 5, 2003Addition of a open-end type for the first three digits of a Canadian postal code.
August 29, 2003In extracting data, it is possible to subset cases as well as select data and code file types.
August 25, 2003Addition of tool to generate URLs to complex utility requests.
August 25, 2003Addition of a checkbox view for question selection in cwnav and cwfreq.
August 20, 2003Substantial acceleration (and increased sturdiness) of the compilation process when structural changes are required.
August 16, 2003Possible suppression of the SUBSTITUT style in response recall.
August 10, 2003Addition of descriptive statistics in two-way tables (cwfreq).
August 8, 2003Addition of a method to enter a questionnaire elsewhere than at the first question.
August 8, 2003Support for an external library of Perl functions in cwplugins.pl.
August 5, 2003Permutations can be set to display a limited number of randomly chosen questions.
July 30, 2003Permutations can now include all questions on a page.
July 28, 2003Improvements to the validation of display conditions during compilation.
July 25, 2003Solidification of the compilation process to eliminate risks of data corruption.
July 17, 2003Addition of interview type 6.
June 21, 2003Addition of the U behaviour code to make all text in an alphanumeric open part upper case.
June 13, 2003Addition of SUBSET feature to select answer categories using a few characters in the category label.
June 12, 2003Addition of the Forced category behaviour.
June 11, 2003Addition of ability to borrow response categories from another question.
June 5, 2003Addition of the "Changement de langue" pound-option.
May 24, 2003Addition of levels of parentheses in selection menus used in utility programs.
May 23, 2003Users can now use the browser back button without data loss. The CallWeb Back button has become optional (defaulting to no-show) via the # Affiche retour arriere option.
May 21, 2003Addition of a case-level lock to prevent two people from modifying the same information.
May 20, 2003Addition of the "O" category behaviour code (optional open-end parts).
May 20, 2003Addition of an Hour question type with validation within a time range.
May 3, 2003Addition of a Date question type with validation within a date range.
April 19, 2003cwNav can display answer labels in addition to or in replacement of answer codes.
April 18, 2003Addition of a question type to render data unchangeable from within CallWeb (except by prepopulation).
April 17, 2003Addition of a question type that restricts back-tracking in a questionnaire..
April 17, 2003Addition of the capacity to e-mail from within a CallWeb script.
April 12, 2003Addition of the capacity to test questionnaires without affecting permanent files.
April 11, 2003New module to destroy data bases.
April 7, 2003Ability to colour columns of question tables differently.
April 6, 2003New module to handle invitation and reminder e-mails.
April 4, 2003Addition of recalls (piping) of responses to questions allowing multiple selections.
March 31, 2003The compiler detects and reports dangerous structural differences between the untransported data table and the questionnaire.
March 27, 2003Addition of the "~" prefix to create non-cleaning skips.
March 26, 2003Revamping of cw which is now an integrated front-end for all CallWeb functions.
March 20, 2003Addition of the ability to destroy data bases using cwdestruction.
March 19, 2003Addition of the capacity to structure tables using more than one variable in the columns (horizontally joined tables).
March 18, 2003Addition of the quota management system.
March 10, 2003Addition of the CULDESAC question type.
March 9, 2003Migration of data storage to a MySQL data base.
March 3, 2003Addition of the capacity to lay out response categories over several columns, globally or question by question.
March 2, 2003Addition of the _print command line parameter for the callweb module to display the entire questionnaire in a form fit for printing yet similar to the experience provided to the survey respondent.

   

Annexe E

Syntaxe des sorties en tableaux

À l'intérieur de CallWeb, virtuellement toutes les chaînes alphanumériques affichées dans un questionnaire peuvent être mise en page sous forme de tableau qui adopte les couleurs définies dans le questionnaire (voir Couleurs et disposition) grâce à un outil standardisé. Cette méthode facilite la création de tableaux et assure la cohérence de l'apparence du questionnaire. Bien sûr, les différentes méthodes de rappels de valeurs peuvent être utilisées à l'intérieur de ces tableaux.

Pour insérer un tableau dans une chaîne alphanumérique (le segment du texte de la question, par exemple), entourez les instructions de composition du tableau de doubles accolades, c'est-à-dire {{ et }}. À l'intérieur de ces bornes, insérez le texte à afficher en tableau et les instructions spéciales décrites ci-après (le tableau suivant a été créé en utilisant cette méthode).

CommandeAction
{>}Passer à la cellule suivante.
{<}Passer à la ligne suivante (voyez-le comme un retour à la ligne).
{SC}Présenter la cellule comme une en-tête de colonne (le texte est centré dans la cellule par défaut et le style .COLONNE est appliqué). Pour changer la justification, ajoutez l'instruction de justification appropriée (voir ci-bas).
{SL}Présenter la cellule comme une en-tête de ligne (le texte est justifié à gauche dans la cellule par défaut et le style .LIGNE est appliqué). Pour changer la justification, ajoutez l'instruction de justification appropriée (voir ci-bas).
{SS}Présenter la cellule comme une valeur SPECIAL (voir les tableaux de questions).
{C}Centrer le texte dans la cellule.
{L}Justifier le texte à gauche dans la cellule.
{R}Justifier le texte à droite dans la cellule.
{T}Placer le texte au haut de la cellule.
{B}Placer le texte au bas de la cellule.
{M}Placer le texte au milieu de la cellule (verticalement).
{NW}Éviter le retour à la ligne dans la cellule.
{nombre}Distribuer le contenu de la cellule sur « nombre » colonnes; si « nombre » est zéro, le texte s'étend sur la largeur du tableau; s'il est négatif, il s'étend sur le nombre de colonnes du tableau moins « nombre ».
{Rnombre}Distribuer le contenu de la cellule sur « nombre » lignes. Les lignes touchées par cette distribution sur les lignes ne peuvent pas être inclure une valeur négative de distribution sur les colonnes.
{TC}Placé dans la première cellule du tableau, centrer le tableau horizontalement sur la page.

Le tableau ci-dessus a été créé par les instructions suivantes.

    {{
    {SC}Commande{>}{SC}Action{<}
    {>}{>}Passer à la cellule suivante.{<}
    {<}{>}Passer à la ligne suivante (voyez-le comme un retour à la ligne).{<}
    {SC}{>}Présenter la cellule comme une en-tête de colonne (le texte est centré dans la cellule par défaut et le style .COLONNE est appliqué). Pour changer la justification, ajoutez l'instruction de justification appropriée (voir ci-bas).{<}
    {SL}{>}Présenter la cellule comme une en-tête de ligne (le texte est justifié à gauche dans la cellule par défaut et le style .LIGNE est appliqué). Pour changer la justification, ajoutez l'instruction de justification appropriée (voir ci-bas).{<}
    {SS}{>}Présenter la cellule comme une valeur SPECIAL (voir les {JUMP:QSTRUCTABLES}tableaux de questions{/JUMP}).{<}
    {C}{>}Centrer le texte dans la cellule.{<}
    {L}{>}Justifier le texte à gauche dans la cellule.{<}
    {R}{>}Justifier le texte à droite dans la cellule.{<}
    {T}{>}Placer le texte au haut de la cellule.{<}
    {B}{>}Placer le texte au bas de la cellule.{<}
    {M}{>}Placer le texte au milieu de la cellule (verticalement).{<}
    {NW}{>}Éviter le retour à la ligne dans la cellule.{<}
    {nombre}{>}Distribuer le contenu de la cellule sur « nombre » colonnes; si « nombre » est zéro, le texte s'étend sur la largeur du tableau; s'il est négatif, il s'étend sur le nombre de colonnes du tableau moins « nombre ».{<}
    {Rnombre}{>}Distribuer le contenu de la cellule sur « nombre » lignes. Les lignes touchées par cette distribution sur les lignes ne peuvent pas être inclure une valeur négative de distribution sur les colonnes.{<}
    {TC}{>}Placé dans la première cellule du tableau, centrer le tableau horizontalement sur la page.{<}
    }}

Annexe E

Syntaxe des sorties en tableaux

À l'intérieur de CallWeb, virtuellement toutes les chaînes alphanumériques affichées dans un questionnaire peuvent être mise en page sous forme de tableau qui adopte les couleurs définies dans le questionnaire (voir Couleurs et disposition) grâce à un outil standardisé. Cette méthode facilite la création de tableaux et assure la cohérence de l'apparence du questionnaire. Bien sûr, les différentes méthodes de rappels de valeurs peuvent être utilisées à l'intérieur de ces tableaux.

Pour insérer un tableau dans une chaîne alphanumérique (le segment du texte de la question, par exemple), entourez les instructions de composition du tableau de doubles accolades, c'est-à-dire {{ et }}. À l'intérieur de ces bornes, insérez le texte à afficher en tableau et les instructions spéciales décrites ci-après (le tableau suivant a été créé en utilisant cette méthode).

CommandeAction
{>}Passer à la cellule suivante.
{<}Passer à la ligne suivante (voyez-le comme un retour à la ligne).
{SC}Présenter la cellule comme une en-tête de colonne (le texte est centré dans la cellule par défaut et le style .COLONNE est appliqué). Pour changer la justification, ajoutez l'instruction de justification appropriée (voir ci-bas).
{SL}Présenter la cellule comme une en-tête de ligne (le texte est justifié à gauche dans la cellule par défaut et le style .LIGNE est appliqué). Pour changer la justification, ajoutez l'instruction de justification appropriée (voir ci-bas).
{SS}Présenter la cellule comme une valeur SPECIAL (voir les tableaux de questions).
{C}Centrer le texte dans la cellule.
{L}Justifier le texte à gauche dans la cellule.
{R}Justifier le texte à droite dans la cellule.
{T}Placer le texte au haut de la cellule.
{B}Placer le texte au bas de la cellule.
{M}Placer le texte au milieu de la cellule (verticalement).
{NW}Éviter le retour à la ligne dans la cellule.
{nombre}Distribuer le contenu de la cellule sur « nombre » colonnes; si « nombre » est zéro, le texte s'étend sur la largeur du tableau; s'il est négatif, il s'étend sur le nombre de colonnes du tableau moins « nombre ».
{Rnombre}Distribuer le contenu de la cellule sur « nombre » lignes. Les lignes touchées par cette distribution sur les lignes ne peuvent pas être inclure une valeur négative de distribution sur les colonnes.
{TC}Placé dans la première cellule du tableau, centrer le tableau horizontalement sur la page.

Le tableau ci-dessus a été créé par les instructions suivantes.

    {{
    {SC}Commande{>}{SC}Action{<}
    {>}{>}Passer à la cellule suivante.{<}
    {<}{>}Passer à la ligne suivante (voyez-le comme un retour à la ligne).{<}
    {SC}{>}Présenter la cellule comme une en-tête de colonne (le texte est centré dans la cellule par défaut et le style .COLONNE est appliqué). Pour changer la justification, ajoutez l'instruction de justification appropriée (voir ci-bas).{<}
    {SL}{>}Présenter la cellule comme une en-tête de ligne (le texte est justifié à gauche dans la cellule par défaut et le style .LIGNE est appliqué). Pour changer la justification, ajoutez l'instruction de justification appropriée (voir ci-bas).{<}
    {SS}{>}Présenter la cellule comme une valeur SPECIAL (voir les {JUMP:QSTRUCTABLES}tableaux de questions{/JUMP}).{<}
    {C}{>}Centrer le texte dans la cellule.{<}
    {L}{>}Justifier le texte à gauche dans la cellule.{<}
    {R}{>}Justifier le texte à droite dans la cellule.{<}
    {T}{>}Placer le texte au haut de la cellule.{<}
    {B}{>}Placer le texte au bas de la cellule.{<}
    {M}{>}Placer le texte au milieu de la cellule (verticalement).{<}
    {NW}{>}Éviter le retour à la ligne dans la cellule.{<}
    {nombre}{>}Distribuer le contenu de la cellule sur « nombre » colonnes; si « nombre » est zéro, le texte s'étend sur la largeur du tableau; s'il est négatif, il s'étend sur le nombre de colonnes du tableau moins « nombre ».{<}
    {Rnombre}{>}Distribuer le contenu de la cellule sur « nombre » lignes. Les lignes touchées par cette distribution sur les lignes ne peuvent pas être inclure une valeur négative de distribution sur les colonnes.{<}
    {TC}{>}Placé dans la première cellule du tableau, centrer le tableau horizontalement sur la page.{<}
    }}

   

Annexe F

Caractéristiques de sécurité

CallWeb inclut plusieurs couches de caractéristiques de sécurité. Elles sont présentées dans cette section.

CaractéristiqueExplication
Disponibilité directe minimale
Destruction des fichiers .scwLes fichiers de questionnaires sont directement lisibles. En conséquence, et puisqu'ils résident temporairement dans le répertoire de projet, ils représentent un risque de sécurité : celui qui aurait accès à ce fichier connaîtrait la nature du projet. Il est donc de bonne pratique d'effacer, de renommer ou de déplacer les fichiers .scw une fois qu'un projet a été compilé. Le fichier compilé (.qcw) n'est pas lisible.
Pas d'accès à MySQLEn principe, le serveur MySQL ne devrait pas servir de connexions hors du serveur lui-même. De cette façon, seuls les utilisateurs locaux de MySQL peuvent accéder aux données CallWeb.
Pas de données dans les pages HTMLCallWeb ne transmet pas de données dans le corps de ses pages HTML — seulement un numéro de dossier et une valeur codée du numéro de dossier ainsi que les réponses fournies à la page courante. Même si des pages de questionnaires étaient interceptées, aucune donnée personnelle ne serait communiquée.
Pas de répertoire de projet dans les URLsLa localisation du répertoire de projet n'est pas révélée par l'URL utilisée pour compléter le questionnaire. De cette façon, les bidouilleurs ne peuvent pas identifier le répertoire qui devrait être la cible de leurs attaques.
Contrôle d'accès
Accès au questionnaireL'accès au questionnaire peut être contrôlé par mot de passe de sorte que seuls ceux qui ont reçu un tel mot de passe peuvent répondre au questionnaire et qu'ils ne peuvent y répondre qu'une seule fois.
Mot de passe pour les utilitairesL'accès aux modules utilitaires peut être protégé par mot de passe. Trois mots de passe sont disponibles : un pour accéder au répertoire (géré par Apache), un pour lire les données et un dernier pour modifier les données.
Répertoire d'utilitairesLe répertoire maître des modules utilitaires contient habituellement tous les modules. D'autres répertoires d'utilitaires peuvent être créés et contenir un sous-ensemble des modules pour n'offrir à certaines personnes qu'un accès limité aux données. Une instruction dièse (# Visible depuis) peut préciser quels répertoires utilitaires (autres que le répertoire maître) pourront accéder aux données d'un projet. De cette façon, l'administrateur CallWeb peut contrôler l'accès aux données par fonction et par projet.
Intégrité des données
Navigation sans perte de donnéeLes participants ne peuvent pas perdre de données; qu'ils progressent dans le questionnaire, reculent en utilisant le bouton de recul de CallWeb ou celui du fureteur, qu'ils changent de langue ou qu'ils ferment simplement le fureteur, les données sont toujours sauvegardées jusqu'au moment de la dernière transmission au serveur (par l'un des boutons de CallWeb).
Modifications structurelles sans perte de donnéeN'importe quelle modification structurelle peut être apportée au questionnaire à n'importe quel moment, y compris en cours de collecte de données : ajout de questions, destruction de questions, modifications des conditions de sauts, déplacement de questions, ajout de parties ouvertes, etc. Aucune donnée ne sera perdue dans le processus (sauf, évidemment, si l'on efface une question qui contient des données).
Copies de sécurité en format délimité-tabCallWeb offre un module utilitaire qui planifie et exécute la prise de copies de sécurité dans un format délimité-tab qui peut être utilisé pour repeupler un projet dans l'éventualité d'une catastrophe. Ces copies de sécurité peuvent être prises aux heures. Elles peuvent être déposées dans le répertoire de projet ou être envoyées par courriel (une option plus sécuritaire puisqu'aucune donnée n'est laissée dans le répertoire de projet).
Chiffrement du numéro de dossierLorsqu'une page réponse HTML est envoyée au serveur, le numéro de dossier CallWeb en fait partie pour indiquer au système quel enregistrement mettre à jour. Une version chiffrée du numéro de dossier est aussi envoyée de sorte qu'un bidouilleur ne pourrait pas modifier le numéro de dossier et accéder au questionnaire de quelqu'un d'autre. Si une telle tentative était faite, le manque de cohérence entre le numéro de dossier et sa version chiffrée provoquerait une interruption de opérations de CallWeb pour ce dossier.

Annexe F

Caractéristiques de sécurité

CallWeb inclut plusieurs couches de caractéristiques de sécurité. Elles sont présentées dans cette section.

CaractéristiqueExplication
Disponibilité directe minimale
Destruction des fichiers .scwLes fichiers de questionnaires sont directement lisibles. En conséquence, et puisqu'ils résident temporairement dans le répertoire de projet, ils représentent un risque de sécurité : celui qui aurait accès à ce fichier connaîtrait la nature du projet. Il est donc de bonne pratique d'effacer, de renommer ou de déplacer les fichiers .scw une fois qu'un projet a été compilé. Le fichier compilé (.qcw) n'est pas lisible.
Pas d'accès à MySQLEn principe, le serveur MySQL ne devrait pas servir de connexions hors du serveur lui-même. De cette façon, seuls les utilisateurs locaux de MySQL peuvent accéder aux données CallWeb.
Pas de données dans les pages HTMLCallWeb ne transmet pas de données dans le corps de ses pages HTML — seulement un numéro de dossier et une valeur codée du numéro de dossier ainsi que les réponses fournies à la page courante. Même si des pages de questionnaires étaient interceptées, aucune donnée personnelle ne serait communiquée.
Pas de répertoire de projet dans les URLsLa localisation du répertoire de projet n'est pas révélée par l'URL utilisée pour compléter le questionnaire. De cette façon, les bidouilleurs ne peuvent pas identifier le répertoire qui devrait être la cible de leurs attaques.
Contrôle d'accès
Accès au questionnaireL'accès au questionnaire peut être contrôlé par mot de passe de sorte que seuls ceux qui ont reçu un tel mot de passe peuvent répondre au questionnaire et qu'ils ne peuvent y répondre qu'une seule fois.
Mot de passe pour les utilitairesL'accès aux modules utilitaires peut être protégé par mot de passe. Trois mots de passe sont disponibles : un pour accéder au répertoire (géré par Apache), un pour lire les données et un dernier pour modifier les données.
Répertoire d'utilitairesLe répertoire maître des modules utilitaires contient habituellement tous les modules. D'autres répertoires d'utilitaires peuvent être créés et contenir un sous-ensemble des modules pour n'offrir à certaines personnes qu'un accès limité aux données. Une instruction dièse (# Visible depuis) peut préciser quels répertoires utilitaires (autres que le répertoire maître) pourront accéder aux données d'un projet. De cette façon, l'administrateur CallWeb peut contrôler l'accès aux données par fonction et par projet.
Intégrité des données
Navigation sans perte de donnéeLes participants ne peuvent pas perdre de données; qu'ils progressent dans le questionnaire, reculent en utilisant le bouton de recul de CallWeb ou celui du fureteur, qu'ils changent de langue ou qu'ils ferment simplement le fureteur, les données sont toujours sauvegardées jusqu'au moment de la dernière transmission au serveur (par l'un des boutons de CallWeb).
Modifications structurelles sans perte de donnéeN'importe quelle modification structurelle peut être apportée au questionnaire à n'importe quel moment, y compris en cours de collecte de données : ajout de questions, destruction de questions, modifications des conditions de sauts, déplacement de questions, ajout de parties ouvertes, etc. Aucune donnée ne sera perdue dans le processus (sauf, évidemment, si l'on efface une question qui contient des données).
Copies de sécurité en format délimité-tabCallWeb offre un module utilitaire qui planifie et exécute la prise de copies de sécurité dans un format délimité-tab qui peut être utilisé pour repeupler un projet dans l'éventualité d'une catastrophe. Ces copies de sécurité peuvent être prises aux heures. Elles peuvent être déposées dans le répertoire de projet ou être envoyées par courriel (une option plus sécuritaire puisqu'aucune donnée n'est laissée dans le répertoire de projet).
Chiffrement du numéro de dossierLorsqu'une page réponse HTML est envoyée au serveur, le numéro de dossier CallWeb en fait partie pour indiquer au système quel enregistrement mettre à jour. Une version chiffrée du numéro de dossier est aussi envoyée de sorte qu'un bidouilleur ne pourrait pas modifier le numéro de dossier et accéder au questionnaire de quelqu'un d'autre. Si une telle tentative était faite, le manque de cohérence entre le numéro de dossier et sa version chiffrée provoquerait une interruption de opérations de CallWeb pour ce dossier.

   

Annexe G

Données contextuelles

CallWeb enregistre les données contextuelles suivantes dans la structure %contexte à laquelle on réfère comme suit dans des expressions Perl : $contexte{clef}.

Clef (sensible à la casse)Donnée
dategmtdate courante (format YYYYMMDD) selon le fuseau horaire GMT
dateheuregmtdate et heure courantes (format YYYYMMDDHHMMSS) selon le fuseau horaire GMT
dateheureqdate et heure de la dernière mise à jour du fichier de questionnaire (format YYYYMMDDHHMMSS)
dateheuretextedate et heure courantes (format texte) selon le serveur
dateheuredate et heure courantes (format YYYYMMDDHHMMSS) selon le serveur
dateqlanguedate de la dernière mise à jour du fichier de questionnaire (format lisible)
dateqdate de la dernière mise à jour du fichier de questionnaire (format YYYYMMDD)
datetextedate courante (format texte) selon le serveur
dateunixgmtdate et heure courantes en format Unix (secondes depuis le 1er janvier 1970) selon le fuseau horaire GMT
dateunixdate et heure courantes en format Unix (secondes depuis le 1er janvier 1970) selon le serveur
datedate courante (format YYYYMMDD) selon le serveur
directorynom du répertoire où CallWeb est situé
empreinteagrégat d'informations de l'environnement HTTP qui se rapproche d'une empreinte unique pour le client (https://amiunique.org/)
heuregmtheure courante (format HHMMSS) selon le fuseau horaire GMT
heureheure courante (format HHMMSS) selon le serveur
hostnom du serveur
interviewernom de l'interviewer
ipadresse IP de l'ordinateur client
javascriptest-ce que JavaScript est disponible dans ce navigateru (1 = yes); valide à partir de la deuxième page du questionnaire
jourjour de la semaine (0 = dimanche)
mobileest-ce un appareil mobile (1 = oui)
navigateurnom du navigateur
passwordmot de passe chiffré en mode Password
projetnom du projet CallWeb
questionnom d'une question qui a été affichée sur la page (disponible seulement une fois qu'une question a été ajoutée à la page)
scriptnom du script appelant (incluant le chemin relatif au serveur)
sessionnuméro unique de session produit par le serveur Web
sourcepage référante (URL de la page à partir de laquelle la page courante a été appelée)

Annexe G

Données contextuelles

CallWeb enregistre les données contextuelles suivantes dans la structure %contexte à laquelle on réfère comme suit dans des expressions Perl : $contexte{clef}.

Clef (sensible à la casse)Donnée
dategmtdate courante (format YYYYMMDD) selon le fuseau horaire GMT
dateheuregmtdate et heure courantes (format YYYYMMDDHHMMSS) selon le fuseau horaire GMT
dateheureqdate et heure de la dernière mise à jour du fichier de questionnaire (format YYYYMMDDHHMMSS)
dateheuretextedate et heure courantes (format texte) selon le serveur
dateheuredate et heure courantes (format YYYYMMDDHHMMSS) selon le serveur
dateqlanguedate de la dernière mise à jour du fichier de questionnaire (format lisible)
dateqdate de la dernière mise à jour du fichier de questionnaire (format YYYYMMDD)
datetextedate courante (format texte) selon le serveur
dateunixgmtdate et heure courantes en format Unix (secondes depuis le 1er janvier 1970) selon le fuseau horaire GMT
dateunixdate et heure courantes en format Unix (secondes depuis le 1er janvier 1970) selon le serveur
datedate courante (format YYYYMMDD) selon le serveur
directorynom du répertoire où CallWeb est situé
empreinteagrégat d'informations de l'environnement HTTP qui se rapproche d'une empreinte unique pour le client (https://amiunique.org/)
heuregmtheure courante (format HHMMSS) selon le fuseau horaire GMT
heureheure courante (format HHMMSS) selon le serveur
hostnom du serveur
interviewernom de l'interviewer
ipadresse IP de l'ordinateur client
javascriptest-ce que JavaScript est disponible dans ce navigateru (1 = yes); valide à partir de la deuxième page du questionnaire
jourjour de la semaine (0 = dimanche)
mobileest-ce un appareil mobile (1 = oui)
navigateurnom du navigateur
passwordmot de passe chiffré en mode Password
projetnom du projet CallWeb
questionnom d'une question qui a été affichée sur la page (disponible seulement une fois qu'une question a été ajoutée à la page)
scriptnom du script appelant (incluant le chemin relatif au serveur)
sessionnuméro unique de session produit par le serveur Web
sourcepage référante (URL de la page à partir de laquelle la page courante a été appelée)

   

Annexe H

Instruction dièse TEST

L'instruction dièse TEST définit un test logique qui produit un message d'erreur. Cette instruction générale s'ajoute aux tests automatiques de CallWeb comme le test sur les nombres minimum et maximum de réponses, les tests de cohérence de la sélection des réponses, les tests MUST, les conditions de tableaux, etc.

Syntaxe :

    # Test ID = [SUR]sur [CONDITION]condition [MESSAGE]message [TYPE]type
    ou
    # Test ID = [TRIGGER]trigger [CONDITION]condition [MESSAGE]message [TYPE]type

ComposanteDescription
IDest toute chaîne alphanumérique identifiant le test. Cet identifiant est utilisé entre des bornes <TEST> si le test est de type « tag » (voir ci-bas).
surest le nom de la question qui déclenche le test. Le test est déclenché quand une réponse à cette question se trouve dans la page envoyée à CallWeb. La question choisie devrait toujours apparaître sur la page et exiger une réponse pour s'assurer que le test ait lieu.
conditionest une condition logique décrivant une erreur. Cette condition peut être exprimée en format xbase (auquel cas l'expression est validée lors de la compilation) ou en syntaxe Perl si elle est entre accolades.
messageest le message à insérer si la condition est vraie (c'est-à-dire, s'il y a une erreur). Des versions linguistiques différentes peuvent être insérées en utilisant des codes ISO de langues entre crochets : [xx]. Le message peut utiliser une valeur rappelée.
typeprécise le type de message d'erreur et sa localisation sur la page CallWeb :
  • [TYPE]QUESTION place le message là où un message système serait placé si la question « sur » était fautive (au-dessus, hors d'un tableau; à droite, dans un tableau)
  • [TYPE]TABLEAU or [TYPE]TABLE place le message avant le tableau auquel appartient la question « sur »
  • [TYPE]TAG place le message là où se trouve le marqueur <TEST>ID</TEST> dans la page (il doit n'y avoir aucun espace entre le début et la fin de cette chaîne TEST); ce marqueur peut se trouver n'importe où, comme dans une étiquette de catégorie de réponse (qui s'afficherait au haut d'une colonne dans un tableau) ou dans le champ de NOTE (qui apparaîtrait à gauche dans un tableau)

Une question donnée peut déclencher plusieurs tests.

Exemples :

    # Test ABC =
    #> [SUR]AQ1
    #> [CONDITION](AQ1+AQ2+AQ3).NE.100
    #> [MESSAGE][EN]Please make these total 100[FR]Veuillez vous assurer que ces valeurs totalisent 100
    #> [TYPE]table

Cette instruction affiche un message d'erreur au-dessus du tableau auquel appartient AQ1 si les trois réponses ne totalisent pas 100..

    # Test DEF =
    #> [SUR]Q10
    #> [CONDITION]Q5.AND.Q6.AND.Q7.AND.(.NOT.Q8.AND.NOT.Q9)
    #> [MESSAGE][EN]Please answer Q8 or Q9 since you have answered Q5, Q6 and Q7[FR]Veuillez répondre à Q8 ou Q9 puisque vous avez répondu à Q5, Q6 et Q7
    #> [TYPE]question

Cette instruction affiche un message d'erreur au-dessus de Q10 si Q5, Q6 et Q7 ont reçu une réponse alors que Q8 et Q9 n'en ont pas reçu. Notez que les questions Q5 à Q9 n'ont pas à apparaître sur la même page CallWeb que Q10..

Annexe H

Instruction dièse TEST

L'instruction dièse TEST définit un test logique qui produit un message d'erreur. Cette instruction générale s'ajoute aux tests automatiques de CallWeb comme le test sur les nombres minimum et maximum de réponses, les tests de cohérence de la sélection des réponses, les tests MUST, les conditions de tableaux, etc.

Syntaxe :

    # Test ID = [SUR]sur [CONDITION]condition [MESSAGE]message [TYPE]type
    ou
    # Test ID = [TRIGGER]trigger [CONDITION]condition [MESSAGE]message [TYPE]type

ComposanteDescription
IDest toute chaîne alphanumérique identifiant le test. Cet identifiant est utilisé entre des bornes <TEST> si le test est de type « tag » (voir ci-bas).
surest le nom de la question qui déclenche le test. Le test est déclenché quand une réponse à cette question se trouve dans la page envoyée à CallWeb. La question choisie devrait toujours apparaître sur la page et exiger une réponse pour s'assurer que le test ait lieu.
conditionest une condition logique décrivant une erreur. Cette condition peut être exprimée en format xbase (auquel cas l'expression est validée lors de la compilation) ou en syntaxe Perl si elle est entre accolades.
messageest le message à insérer si la condition est vraie (c'est-à-dire, s'il y a une erreur). Des versions linguistiques différentes peuvent être insérées en utilisant des codes ISO de langues entre crochets : [xx]. Le message peut utiliser une valeur rappelée.
typeprécise le type de message d'erreur et sa localisation sur la page CallWeb :
  • [TYPE]QUESTION place le message là où un message système serait placé si la question « sur » était fautive (au-dessus, hors d'un tableau; à droite, dans un tableau)
  • [TYPE]TABLEAU or [TYPE]TABLE place le message avant le tableau auquel appartient la question « sur »
  • [TYPE]TAG place le message là où se trouve le marqueur <TEST>ID</TEST> dans la page (il doit n'y avoir aucun espace entre le début et la fin de cette chaîne TEST); ce marqueur peut se trouver n'importe où, comme dans une étiquette de catégorie de réponse (qui s'afficherait au haut d'une colonne dans un tableau) ou dans le champ de NOTE (qui apparaîtrait à gauche dans un tableau)

Une question donnée peut déclencher plusieurs tests.

Exemples :

    # Test ABC =
    #> [SUR]AQ1
    #> [CONDITION](AQ1+AQ2+AQ3).NE.100
    #> [MESSAGE][EN]Please make these total 100[FR]Veuillez vous assurer que ces valeurs totalisent 100
    #> [TYPE]table

Cette instruction affiche un message d'erreur au-dessus du tableau auquel appartient AQ1 si les trois réponses ne totalisent pas 100..

    # Test DEF =
    #> [SUR]Q10
    #> [CONDITION]Q5.AND.Q6.AND.Q7.AND.(.NOT.Q8.AND.NOT.Q9)
    #> [MESSAGE][EN]Please answer Q8 or Q9 since you have answered Q5, Q6 and Q7[FR]Veuillez répondre à Q8 ou Q9 puisque vous avez répondu à Q5, Q6 et Q7
    #> [TYPE]question

Cette instruction affiche un message d'erreur au-dessus de Q10 si Q5, Q6 et Q7 ont reçu une réponse alors que Q8 et Q9 n'en ont pas reçu. Notez que les questions Q5 à Q9 n'ont pas à apparaître sur la même page CallWeb que Q10..

   

Annexe I

Messages du système

L'instruction dièse « Message du systeme » redéfinit un message du système pour un questionnaire en particulier.

Syntaxe :

    # Message du systeme ID = [FR]message en français[EN]message en anglais...

Au moment d'écrire ces lignes, il y avait 43 messages du système, disponibles en cinq langues : français, anglais, espagnol, allemand et portugais. Une autre langue pourrait être ajoutée en redéfinissant chacun des messages du système et en utilisant le code ISO de langue approprié entre crochets. Le tableau qui suit fait la liste des versions française et anglaise des messages et leur associe le numéro de message utilisé par « # System message ».

Quelques messages incluent de l'information comme les nombres minimum et maximum de réponses, ou les valeurs minimale et maximale permises, ou une marque de pluriel. Ces éléments sont indiqués dans les messages en utilisant un numéro de rang entre crochets. Assurez-vous de ne pas les oublier dans vos versions des messages et de les placer au bon endroit pour la langue choisie. Utilisez les versions française et anglaise qui suivent comme gabarit pour le placement de ces marqueurs de remplacement.

IDAnglaisFrançais
1 and et
2<BIG>The questionnaire number (#[0]) was corrupted during the transmission of the page.<P>Please go back one page with the browser arrows and resume the questionnaire.</BIG><BR><BIG>Le numéro de questionnaire (#[0]) a subi une corruption lors de la transmission de la page.<P>Veuillez revenir en arrière d'une page avec les flèches du navigateur et reprendre le questionnaire.</BIG><BR>
3This questionnaire is already completed. Thank you for your cooperation.Ce questionnaire est déjà complété. Merci de votre collaboration.
4Only whole numbers are accepted here. Please do not use decimals or commas.Seuls les nombres entiers sont acceptés ici. Veuillez ne pas utiliser de points ou virgules décimaux.
5Please choose a value between [0] and [1].Veuillez choisir une valeur entre [0] et [1].
6The information supplied does not resemble an e-mail address.L'information fournie ne ressemble pas à une adresse de courriel.
7The information supplied does not resemble a Web address.L'information fournie ne ressemble pas à une adresse de site Web.
8The information supplied does not resemble an IP address (e.g., 192.168.1.1).L'information fournie ne ressemble pas à une adresse IP (p.ex., 192.168.1.1).
9The information supplied does not resemble a telephone number.L'information fournie ne ressemble pas à un numéro de téléphone.
10The information supplied does not resemble a Canadian postal code.L'information fournie ne ressemble pas à un code postal canadien.
11The information supplied does not resemble the first three characters of a Canadian postal code.L'information fournie ne ressemble pas aux trois premiers caractères d'un code postal canadien.
12The information supplied does not resemble the expected pattern.L'information fournie ne ressemble pas au patron attendu.
13The information supplied does not appear to be a valid date. Please use the YYYYMMDD format (as in [0]).L'information fournie ne semble pas être une date valide. Veuillez utiliser le format AAAAMMJJ (comme [0]).
14Please choose a value between [0] and [1].Veuillez choisir une valeur entre [0] et [1].
15The information supplied does not appear to be a valid time. Please use the HHMM format.L'information fournie ne semble pas être une heure valide. Veuillez utiliser le format HHMM.
16Sorry. The following table demands that you select at least [0] and at most [1] different and consecutive responses.Désolé. Le tableau suivant exige que vous sélectionniez au moins [0] et au plus [1] réponses différentes et consécutives.
17Sorry. The following table demands that you select at least [0] and at most [1] different responses.Désolé. Le tableau suivant exige que vous sélectionniez au moins [0] et au plus [1] réponses différentes.
18Please provide [0] answer[1] to this question.Veuillez fournir [0] réponse[1] à cette question.
19Please provide at least [0] and at most [1] answer[2] to this question.Veuillez fournir au moins [0] et au plus [1] réponse[2] à cette question.
20Sorry. The response "[0]" cannot be chosen at the same time as another response.Désolé. La réponse « [0] » ne peut pas être choisie en même temps qu'une autre réponse.
21Please complete the answer that you have selected.Veuillez compléter la réponse que vous avez choisie.
22Please click the selection that corresponds to your answer or erase the text supplied.Veuillez cliquer sur la sélection qui correspond à votre réponse ou effacer le texte fourni.
23Please enter a value.Veuillez fournir une valeur.
24Please provide a response to this question.Veuillez fournir une réponse à cette question.
25Please provide [0] answer[1] to this question.Veuillez fournir [0] réponse[1] à cette question.
26Please provide at least [0] and at most [1] answer[2] to this question.Veuillez fournir au moins [0] et au plus [1] réponse[2] à cette question.
27Please complete your answer.Veuillez compléter votre réponse.
28Sorry. Access to this questionnaire was denied.Désolé. L'accès à ce questionnaire a été refusé.
29There is no open end part to display.Il n'y a aucune partie ouverte à afficher.
30This choice has already been selected. Please make another selection..Ce choix a déjà été sélectionné. Veuillez faire une autre sélection.
31Please confirm the value [0] which was entered; it is outside of expected limits.Veuillez confirmer la valeur [0] qui a été saisie; elle dépasse les limites prévues.
32You cannot access this questionnaire more than once.Vous ne pouvez pas accéder à ce questionnaire plus d'une fois.
33Please limit your answer to [0] characters (currently [1]).Veuillez limiter votre réponse à [0] caractères (présentement [1]).
34<img src="$_ressourcesdir/erreur_page.gif" align="absmiddle" alt="!" title="!" style="border-style: none" />&nbsp;The system is presently busy. Please try again in a few seconds.<img src="$_ressourcesdir/erreur_page.gif" align="absmiddle" alt="!" title="!" style="border-style: none" />&nbsp;Le système est présentement occupé. Veuillez essayer à nouveau dans quelques secondes.
35The uploaded file is too large (limit of [0] bytes).Le fichier téléchargé est trop gros (limite de [0] octets).
36The uploaded file is too small (limit of [0] bytes).Le fichier téléchargé est trop petit (limite de [0] octets).
37Uploading a file of this type is not allowed.Le téléversement de ce type de fichier n'est pas permis.
38The system was unable to save this file.Le système n'a pas pu sauvegarder ce fichier.
39You must supply the same new password twice.Vous devez saisir deux fois le même nouveau mot de passe.
40You must supply a new password twice in the boxes below.Vous devez saisir un nouveau mot de passe deux fois dans les boîtes ci-bas.
41This message will not be displayed again for this question.Ce message ne sera pas affiché de nouveau pour cette question.
42This value includes non-numeric characters.Cette valeur inclut des caractères non numériques.
43A table containing the response options of a question.Un tableau contenant les options de réponses d'une question.
99This page was not accepted. Number of errors: [0].Cette page n'a pas été acceptée. Nombre d'erreur : [0].

Annexe I

Messages du système

L'instruction dièse « Message du systeme » redéfinit un message du système pour un questionnaire en particulier.

Syntaxe :

    # Message du systeme ID = [FR]message en français[EN]message en anglais...

Au moment d'écrire ces lignes, il y avait 43 messages du système, disponibles en cinq langues : français, anglais, espagnol, allemand et portugais. Une autre langue pourrait être ajoutée en redéfinissant chacun des messages du système et en utilisant le code ISO de langue approprié entre crochets. Le tableau qui suit fait la liste des versions française et anglaise des messages et leur associe le numéro de message utilisé par « # System message ».

Quelques messages incluent de l'information comme les nombres minimum et maximum de réponses, ou les valeurs minimale et maximale permises, ou une marque de pluriel. Ces éléments sont indiqués dans les messages en utilisant un numéro de rang entre crochets. Assurez-vous de ne pas les oublier dans vos versions des messages et de les placer au bon endroit pour la langue choisie. Utilisez les versions française et anglaise qui suivent comme gabarit pour le placement de ces marqueurs de remplacement.

IDAnglaisFrançais
1 and et
2<BIG>The questionnaire number (#[0]) was corrupted during the transmission of the page.<P>Please go back one page with the browser arrows and resume the questionnaire.</BIG><BR><BIG>Le numéro de questionnaire (#[0]) a subi une corruption lors de la transmission de la page.<P>Veuillez revenir en arrière d'une page avec les flèches du navigateur et reprendre le questionnaire.</BIG><BR>
3This questionnaire is already completed. Thank you for your cooperation.Ce questionnaire est déjà complété. Merci de votre collaboration.
4Only whole numbers are accepted here. Please do not use decimals or commas.Seuls les nombres entiers sont acceptés ici. Veuillez ne pas utiliser de points ou virgules décimaux.
5Please choose a value between [0] and [1].Veuillez choisir une valeur entre [0] et [1].
6The information supplied does not resemble an e-mail address.L'information fournie ne ressemble pas à une adresse de courriel.
7The information supplied does not resemble a Web address.L'information fournie ne ressemble pas à une adresse de site Web.
8The information supplied does not resemble an IP address (e.g., 192.168.1.1).L'information fournie ne ressemble pas à une adresse IP (p.ex., 192.168.1.1).
9The information supplied does not resemble a telephone number.L'information fournie ne ressemble pas à un numéro de téléphone.
10The information supplied does not resemble a Canadian postal code.L'information fournie ne ressemble pas à un code postal canadien.
11The information supplied does not resemble the first three characters of a Canadian postal code.L'information fournie ne ressemble pas aux trois premiers caractères d'un code postal canadien.
12The information supplied does not resemble the expected pattern.L'information fournie ne ressemble pas au patron attendu.
13The information supplied does not appear to be a valid date. Please use the YYYYMMDD format (as in [0]).L'information fournie ne semble pas être une date valide. Veuillez utiliser le format AAAAMMJJ (comme [0]).
14Please choose a value between [0] and [1].Veuillez choisir une valeur entre [0] et [1].
15The information supplied does not appear to be a valid time. Please use the HHMM format.L'information fournie ne semble pas être une heure valide. Veuillez utiliser le format HHMM.
16Sorry. The following table demands that you select at least [0] and at most [1] different and consecutive responses.Désolé. Le tableau suivant exige que vous sélectionniez au moins [0] et au plus [1] réponses différentes et consécutives.
17Sorry. The following table demands that you select at least [0] and at most [1] different responses.Désolé. Le tableau suivant exige que vous sélectionniez au moins [0] et au plus [1] réponses différentes.
18Please provide [0] answer[1] to this question.Veuillez fournir [0] réponse[1] à cette question.
19Please provide at least [0] and at most [1] answer[2] to this question.Veuillez fournir au moins [0] et au plus [1] réponse[2] à cette question.
20Sorry. The response "[0]" cannot be chosen at the same time as another response.Désolé. La réponse « [0] » ne peut pas être choisie en même temps qu'une autre réponse.
21Please complete the answer that you have selected.Veuillez compléter la réponse que vous avez choisie.
22Please click the selection that corresponds to your answer or erase the text supplied.Veuillez cliquer sur la sélection qui correspond à votre réponse ou effacer le texte fourni.
23Please enter a value.Veuillez fournir une valeur.
24Please provide a response to this question.Veuillez fournir une réponse à cette question.
25Please provide [0] answer[1] to this question.Veuillez fournir [0] réponse[1] à cette question.
26Please provide at least [0] and at most [1] answer[2] to this question.Veuillez fournir au moins [0] et au plus [1] réponse[2] à cette question.
27Please complete your answer.Veuillez compléter votre réponse.
28Sorry. Access to this questionnaire was denied.Désolé. L'accès à ce questionnaire a été refusé.
29There is no open end part to display.Il n'y a aucune partie ouverte à afficher.
30This choice has already been selected. Please make another selection..Ce choix a déjà été sélectionné. Veuillez faire une autre sélection.
31Please confirm the value [0] which was entered; it is outside of expected limits.Veuillez confirmer la valeur [0] qui a été saisie; elle dépasse les limites prévues.
32You cannot access this questionnaire more than once.Vous ne pouvez pas accéder à ce questionnaire plus d'une fois.
33Please limit your answer to [0] characters (currently [1]).Veuillez limiter votre réponse à [0] caractères (présentement [1]).
34<img src="$_ressourcesdir/erreur_page.gif" align="absmiddle" alt="!" title="!" style="border-style: none" />&nbsp;The system is presently busy. Please try again in a few seconds.<img src="$_ressourcesdir/erreur_page.gif" align="absmiddle" alt="!" title="!" style="border-style: none" />&nbsp;Le système est présentement occupé. Veuillez essayer à nouveau dans quelques secondes.
35The uploaded file is too large (limit of [0] bytes).Le fichier téléchargé est trop gros (limite de [0] octets).
36The uploaded file is too small (limit of [0] bytes).Le fichier téléchargé est trop petit (limite de [0] octets).
37Uploading a file of this type is not allowed.Le téléversement de ce type de fichier n'est pas permis.
38The system was unable to save this file.Le système n'a pas pu sauvegarder ce fichier.
39You must supply the same new password twice.Vous devez saisir deux fois le même nouveau mot de passe.
40You must supply a new password twice in the boxes below.Vous devez saisir un nouveau mot de passe deux fois dans les boîtes ci-bas.
41This message will not be displayed again for this question.Ce message ne sera pas affiché de nouveau pour cette question.
42This value includes non-numeric characters.Cette valeur inclut des caractères non numériques.
43A table containing the response options of a question.Un tableau contenant les options de réponses d'une question.
99This page was not accepted. Number of errors: [0].Cette page n'a pas été acceptée. Nombre d'erreur : [0].

   

Annexe J

Variables systèmes

Dans les modules utilitaires comme cwfreq et cwnav, toutes les listes de variables, de questions et de champs commencent par une série de noms débutant par un trait souligné (comme _telkey et _date); ce sont les variables systèmes disponibles dans tous les projets CallWeb. La signification de ces variables systèmes est expliquée dans le tableau suivant.

Variable systèmeSignification
_telkeyIdentificateur unique du dossier; c'est le « numéro » de dossier. Il peut contenir jusqu'à 64 lettres ou chiffres.
_projNom du projet auquel le dossier est associé.
_demoIndicateur binaire (0|1) indiquant si le cas a été ouvert en mode démonstration ou non. Obsolète.
_langLangue dans laquelle la plus récente page affichée a été composée. C'est un code de deux lettres.
_typeintType d'entrevue. Voir l'instruction dièse Type enquete.
_cetordreListe des questions dans le questionnaire, dans l'ordre pour ce dossier (sur la base des PERMUTATIONs). Cette liste est créée au premier accès au dossier. Elle est effacée si le questionnaire est recompilé avec changement structurel.
_cedossierValeur chiffrée du _telkey. Elle assure que le _telkey trouvé dans la page HTML n'a pas été modifié.
_cetecranNom de la dernière question affichée. Pour les pages comportant plusieurs questions, c'est le nom de la première question dans la page.
_h1Chaîne de valeurs date-heure documentant chaque ouverture initiale du questionnaire dans le module callweb. Les variables systèmes _date et _heure sont dérivées de _h1.
_h2Chaîne documentant la durée cumulative de chaque session dans le module callweb. Elle est exprimée en secondes. Les variables systèmes _secondes et _minutes sont dérivée de _h2.
_h3Chaîne de valeurs date-heure documentant chaque modification du dossier dans cwnav.
_prepopsChaîne de valeurs date-heure documentant chaque action de prépopulation dans le dossier. La variable système _dernierprepop est dérivée de _prepops.
_verrouValeur date-heure indiquant quand un verrou a été posé sur le dossier. Elle travaille en tandem avec l'instruction dièse Secondes de verrou.
_telephoneNuméro de téléphone prépeuplé, pour les fins de CATI.
_gmtoffsetFuseau horaire du numéro de téléphone, exprimé en heures de différence avec Greenwich.
_cetappelStructure de données documentant l'historique d'appels en mode CATI.
_stockStructure de données contenant une série d'informations sur le dossier, tel l'ordre de permutation des catégories de réponse.
_bin Variable contrôlée par l'usager. Ce champ peut contenir toute information fournie dans une option d'URL ou à partir d'un CALCUL.
_dernierprepop _lastprepopDate-heure de la prépopulation la plus récente. Voir _prepops.
_dateDate du plus récent accès au dossier. Voir _h1.
_week _semaineDate du plus récent accès au dossier exprimé en date de semaine. Voir _date et l'instruction d'installation week_start.
_heure _hourHeure du plus récent accès au dossier. Voir _h1.
_minutesDurée totale, en minutes, de tous les accès au dossier. Voir _h2.
_secondes _secondsDurée totale, en secondes, de tous les accès au dossier. Voir _h2.
_nappels _ncallsNombre d'appels documentés dans l'historique d'appel en mode CATI. Voir _cetappel.
_resCode de résultat du plus récent appel en mode CATI. Voir _cetappel.
_dateappel _calldateDate du plus récent appel en mode CATI. Voir _cetappel.
_heureappel _callhourHeure du plus récent appel en mode CATI. Voir _cetappel.
_tempsappel _calltimeDate-heure du plus récent appel en mode CATI (format YYYYMMDDHHMMSS). Voir _cetappel.
_interviewerNom de l'interviewer qui a enregistré le plus récent résultat d'appel en mode CATI. Voir _cetappel.
_daterv _appdateDate du rendez-vous pris lors du plus récent appel en mode CATI. Voir _cetappel.
_heurerv _apphourHeure du rendez-vous pris lors du plus récent appel en mode CATI. Voir _cetappel.
_commentaires _commentsCommentaires laissés par l'interviewer lors du plus récent appel en mode CATI. Voir _cetappel.

Annexe J

Variables systèmes

Dans les modules utilitaires comme cwfreq et cwnav, toutes les listes de variables, de questions et de champs commencent par une série de noms débutant par un trait souligné (comme _telkey et _date); ce sont les variables systèmes disponibles dans tous les projets CallWeb. La signification de ces variables systèmes est expliquée dans le tableau suivant.

Variable systèmeSignification
_telkeyIdentificateur unique du dossier; c'est le « numéro » de dossier. Il peut contenir jusqu'à 64 lettres ou chiffres.
_projNom du projet auquel le dossier est associé.
_demoIndicateur binaire (0|1) indiquant si le cas a été ouvert en mode démonstration ou non. Obsolète.
_langLangue dans laquelle la plus récente page affichée a été composée. C'est un code de deux lettres.
_typeintType d'entrevue. Voir l'instruction dièse Type enquete.
_cetordreListe des questions dans le questionnaire, dans l'ordre pour ce dossier (sur la base des PERMUTATIONs). Cette liste est créée au premier accès au dossier. Elle est effacée si le questionnaire est recompilé avec changement structurel.
_cedossierValeur chiffrée du _telkey. Elle assure que le _telkey trouvé dans la page HTML n'a pas été modifié.
_cetecranNom de la dernière question affichée. Pour les pages comportant plusieurs questions, c'est le nom de la première question dans la page.
_h1Chaîne de valeurs date-heure documentant chaque ouverture initiale du questionnaire dans le module callweb. Les variables systèmes _date et _heure sont dérivées de _h1.
_h2Chaîne documentant la durée cumulative de chaque session dans le module callweb. Elle est exprimée en secondes. Les variables systèmes _secondes et _minutes sont dérivée de _h2.
_h3Chaîne de valeurs date-heure documentant chaque modification du dossier dans cwnav.
_prepopsChaîne de valeurs date-heure documentant chaque action de prépopulation dans le dossier. La variable système _dernierprepop est dérivée de _prepops.
_verrouValeur date-heure indiquant quand un verrou a été posé sur le dossier. Elle travaille en tandem avec l'instruction dièse Secondes de verrou.
_telephoneNuméro de téléphone prépeuplé, pour les fins de CATI.
_gmtoffsetFuseau horaire du numéro de téléphone, exprimé en heures de différence avec Greenwich.
_cetappelStructure de données documentant l'historique d'appels en mode CATI.
_stockStructure de données contenant une série d'informations sur le dossier, tel l'ordre de permutation des catégories de réponse.
_bin Variable contrôlée par l'usager. Ce champ peut contenir toute information fournie dans une option d'URL ou à partir d'un CALCUL.
_dernierprepop _lastprepopDate-heure de la prépopulation la plus récente. Voir _prepops.
_dateDate du plus récent accès au dossier. Voir _h1.
_week _semaineDate du plus récent accès au dossier exprimé en date de semaine. Voir _date et l'instruction d'installation week_start.
_heure _hourHeure du plus récent accès au dossier. Voir _h1.
_minutesDurée totale, en minutes, de tous les accès au dossier. Voir _h2.
_secondes _secondsDurée totale, en secondes, de tous les accès au dossier. Voir _h2.
_nappels _ncallsNombre d'appels documentés dans l'historique d'appel en mode CATI. Voir _cetappel.
_resCode de résultat du plus récent appel en mode CATI. Voir _cetappel.
_dateappel _calldateDate du plus récent appel en mode CATI. Voir _cetappel.
_heureappel _callhourHeure du plus récent appel en mode CATI. Voir _cetappel.
_tempsappel _calltimeDate-heure du plus récent appel en mode CATI (format YYYYMMDDHHMMSS). Voir _cetappel.
_interviewerNom de l'interviewer qui a enregistré le plus récent résultat d'appel en mode CATI. Voir _cetappel.
_daterv _appdateDate du rendez-vous pris lors du plus récent appel en mode CATI. Voir _cetappel.
_heurerv _apphourHeure du rendez-vous pris lors du plus récent appel en mode CATI. Voir _cetappel.
_commentaires _commentsCommentaires laissés par l'interviewer lors du plus récent appel en mode CATI. Voir _cetappel.

   

Annexe K

Pondération (obsolète)

Une question WEIGHT calcule une pondération sur la base de la distribution marginale connue de quelque variable; elle utilise un algorithme de pondération marginale (rim weighting) proposé initialement par Deming et Stephan (W. Edwards Deming et Frederick F. Stephan, « On a Least Squares Adjustment of a Sampled Frequency Table When the Expected Marginal Totals are Known », The Annals of Mathematical Statistics, volume 11, no 4, décembre 1940, pp. 427-444). Cette pondération est enregistrée dans la partie ouverte de la variable WEIGHT. Elle peut être extraite ou utilisée dans le module cwfreq pour créer des tableaux de fréquences pondérées.

Les instructions de pondération sont placées dans le segment du texte de la question. Chaque question de pondération y est indiquée, suivie du poids pour chaque catégorie de la réponse séparées par des barres obliques et ordonnées selon l'ordre numérique des catégories. Les questions sont séparées par des virgules. Voici une exemple de cette syntaxe :

QWEIGHT WEIGHT
%
QSEXE=0.5/0.5/0
QLANGUE = 0.80 / 0.08 / 0.12 / 0 / 0

Le calcul des pondérations s'appuie sur les options (cwnav) suivantes :

  • le calcul peut être « prudent » ce qui signifie que tous les dossiers comportant des valeurs manquantes (c'est-à-dire une catégorie « Ne sait pas » dont le poids est fixé à zéro) sur l'une ou l'autre des variables de pondération reçoivent un poids de 1; il peut aussi utiliser un « maximum d'information » ce qui signifie que les dossiers comportant des valeurs manquantes partielles se voient attribuer un poids en fonction de l'information disponible;
  • le nombre d'itérations de calculs peut être déterminé par l'usager (par défaut, 10). Au terme des calculs, la valeur efficace (root mean square) de la différence entre les cibles de pondération et les fréquences pondérées sont affichées pour chaque itération. Idéalement, cette valeur devrait s'approcher de 0.01 pour que la pondération soit efficace;
  • le calcul peut être limité à un sous-ensemble des dossiers en utilisant les outils de sélection de dossiers disponibles dans tous les programmes utilitaires.

Les règles suivantes sont utilisées :

  • les variables WEIGHT doivent posséder une partie ouverte;
  • toutes les questions utilisées dans la définition de la pondération doivent exister;
  • toutes les poids marginaux pour une question doivent totaliser 1;
  • tous les poids doivent utiliser un point décimal et non une virgule décimale;
  • il doit y avoir un poids pour chaque valeur existante de la variable; certains poids peuvent être fixés à zéro (p.ex., la catégorie « Ne sait pas »).

Les poids sont calculés dans le module cwnav en sélectionnant une variable WEIGHT dans la liste déroulante affichée après que le mot de passe en écriture ait été saisi.

Les poids sont utilisés dans le module cwfreq en sélectionnant une question dans la liste des variables WEIGHT qui y est offerte.

Annexe K

Pondération (obsolète)

Une question WEIGHT calcule une pondération sur la base de la distribution marginale connue de quelque variable; elle utilise un algorithme de pondération marginale (rim weighting) proposé initialement par Deming et Stephan (W. Edwards Deming et Frederick F. Stephan, « On a Least Squares Adjustment of a Sampled Frequency Table When the Expected Marginal Totals are Known », The Annals of Mathematical Statistics, volume 11, no 4, décembre 1940, pp. 427-444). Cette pondération est enregistrée dans la partie ouverte de la variable WEIGHT. Elle peut être extraite ou utilisée dans le module cwfreq pour créer des tableaux de fréquences pondérées.

Les instructions de pondération sont placées dans le segment du texte de la question. Chaque question de pondération y est indiquée, suivie du poids pour chaque catégorie de la réponse séparées par des barres obliques et ordonnées selon l'ordre numérique des catégories. Les questions sont séparées par des virgules. Voici une exemple de cette syntaxe :

QWEIGHT WEIGHT
%
QSEXE=0.5/0.5/0
QLANGUE = 0.80 / 0.08 / 0.12 / 0 / 0

Le calcul des pondérations s'appuie sur les options (cwnav) suivantes :

  • le calcul peut être « prudent » ce qui signifie que tous les dossiers comportant des valeurs manquantes (c'est-à-dire une catégorie « Ne sait pas » dont le poids est fixé à zéro) sur l'une ou l'autre des variables de pondération reçoivent un poids de 1; il peut aussi utiliser un « maximum d'information » ce qui signifie que les dossiers comportant des valeurs manquantes partielles se voient attribuer un poids en fonction de l'information disponible;
  • le nombre d'itérations de calculs peut être déterminé par l'usager (par défaut, 10). Au terme des calculs, la valeur efficace (root mean square) de la différence entre les cibles de pondération et les fréquences pondérées sont affichées pour chaque itération. Idéalement, cette valeur devrait s'approcher de 0.01 pour que la pondération soit efficace;
  • le calcul peut être limité à un sous-ensemble des dossiers en utilisant les outils de sélection de dossiers disponibles dans tous les programmes utilitaires.

Les règles suivantes sont utilisées :

  • les variables WEIGHT doivent posséder une partie ouverte;
  • toutes les questions utilisées dans la définition de la pondération doivent exister;
  • toutes les poids marginaux pour une question doivent totaliser 1;
  • tous les poids doivent utiliser un point décimal et non une virgule décimale;
  • il doit y avoir un poids pour chaque valeur existante de la variable; certains poids peuvent être fixés à zéro (p.ex., la catégorie « Ne sait pas »).

Les poids sont calculés dans le module cwnav en sélectionnant une variable WEIGHT dans la liste déroulante affichée après que le mot de passe en écriture ait été saisi.

Les poids sont utilisés dans le module cwfreq en sélectionnant une question dans la liste des variables WEIGHT qui y est offerte.

   

Annexe L

Commandes HTML de base

TypeCommandeRésultat
Paragraphe<p>Blabla</p>Blabla
Paragraphe avec un style<p class="ERREUR">Blabla</p>Blabla
Tout texte avec un style<span class="ERREUR">Blabla</span>Blabla
Saut de ligneLigne1<br />Ligne2Ligne1
Ligne2
Hyperlien<a href="http://callweb.ca">text</a>text
Hyperlien dans une nouvelle fenêtre ou nouvel onglet<a href="http://callweb.ca" target="_blank">text</a>text
Liste à puces<ul><li>première puce</li><li>deuxième puce</li></ul>
  • première puce
  • deuxième puce
Liste numérotée<ol><li>première puce</li><li>deuxième puce</li></ol>
  1. première puce
  2. deuxième puce
Ligne horizontale<hr />
Insertion d'image<img src="../images/list-arrow.gif" />
Abbréviation<abbr title="Quel produitCAWI/CATI/CAPI!">CallWeb</abbr>CallWeb

Couleurs HTML

En HTML, les couleurs sont définies par des codes RGB (rouge, vert (green), bleu). Les codes RGB sont composés de trois paires de caractères hexadécimaux (de 0 à F), suivies d'un dièse (sans lien avec les instructions dièses de CallWeb). Chaque paire de caractères hexadécimaux indique la quantité de chaque couleur de base (rouge, vert, bleu) dans une combinaison de couleurs particulière. Par exemple, #FFFFFF est blanc parce que ce code inclut un maximum de chacune des trois couleurs de base.; #000000 est noir parce qu'il n'y a aucune des trois couleurs de base.

Il y a beaucoup d'outils utiles en ligne pour aider dans la sélection des couleurs. ColorPicker, Febooti on-line colour chart et Doughnut Color Picker retournent des codes pour des millions de couleurs en utilisant une interface familière. D'autres outils comme ColorScheme Designer, Color Palette Creator et kuler aident à la création d'ensembles de couleurs. Finalement, pixie (un exécutable Windows) et Colorzilla (une extension Firefox) identifient la couleur vers laquelle la souris pointe à l'écran.

Codes HTML de base

Bloc 1Bloc 2Bloc 3
CaractèreCode numériqueÉquivalent HTMLCaractèreCode numériqueÉquivalent HTMLCaractèreCode numériqueÉquivalent HTML
&#32; g&#103; Ï&#207;&Iuml;
!&#33; h&#104; Ð&#208;&ETH;
"&#34;&quot;i&#105; Ñ&#209;&Ntilde;
#&#35; j&#106; Ò&#210;&Ograve;
$&#36; k&#107; Ó&#211;&Oacute;
%&#37; l&#108; Ô&#212;&Ocirc;
&&#38;&amp;m&#109; Õ&#213;&Otilde;
'&#39; n&#110; Ö&#214;&Ouml;
(&#40; o&#111; ×&#215;&times;
)&#41; p&#112; Ø&#216;&Oslash;
*&#42; q&#113; Ù&#217;&Ugrave;
+&#43; r&#114; Ú&#218;&Uacute;
,&#44; s&#115; Û&#219;&Ucirc;
-&#45; t&#116; Ü&#220;&Uuml;
.&#46; u&#117; Ý&#221;&Yacute;
/&#47; v&#118; Þ&#222;&THORN;
0&#48; w&#119; ß&#223;&szlig;
1&#49; x&#120; à&#224;&agrave;
2&#50; y&#121; á&#225;&aacute;
3&#51; z&#122; â&#226;&acirc;
4&#52; {&#123; ã&#227;&atilde;
5&#53; |&#124; ä&#228;&auml;
6&#54; }&#125; å&#229;&aring;
7&#55; ~&#126; æ&#230;&aelig;
8&#56;  &#160;&nbsp;ç&#231;&ccedil;
9&#57; ¡&#161;&iexcl;è&#232;&egrave;
:&#58; ¢&#162;&cent;é&#233;&eacute;
;&#59; £&#163;&pound;ê&#234;&ecirc;
<&#60;&lt;¤&#164;&curren;ë&#235;&euml;
=&#61; ¥&#165;&yen;ì&#236;&igrave;
>&#62;&gt;¦&#166;&brvbar;í&#237;&iacute;
?&#63; §&#167;&sect;î&#238;&icirc;
@&#64; ¨&#168;&uml;ï&#239;&iuml;
A&#65; ©&#169;&copy;ð&#240;&eth;
B&#66; ª&#170;&ordf;ñ&#241;&ntilde;
C&#67; «&#171;&laquo;ò&#242;&ograve;
D&#68; ¬&#172;&not;ó&#243;&oacute;
E&#69; ­&#173;&shy;ô&#244;&ocirc;
F&#70; ®&#174;&reg;õ&#245;&otilde;
G&#71; ¯&#175;&macr;ö&#246;&ouml;
H&#72; °&#176;&deg;÷&#247;&divide;
I&#73; ±&#177;&plusmn;ø&#248;&oslash;
J&#74; ²&#178;&sup2;ù&#249;&ugrave;
K&#75; ³&#179;&sup3;ú&#250;&uacute;
L&#76; ´&#180;&acute;û&#251;&ucirc;
M&#77; µ&#181;&micro;ü&#252;&uuml;
N&#78; &#182;&para;ý&#253;&yacute;
O&#79; ·&#183;&middot;þ&#254;&thorn;
P&#80; ¸&#184;&cedil;ÿ&#255;&yuml;
Q&#81; ¹&#185;&sup1;Œ&#338; 
R&#82; º&#186;&ordm;œ&#339; 
S&#83; »&#187;&raquo;Š&#352; 
T&#84; ¼&#188;&frac14;š&#353; 
U&#85; ½&#189;&frac12;Ÿ&#376; 
V&#86; ¾&#190;&frac34;ƒ&#402; 
W&#87; ¿&#191;&iquest;&#8211; 
X&#88; À&#192;&Agrave;&#8212; 
Y&#89; Á&#193;&Aacute;&#8216; 
Z&#90; Â&#194;&Acirc;&#8217; 
[&#91; Ã&#195;&Atilde;&#8218; 
\&#92; Ä&#196;&Auml;&#8220; 
]&#93; Å&#197;&Aring;&#8221; 
^&#94; Æ&#198;&AElig;&#8222; 
_&#95; Ç&#199;&Ccedil;&#8224; 
`&#96; È&#200;&Egrave;&#8225; 
a&#97; É&#201;&Eacute;&#8226; 
b&#98; Ê&#202;&Ecirc;&#8230; 
c&#99; Ë&#203;&Euml;&#8240; 
d&#100; Ì&#204;&Igrave;&#8364;&euro;
e&#101; Í&#205;&Iacute;&#8482; 
f&#102; Î&#206;&Icirc;   

Annexe L

Commandes HTML de base

TypeCommandeRésultat
Paragraphe<p>Blabla</p>Blabla
Paragraphe avec un style<p class="ERREUR">Blabla</p>Blabla
Tout texte avec un style<span class="ERREUR">Blabla</span>Blabla
Saut de ligneLigne1<br />Ligne2Ligne1
Ligne2
Hyperlien<a href="http://callweb.ca">text</a>text
Hyperlien dans une nouvelle fenêtre ou nouvel onglet<a href="http://callweb.ca" target="_blank">text</a>text
Liste à puces<ul><li>première puce</li><li>deuxième puce</li></ul>
  • première puce
  • deuxième puce
Liste numérotée<ol><li>première puce</li><li>deuxième puce</li></ol>
  1. première puce
  2. deuxième puce
Ligne horizontale<hr />
Insertion d'image<img src="../images/list-arrow.gif" />
Abbréviation<abbr title="Quel produitCAWI/CATI/CAPI!">CallWeb</abbr>CallWeb

Couleurs HTML

En HTML, les couleurs sont définies par des codes RGB (rouge, vert (green), bleu). Les codes RGB sont composés de trois paires de caractères hexadécimaux (de 0 à F), suivies d'un dièse (sans lien avec les instructions dièses de CallWeb). Chaque paire de caractères hexadécimaux indique la quantité de chaque couleur de base (rouge, vert, bleu) dans une combinaison de couleurs particulière. Par exemple, #FFFFFF est blanc parce que ce code inclut un maximum de chacune des trois couleurs de base.; #000000 est noir parce qu'il n'y a aucune des trois couleurs de base.

Il y a beaucoup d'outils utiles en ligne pour aider dans la sélection des couleurs. ColorPicker, Febooti on-line colour chart et Doughnut Color Picker retournent des codes pour des millions de couleurs en utilisant une interface familière. D'autres outils comme ColorScheme Designer, Color Palette Creator et kuler aident à la création d'ensembles de couleurs. Finalement, pixie (un exécutable Windows) et Colorzilla (une extension Firefox) identifient la couleur vers laquelle la souris pointe à l'écran.

Codes HTML de base

Bloc 1Bloc 2Bloc 3
CaractèreCode numériqueÉquivalent HTMLCaractèreCode numériqueÉquivalent HTMLCaractèreCode numériqueÉquivalent HTML
&#32; g&#103; Ï&#207;&Iuml;
!&#33; h&#104; Ð&#208;&ETH;
"&#34;&quot;i&#105; Ñ&#209;&Ntilde;
#&#35; j&#106; Ò&#210;&Ograve;
$&#36; k&#107; Ó&#211;&Oacute;
%&#37; l&#108; Ô&#212;&Ocirc;
&&#38;&amp;m&#109; Õ&#213;&Otilde;
'&#39; n&#110; Ö&#214;&Ouml;
(&#40; o&#111; ×&#215;&times;
)&#41; p&#112; Ø&#216;&Oslash;
*&#42; q&#113; Ù&#217;&Ugrave;
+&#43; r&#114; Ú&#218;&Uacute;
,&#44; s&#115; Û&#219;&Ucirc;
-&#45; t&#116; Ü&#220;&Uuml;
.&#46; u&#117; Ý&#221;&Yacute;
/&#47; v&#118; Þ&#222;&THORN;
0&#48; w&#119; ß&#223;&szlig;
1&#49; x&#120; à&#224;&agrave;
2&#50; y&#121; á&#225;&aacute;
3&#51; z&#122; â&#226;&acirc;
4&#52; {&#123; ã&#227;&atilde;
5&#53; |&#124; ä&#228;&auml;
6&#54; }&#125; å&#229;&aring;
7&#55; ~&#126; æ&#230;&aelig;
8&#56;  &#160;&nbsp;ç&#231;&ccedil;
9&#57; ¡&#161;&iexcl;è&#232;&egrave;
:&#58; ¢&#162;&cent;é&#233;&eacute;
;&#59; £&#163;&pound;ê&#234;&ecirc;
<&#60;&lt;¤&#164;&curren;ë&#235;&euml;
=&#61; ¥&#165;&yen;ì&#236;&igrave;
>&#62;&gt;¦&#166;&brvbar;í&#237;&iacute;
?&#63; §&#167;&sect;î&#238;&icirc;
@&#64; ¨&#168;&uml;ï&#239;&iuml;
A&#65; ©&#169;&copy;ð&#240;&eth;
B&#66; ª&#170;&ordf;ñ&#241;&ntilde;
C&#67; «&#171;&laquo;ò&#242;&ograve;
D&#68; ¬&#172;&not;ó&#243;&oacute;
E&#69; ­&#173;&shy;ô&#244;&ocirc;
F&#70; ®&#174;&reg;õ&#245;&otilde;
G&#71; ¯&#175;&macr;ö&#246;&ouml;
H&#72; °&#176;&deg;÷&#247;&divide;
I&#73; ±&#177;&plusmn;ø&#248;&oslash;
J&#74; ²&#178;&sup2;ù&#249;&ugrave;
K&#75; ³&#179;&sup3;ú&#250;&uacute;
L&#76; ´&#180;&acute;û&#251;&ucirc;
M&#77; µ&#181;&micro;ü&#252;&uuml;
N&#78; &#182;&para;ý&#253;&yacute;
O&#79; ·&#183;&middot;þ&#254;&thorn;
P&#80; ¸&#184;&cedil;ÿ&#255;&yuml;
Q&#81; ¹&#185;&sup1;Œ&#338; 
R&#82; º&#186;&ordm;œ&#339; 
S&#83; »&#187;&raquo;Š&#352; 
T&#84; ¼&#188;&frac14;š&#353; 
U&#85; ½&#189;&frac12;Ÿ&#376; 
V&#86; ¾&#190;&frac34;ƒ&#402; 
W&#87; ¿&#191;&iquest;&#8211; 
X&#88; À&#192;&Agrave;&#8212; 
Y&#89; Á&#193;&Aacute;&#8216; 
Z&#90; Â&#194;&Acirc;&#8217; 
[&#91; Ã&#195;&Atilde;&#8218; 
\&#92; Ä&#196;&Auml;&#8220; 
]&#93; Å&#197;&Aring;&#8221; 
^&#94; Æ&#198;&AElig;&#8222; 
_&#95; Ç&#199;&Ccedil;&#8224; 
`&#96; È&#200;&Egrave;&#8225; 
a&#97; É&#201;&Eacute;&#8226; 
b&#98; Ê&#202;&Ecirc;&#8230; 
c&#99; Ë&#203;&Euml;&#8240; 
d&#100; Ì&#204;&Igrave;&#8364;&euro;
e&#101; Í&#205;&Iacute;&#8482; 
f&#102; Î&#206;&Icirc;   

   

Annexe M

Liste de contrôle pour le démarrage de projets

La liste de contrôle qui suit est un guide pour vérifier que toutes les étapes du démarrage d'un projet ont été complétées. Une liste de contrôle spécifique au contexte CATI est aussi disponible.

1

         

Utilisez le diagramme du processus de gestion de projet pour guider vos efforts.
2

         

Créez un répertoire. Son nom devrait débuter par les lettres « cw » (en minuscules) pour que CallWeb le reconnaisse comme un répertoire de projet. Notez que, sous Linux, la capitalisation des lettres compte de sorte que le fichier ou le répertoire « cwProjet » est différent du fichier ou du répertoire « cwprojet ».
3

         

Le serveur Web Apache doit avoir la permission d'écrire dans ce nouveau répertoire. Si le répertoire a été créé par le gestionnaire de fichiers de CallWeb (cwdocs), c'est déjà le cas. Autrement, donnez la propriété du répertoire à l'usager Apache ou donnez une permission d'écriture dans le répertoire au « monde entier ».
4

         

Placez un fichier de script de questionnaire (fichier .scw) dans le répertoire de projet. Ce pourrait être une copie d'un questionnaire existant.
5

         

Si nécessaire, placez un fichier style.css dans le répertoire de projet pour contrôler l'apparence du questionnaire. Sans un tel fichier, CallWeb utilise le fichier style.css par défaut situé dans le répertoire gr/.
6

         

Modifiez le questionnaire selon vos spécifications, soit dans cwedit ou dans un éditeur de texte comme gedit, TextPad ou UltraEdit. Si vous modifiez le questionnaire dans un éditeur de texte, utilisez le gestionnaire de fichier (cwdocs) ou un programme de communication (comme gftp, ws_ftp ou Directory Opus) pour télécharger le fichier .scw vers le serveur.
7

         

Compilez le questionnaire depuis cwedit ou depuis le module intégré (cw) et corrigez toute erreur identifiée.
8

         

Au cours de la programmation du questionnaire, conservez une seconde fenêtre de fureteur ouverte sur une copie du questionnaire prêt à être complété pour tester les nouvelles questions et les modifications au questionnaire.
9

         

Répétez les étapes 6, 7 et 8 jusqu'à ce que vous ayez terminé la programmation du questionnaire.
10

         

Si vous voulez insérer des données dans la base de données de projet (p.ex., pour créer des codes d'accès et/ou pour faire en sorte que des données soient disponibles en cours d'entrevue), regroupez les données dans un fichier délimité par des caractères de tabulation dont la première ligne identifie les champs correspondant aux données. Téléchargez ce fichier avec le gestionnaire de fichier ou avec un programme de communication, puis importez ces données avec le module cwprepop.
11

         

Assurez-vous que l'instruction dièse « type enquete » correspond au type de contrôle d'accès requis pour le projet.
12

         

Construisez une URL pour accéder au questionnaire en tant que participant.
13

         

Envoyez des courriels d'invitation.

Annexe M

Liste de contrôle pour le démarrage de projets

La liste de contrôle qui suit est un guide pour vérifier que toutes les étapes du démarrage d'un projet ont été complétées. Une liste de contrôle spécifique au contexte CATI est aussi disponible.

1

         

Utilisez le diagramme du processus de gestion de projet pour guider vos efforts.
2

         

Créez un répertoire. Son nom devrait débuter par les lettres « cw » (en minuscules) pour que CallWeb le reconnaisse comme un répertoire de projet. Notez que, sous Linux, la capitalisation des lettres compte de sorte que le fichier ou le répertoire « cwProjet » est différent du fichier ou du répertoire « cwprojet ».
3

         

Le serveur Web Apache doit avoir la permission d'écrire dans ce nouveau répertoire. Si le répertoire a été créé par le gestionnaire de fichiers de CallWeb (cwdocs), c'est déjà le cas. Autrement, donnez la propriété du répertoire à l'usager Apache ou donnez une permission d'écriture dans le répertoire au « monde entier ».
4

         

Placez un fichier de script de questionnaire (fichier .scw) dans le répertoire de projet. Ce pourrait être une copie d'un questionnaire existant.
5

         

Si nécessaire, placez un fichier style.css dans le répertoire de projet pour contrôler l'apparence du questionnaire. Sans un tel fichier, CallWeb utilise le fichier style.css par défaut situé dans le répertoire gr/.
6

         

Modifiez le questionnaire selon vos spécifications, soit dans cwedit ou dans un éditeur de texte comme gedit, TextPad ou UltraEdit. Si vous modifiez le questionnaire dans un éditeur de texte, utilisez le gestionnaire de fichier (cwdocs) ou un programme de communication (comme gftp, ws_ftp ou Directory Opus) pour télécharger le fichier .scw vers le serveur.
7

         

Compilez le questionnaire depuis cwedit ou depuis le module intégré (cw) et corrigez toute erreur identifiée.
8

         

Au cours de la programmation du questionnaire, conservez une seconde fenêtre de fureteur ouverte sur une copie du questionnaire prêt à être complété pour tester les nouvelles questions et les modifications au questionnaire.
9

         

Répétez les étapes 6, 7 et 8 jusqu'à ce que vous ayez terminé la programmation du questionnaire.
10

         

Si vous voulez insérer des données dans la base de données de projet (p.ex., pour créer des codes d'accès et/ou pour faire en sorte que des données soient disponibles en cours d'entrevue), regroupez les données dans un fichier délimité par des caractères de tabulation dont la première ligne identifie les champs correspondant aux données. Téléchargez ce fichier avec le gestionnaire de fichier ou avec un programme de communication, puis importez ces données avec le module cwprepop.
11

         

Assurez-vous que l'instruction dièse « type enquete » correspond au type de contrôle d'accès requis pour le projet.
12

         

Construisez une URL pour accéder au questionnaire en tant que participant.
13

         

Envoyez des courriels d'invitation.

   

Annexe N

Types de fichiers

Un répertoire de projet CallWeb comporte souvent une série de fichiers témoignant du déroulement du projet. Voici une liste des fichiers que l'on peut y retrouver.

NomDescription
projet.scwFichier de questionnaire en format script texte.
projet.qcwVersion compilée et vérifiée du questionnaire utilisée par callweb.cgi et cwx.cgi.
projet.scw.lastprojet.scw correspondant au projet.qcw courant, c'est-à-dire, le dernier projet.scw à avoir été compil avec succès.
projet_cwcompile_dateheure.zipAssortiment de fichiers de projet tels qu'ils existaient quand la compilation a été effectuée à dateheure; ce fichier inclut une copie des données si un changement de structure a été effectué sur la base de données au cours de la compilation.
projet.change.logJournal des changements de structure effectués sur la base de données CallWeb.
projet_cwarchive_h_dateheure.zipCopie d'archive des données créée par cwarchives.pl selon la planification horaire.
projet_cwarchive_d_dateheure.zipCopie d'archive des données créée par cwarchives.pl selon la planification quotidienne.
projet_cwextr_dateheure.zipInformation extraite par cwextr à dateheure si la demande incluait le fait de laisser une copie des données dans le répertoire de projet.
projet.cwedit.lockFichier de verrou laissé par cwedit.
projet.adresseip.debugSi ce fichier est présent, les pages de questionnaire demandées par adresseip incluent de l'information de débogage.
projet-dateheure-dateheure-nombre.catiCATI : paramètres de gestion de la file d'attente pour projet.
projet.actuhistoCATI : historique des résultats de gestion de la file d'attente pour projet.
projet.ccwCATI : caractéristiques des codes de disposition CATI pour le projet.
style.cssFeuille de styles contrôlant l'apparence du questionnaire.

Annexe N

Types de fichiers

Un répertoire de projet CallWeb comporte souvent une série de fichiers témoignant du déroulement du projet. Voici une liste des fichiers que l'on peut y retrouver.

NomDescription
projet.scwFichier de questionnaire en format script texte.
projet.qcwVersion compilée et vérifiée du questionnaire utilisée par callweb.cgi et cwx.cgi.
projet.scw.lastprojet.scw correspondant au projet.qcw courant, c'est-à-dire, le dernier projet.scw à avoir été compil avec succès.
projet_cwcompile_dateheure.zipAssortiment de fichiers de projet tels qu'ils existaient quand la compilation a été effectuée à dateheure; ce fichier inclut une copie des données si un changement de structure a été effectué sur la base de données au cours de la compilation.
projet.change.logJournal des changements de structure effectués sur la base de données CallWeb.
projet_cwarchive_h_dateheure.zipCopie d'archive des données créée par cwarchives.pl selon la planification horaire.
projet_cwarchive_d_dateheure.zipCopie d'archive des données créée par cwarchives.pl selon la planification quotidienne.
projet_cwextr_dateheure.zipInformation extraite par cwextr à dateheure si la demande incluait le fait de laisser une copie des données dans le répertoire de projet.
projet.cwedit.lockFichier de verrou laissé par cwedit.
projet.adresseip.debugSi ce fichier est présent, les pages de questionnaire demandées par adresseip incluent de l'information de débogage.
projet-dateheure-dateheure-nombre.catiCATI : paramètres de gestion de la file d'attente pour projet.
projet.actuhistoCATI : historique des résultats de gestion de la file d'attente pour projet.
projet.ccwCATI : caractéristiques des codes de disposition CATI pour le projet.
style.cssFeuille de styles contrôlant l'apparence du questionnaire.