> For the complete documentation index, see [llms.txt](https://olab4.gitbook.io/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olab4.gitbook.io/help/olab4-help-fr/basic-topics/objects.md).

# Objets

## Aperçu

Dans OLab4, nous avons introduit le concept d'Objets à Portée (Scoped Objects), dans l'idée de rendre le processus de création plus efficace. En rendant les Objets réutilisables et partageables entre les Cartes, l'auteur passe moins de temps à réinventer la roue ou à faire plusieurs copies du même élément. Voir ci-dessous pour plus d'informations sur [Portée](#scope_for_objects). <br>

## Questions

L'objet le plus courant que l'auteur utilisera dans la conception de ses cartes est la Question. OLab4 prend en charge de nombreux types de Questions différents, dont certains sont interchangeables. L'auteur peut créer ou modifier des Questions à l'aide de l'Éditeur de Questions. Dans le menu supérieur du Designer, Objets, vous pouvez sélectionner Questions dans le menu déroulant.&#x20;

La liste des Questions peut être recherchée, tout comme pour la liste des Cartes.&#x20;

La Description de la Question permet à l'auteur de prendre des notes sur l'objectif de cette question — cela peut aider à la réutilisabilité. L'Amorce de la Question est comme l'étiquette de la question.\
![](/files/c8620923e0ba7e9318e8ae4fb5fd5d181e790d19)

Dans cette capture d'écran, nous pouvons voir que l'auteur recherche le mot « test ». Vous pouvez sélectionner une Question pour l'éditer. Ou vous pouvez créer une nouvelle Question en utilisant le grand bouton bleu en haut à droite.&#x20;

La plupart des éléments que vous modifiez dans l'Éditeur de Questions sont assez explicites, nous nous sommes donc concentrés ici sur la description des éléments remarquables pour chaque type de question.&#x20;

### Texte sur une seule ligne

Le validateur aide à s'assurer que les données saisies respectent un format spécifique, comme une adresse e-mail ou un numéro de téléphone. <br>

Lorsque l'utilisateur appuie sur Entrée, le contenu de ce champ est enregistré.&#x20;

### Texte multi-lignes

Cela permet à l'utilisateur de saisir beaucoup plus de texte. Bien que la taille de la zone de saisie puisse être modifiée par l'auteur, l'utilisateur peut agrandir cette zone en mode lecteur.&#x20;

### Choix unique

Aussi connus sous le nom de « boutons radio », l'utilisateur ne peut choisir qu'une seule des options. L'auteur peut créer autant d'options qu'il le souhaite. Un Compteur peut être attaché à la Question.&#x20;

#### Options de Choix unique

* Réponse - le texte qui indique la manière dont vous répondez avec ce choix
* Correct - si l'utilisateur doit voir un indice indiquant si la réponse est vraie
* Rétroaction - une petite fenêtre contextuelle contenant plus d'indices
* Score - appliquer un score positif ou négatif à un Compteur. (N'oubliez pas de sélectionner le Compteur)

### Choix multiple

Aussi appelées cases à cocher, l'utilisateur peut sélectionner autant d'options qu'il le souhaite. Sinon, elles sont identiques aux questions à Choix unique, avec les mêmes options.&#x20;

### Concordance de script

Il s'agit en réalité d'un type spécial de question à Choix unique. Typiquement, elles comportent 5 choix mais ce n'est pas obligatoire. Leur conception est largement la même qu'une question à Choix unique et elles apparaissent de manière similaire à l'utilisateur en mode lecture. <br>

Elles sont notées différemment lors des rapports de session. Elles sont peu utilisées et pourraient être dépréciées dans les versions futures.&#x20;

### &#x20;Curseur

Il existe différents styles de curseurs. Un Compteur peut être attaché à la question. Les scores des Compteurs et les valeurs des curseurs ne sont pas identiques.&#x20;

### Glisser-Déposer

Il s'agit d'une série verticale de réponses qui peuvent être déplacées dans un nouvel ordre par l'utilisateur, à la souris. Il n'existe pas de méthode standard pour évaluer la correction des réponses.&#x20;

### Jugement situationnel

Il s'agit en réalité d'un type spécial de question Glisser-Déposer. Typiquement, elles comportent 5 choix mais ce n'est pas obligatoire. Leur conception est largement la même qu'une question Glisser-Déposer et elles apparaissent de manière similaire à l'utilisateur en mode lecture. <br>

Elles sont notées différemment lors des rapports de session. Elles sont peu utilisées et pourraient être dépréciées dans les versions futures.&#x20;

### Texte enrichi

Il s'agit d'un type spécial de question à texte multi-lignes, qui permet à l'utilisateur d'inclure une mise en forme riche dans la réponse. Ils peuvent mettre le texte en gras, souligné, italique, etc.&#x20;

### Cumulatif

{% hint style="info" %}
Ce type de question sera déprécié. Il a été très peu utilisé
{% endhint %}

### Chat

{% hint style="info" %}
Ce type de question sera déprécié. Il a été très peu utilisé. Il pourrait être reconçu en tant que question de type Indice.&#x20;
{% endhint %}

### Grilles

{% hint style="info" %}
Ce type de question a été reporté pour le moment, en attente de financements supplémentaires
{% endhint %}

## Compteurs

On peut les considérer comme des variables, en termes de programmation. Ils sont généralement utilisés pour suivre la progression ou la performance de l'utilisateur mais peuvent également être utilisés pour contrôler le flux d'un scénario ou d'une carte.&#x20;

La valeur d'un Compteur peut être définie de plusieurs manières différentes et peut être de l'un des trois types suivants :

* Entier
* Chaîne
* Nombre à virgule flottante

OLab4 ne se préoccupe pas du type que vous utilisez mais vous obtiendrez un comportement imprévisible si vous changez de type au sein d'un même Compteur. <br>

Vous pouvez afficher toutes les valeurs des Compteurs d'un Nœud en insérant le shortcode \[\[COUNTERS]] dans le texte du Nœud ou dans le Thème de cette Carte. <br>

![Éditeur de Nœud montrant un seul shortcode de Compteur](/files/402b78d9970227521b8625c9c5a7baa6911b5b13)

![Voir la valeur du Compteur affichée au centre du Nœud](/files/bb560c0917c90ddd5457f4e99c3470cc1ccd83c3)

Vous pouvez afficher la valeur d'un seul Compteur n'importe où sur un Nœud en insérant le shortcode \[\[CR:name]] ou \[\[CR:nnn]] (où name est le nom du Compteur ou nnn est le numéro d'ID du Compteur).&#x20;

### Grille de Compteurs

Ceci est la méthode la plus simple pour modifier la valeur d'un Compteur. En mode lecture, lorsque l'utilisateur visite le Nœud, la valeur du Compteur est modifiée selon la grille.&#x20;

{% hint style="warning" %}
Ceci a été perdu lors de la transition de OLab 4.0 à 4.5 — nous le réintégrerons lorsque nous en aurons l'occasion.&#x20;
{% endhint %}

![Grille de Compteurs qui montre comment les valeurs changent lorsque vous passez d'un Nœud à un autre](/files/1874c89f69f5b0e5c4fdad1db9a00c28556588dd)

Vous pouvez définir une valeur, en utilisant le signe '='.

Vous pouvez incrémenter une valeur entière ou à virgule flottante, en utilisant le signe '+'.

Vous pouvez décrémenter une valeur entière ou à virgule flottante, en utilisant le signe '-'.

Vous pouvez définir si un Compteur est affiché dans la zone \[\[COUNTERS]] lorsque ce Nœud est joué.&#x20;

### Compteurs et Questions

Vous pouvez attacher un Compteur à une Question. La valeur du Compteur est modifiée lorsque l'utilisateur répond à la question en mode lecture. Le Score de Réponse définit la manière dont le Compteur est modifié.&#x20;

{% hint style="info" %}
Vous ne pouvez actuellement utiliser que des valeurs entières dans system\_question\_responses.score
{% endhint %}

### Compteurs et Scripts

La valeur d'un Compteur peut également être modifiée par un Objet Script. Un Script peut aussi surveiller la valeur d'un Compteur et agir en conséquence. <br>

Les Scripts ont remplacé les Règles que nous utilisions dans OLab3.&#x20;

## Fichiers multimédias

Vous pouvez inclure des fichiers et des médias dans une carte et les afficher dans n'importe quel Nœud. Bien sûr, vous pouvez aussi insérer un lien vers un fichier externe sur un autre serveur. L'avantage d'utiliser des fichiers internes est que vous avez plus de contrôle sur leur disponibilité et leur format, mais il y a aussi des inconvénients tels que les droits d'auteur, la taille importante des fichiers et les temps d'affichage.&#x20;

Vous pouvez trouver plus de détails à <https://olab4.net/working-with-images-in-olab/> et nous avons également un cas appelé « Picture this » sur nos serveurs OLab qui explore les questions plus approfondies.&#x20;

Les médias et fichiers peuvent être affichés ou téléchargés par l'utilisateur en mode lecture. Habituellement, un fichier média sera simplement affiché si le shortcode \[\[MR:name]] est placé dans le texte d'un Nœud. Le Sélecteur d'Objets dans la zone de dessin du Designer est le moyen le plus simple de le faire.&#x20;

### Attributs du fichier média

L'Éditeur de Fichiers nécessite un peu de nettoyage.&#x20;

<figure><img src="/files/941abcc5dcdddad57878cf064654190644ce0773" alt=""><figcaption></figcaption></figure>

* Ignorez les 4 premiers champs.
* **Nom** -- il s'agit de l'identifiant connu sous le nom de « nom convivial ». Il devrait faire allusion à son objectif
* Description -- une note facultative plus longue sur l'objectif prévu ou le contenu
* Droits d'auteur -- généralement © ou Creative Commons
* Cliquez sur le bouton \[SÉLECTIONNER FICHIER] pour télécharger depuis votre ordinateur
* Le nom du fichier sera inséré lorsque cela sera fait
* Sélectionnez 'Cartes' pour le niveau de portée
* Cliquez sur Nom de l'Objet et insérez le numéro ou le nom de la carte que vous éditez.&#x20;
* Cliquez sur le bouton \[CRÉER] en haut à droite pour enregistrer vos modifications.&#x20;

Notez que vous ne pouvez pas modifier directement les images elles-mêmes dans OLab4. Bien que cela ait été possible auparavant dans OLab3, nous avons constaté qu'il existe déjà de nombreux outils excellents que vous pouvez utiliser pour modifier les images. Pour garder OLab4 simple, nous avons laissé de côté cette fonctionnalité.&#x20;

## Constantes

Celles-ci peuvent être utilisées pour insérer un bloc de texte, en utilisant le shortcode \[\[CONST:name]]. Vous pouvez également ajouter une petite image associée à ce texte, comme une icône. Pour des images plus grandes, utilisez le [Fichiers](#media-files) option ci-dessus.&#x20;

&#x20;Elles ressemblent à une macro ou un raccourci ou un texte standard — l'auteur attribue une valeur à la Constante en mode conception. La valeur ne change pas en mode lecture.&#x20;

#### Attributs de la Constante

* Nom -- il s'agit de l'identifiant connu sous le nom de « nom convivial ». Il devrait faire allusion à son objectif
* ID -- il s'agit du numéro d'ID interne (« nnn » dans les shortcodes ci-dessus)
* Description -- une note un peu plus longue sur l'objectif prévu ou le contenu
* Valeur -- cela doit être formaté en HTML. Il peut inclure une image interne. Il **ne peut pas** contenir des shortcodes vers d'autres Objets OLab.&#x20;

{% hint style="danger" %}
Notez que vous devrez peut-être insérer manuellement le balisage HTML correct ici. Cela n'est pas encore géré automatiquement.&#x20;
{% endhint %}

## Portée des Objets <a href="#scope_for_objects" id="scope_for_objects"></a>

Tous les types d'objets ci-dessus (et quelques autres) peuvent se voir attribuer une portée. Le but est de promouvoir le concept d'objets réutilisables. Vous pouviez le faire dans une certaine mesure dans OLab3 mais c'était un peu bricolé. Dans OLab4, c'est désormais assez puissant.&#x20;

{% hint style="info" %}
Il y a eu des discussions sur l'ajout d'une portée au niveau du Nœud. À l'heure actuelle, cela n'est pas tranché.&#x20;
{% endhint %}

### Portée au niveau de la Carte

Un objet attaché à une Carte en tant que portée ne peut être utilisé que dans cette Carte. Il peut être réutilisé plusieurs fois au sein de cette Carte, à travers de nombreux Nœuds différents. Si un objet est utilisé plus d'une fois dans le même Nœud, le comportement peut être imprévisible.

### Portée au niveau du Cours

Un [Cours](/help/olab4-help-fr/advanced-topics/courses.md) est un ensemble de Cartes reliées, à la fois logiquement et à un ensemble défini d'utilisateurs. Un objet attaché à un Cours en tant que portée ne peut être utilisé que dans ce Cours. Il peut être réutilisé plusieurs fois au sein de ce Cours, à travers de nombreuses Cartes et Nœuds différents.

### Portée au niveau du Serveur

Un objet attaché à un Serveur en tant que portée ne peut être utilisé que dans ce Serveur. Il peut être réutilisé plusieurs fois au sein de ce Serveur, à travers de nombreuses Cartes et Cours.&#x20;

Pour les objets vraiment populaires, beaucoup de temps peut être économisé en créant une bibliothèque de tels objets que les auteurs peuvent réutiliser encore et encore.&#x20;

Les Compteurs au niveau du Serveur ne sont pas nécessairement réinitialisés pour chaque carte. Leurs valeurs peuvent également être modifiées par plus d'une carte en même temps. Cela permet à l'auteur de créer des Cartes qui interagissent entre elles en utilisant un Compteur commun. Voir l'exemple à <https://olab.ca/olab4-maps-interact-through-server-level-counters/>

### Portée globale

Un objet défini comme Global en portée est partagé par tous les serveurs OLab4. Cela semble être la portée la plus courante, la plus puissante et la plus réutilisable. Mais elle comporte aussi de nombreuses limitations.&#x20;

Nous utiliserons un dépôt GitHub pour gérer le contrôle de version des objets à Portée Globale. Nous pourrions également mettre en place un LRS central pour gérer les Compteurs Globaux, si un cas d'utilisation solide est présenté.&#x20;

En général, nous prévoyons qu'il y aura quelques fichiers multimédias (comme des fichiers d'aide) ayant une portée Globale et possiblement très peu de Questions. La portée au niveau du Serveur sera beaucoup plus couramment utilisée.&#x20;

### Rôles et Portée

Il existe une hiérarchie d'auteurs quant à qui peut créer et modifier des objets à différents niveaux de portée.&#x20;

* Les objets au niveau de la Carte peuvent être modifiés par un auteur qui a accès à cette Carte
* Les objets au niveau du Cours peuvent être modifiés par un directeur qui a accès à ce Cours
* Les objets au niveau du Serveur ne peuvent être modifiés que par un administrateur qui a accès à ce Serveur
* Les objets au niveau Global ne peuvent être modifiés que par un développeur disposant des permissions globales

Des copies locales peuvent être faites d'objets à portée supérieure. Par exemple, un auteur de carte peut faire une copie d'un objet au niveau du Serveur puis le modifier pour l'utiliser dans la portée de niveau carte. De telles modifications ne se propagent pas vers l'objet parent, ni de l'objet parent vers l'objet enfant après sa création.&#x20;

## Nommage des Objets

Dans OLab4, nous avons introduit des noms pour les Objets, au lieu du système de numérotation utilisé par OLab3. Les Objets importés depuis des cartes OLab3 auront encore des numéros pour noms — nous encourageons les auteurs à remplacer ces noms par des noms significatifs.&#x20;

Il y a quelques éléments à prendre en compte lors de la nomination de vos Objets :

1. OLab ne vérifie pas les noms d'Objets en double - il appartient à l'auteur de résoudre ce problème. L'utilisation de la portée au niveau de la carte aidera dans une certaine mesure afin que vous n'ayez pas à vérifier toutes les combinaisons possibles de noms en double. Nous demandons aux auteurs d'être particulièrement prudents lorsqu'ils créent des Objets à Portée au niveau du Serveur.&#x20;
2. Évitez l'utilisation de ces caractères dans le nom d'un Objet : ()\&#$%\_@!\*&#x20;
   1. Les espaces sont autorisés
   2. Notez que le souligné (underscore) n'est pas autorisé
   3. Cette liste n'est pas entièrement testée. Par exemple, il peut aussi y avoir des problèmes avec les deux-points
3. Si vous faites référence à un **interne** Objet interne tel que MapName, nodeCount, etc. alors vous devez utiliser des guillemets doubles autour du nom de l'objet, par ex. \[\[CR:"nodeCount"]]. Ces noms internes sont également sensibles à la casse.&#x20;
