Update Concepts et objets de MACAO: détails données à extraire pour chaque type d'activité authored by Eliott Sammier's avatar Eliott Sammier
...@@ -4,12 +4,12 @@ ...@@ -4,12 +4,12 @@
[[_TOC_]] [[_TOC_]]
## Dans Macao 1 et 2 : # Dans Macao 1 et 2 :
![Macao_12_concepts_annotation](uploads/5b30aec165b2f85bf18735f72fb6f9e3/Macao_12_concepts_annotation.png) ![Macao_12_concepts_annotation](uploads/5b30aec165b2f85bf18735f72fb6f9e3/Macao_12_concepts_annotation.png)
---- ----
### Parties ## Parties
Un module contient une ou plusieurs parties _(ex: "Reconnaître les syllabes")_. Côté code, une partie a la même représentation qu'un module, c'est un élément sans contenu propre, décrit comme un `<item>` MosMod dans [`imsmanifest.xml`](https://gitlab.tetras-libre.fr/macao/macao-legacy/-/blob/main/Basilisk/MACAO/macao_12/imsmanifest.xml) Un module contient une ou plusieurs parties _(ex: "Reconnaître les syllabes")_. Côté code, une partie a la même représentation qu'un module, c'est un élément sans contenu propre, décrit comme un `<item>` MosMod dans [`imsmanifest.xml`](https://gitlab.tetras-libre.fr/macao/macao-legacy/-/blob/main/Basilisk/MACAO/macao_12/imsmanifest.xml)
...@@ -47,8 +47,13 @@ Un module contient une ou plusieurs parties _(ex: "Reconnaître les syllabes")_. ...@@ -47,8 +47,13 @@ Un module contient une ou plusieurs parties _(ex: "Reconnaître les syllabes")_.
``` ```
</details> </details>
**Données à extraire :**
- [x] ID -> attribut `identifier`
- [x] Titre -> élément `<title>`
- [x] Descendants dans l'arbre -> éléments `<item>`
---- ----
### Sous-parties ## Sous-parties
Les "feuilles" de l'arborescence visible dans le panneau de gauche, éléments non dépliables _(ex: "Reconnaître les syllabes en anglais oral")_. Une sous-partie contient plusieurs **pages**, dont la première est affichée quand on sélectionne la sous-partie. Une sous-partie est décrite dans un fichier `sco/MosEtp###`, qui déclare un objet `MosSCO` pour définir son contenu. Les "feuilles" de l'arborescence visible dans le panneau de gauche, éléments non dépliables _(ex: "Reconnaître les syllabes en anglais oral")_. Une sous-partie contient plusieurs **pages**, dont la première est affichée quand on sélectionne la sous-partie. Une sous-partie est décrite dans un fichier `sco/MosEtp###`, qui déclare un objet `MosSCO` pour définir son contenu.
```js ```js
oSco = new MosSCO("MosEtp129", "> Reconnaître les syllabes en anglais oral", "MACAO", "MACAO 1 - S'entraîner à la reconnaissance", "", "macao_fusion_ss_barre", "fr"); oSco = new MosSCO("MosEtp129", "> Reconnaître les syllabes en anglais oral", "MACAO", "MACAO 1 - S'entraîner à la reconnaissance", "", "macao_fusion_ss_barre", "fr");
...@@ -65,13 +70,29 @@ oSco.tabPages[oSco.tabPages.length] = new PageContenu("Commentaire", "pg636", "c ...@@ -65,13 +70,29 @@ oSco.tabPages[oSco.tabPages.length] = new PageContenu("Commentaire", "pg636", "c
``` ```
Le plus important est l'ID de la page `"pgXXX"`, et éventuellement le type (`"exercice"` ou `"cours"`), le titre de la page étant déclaré aussi dans la page elle-même. Le plus important est l'ID de la page `"pgXXX"`, et éventuellement le type (`"exercice"` ou `"cours"`), le titre de la page étant déclaré aussi dans la page elle-même.
**Données à extraire :**
- Dans le manifest
- [x] ID -> attribut `identifier`
- [x] Titre -> élément `<title>`
- Dans le fichier `MosEtp###.html`
- [~] Titre -> `<title>`
- [x] Liste des pages (titre, ID) -> arguments de `new PageContenu()`
---- ----
### Pages ou activités ## Pages ou activités
Les "unités de navigation". La section centrale de Macao affiche toujours 1 page, dont le nom est indiqué en haut à droite _(ex: "Repérer les syllabes orales")_. Une page contient une "activité", qui peut être un cours (sans saisie interactive) ou un des 4 types d'exercices (`QC, QM, TAT, GD` dans `MosMtr/scripts/contenu/ClasseExercice___.js` + `ClasseCours.js`) ***[À confirmer: autres types de contenus?]***. Elle est décrite dans un fichier `contenu/pages/pg###.html`, qui déclare un objet `Cours` ou `Exercice##` pour définir son contenu. Les "unités de navigation". La section centrale de Macao affiche toujours 1 page, dont le nom est indiqué en haut à droite _(ex: "Repérer les syllabes orales")_. Une page contient une "activité", qui peut être un cours (sans saisie interactive) ou un des 4 types d'exercices (`QC, QM, TAT, GD` dans `MosMtr/scripts/contenu/ClasseExercice___.js` + `ClasseCours.js`) ***[À confirmer: autres types de contenus?]***. Elle est décrite dans un fichier `contenu/pages/pg###.html`, qui déclare un objet `Cours` ou `Exercice___` pour définir son contenu.
**Données à extraire (communes à toutes les activités) :**
- [x] Type d'activité -> premier appel de constructeur `new ___()`
- [x] Commentaires -> éléments `<div id="divCmt___">` dans `<div id="zoneInvisible">`
- Dans les descriptions, commentaires, blocs HTML divers
- [ ] Images -> éléments `<img id="MosImg___">`
- [ ] Objets Flash -> appels de fonction `PF_clipAV(...)`
- [ ] Pages d'aide/docs -> appels de fonction `SCO_ouvrirDoc(...)`
#### Cours ### Cours
Du texte, très souvent des audios, mais parfois aussi des objets Flash spécialisés (voir #11). Du texte, très souvent des audios, mais parfois aussi des objets Flash spécialisés (voir #11).
Quantité: 59 **Quantité :** 59
<details><summary>Exemples</summary> <details><summary>Exemples</summary>
...@@ -81,65 +102,105 @@ Exemple de "cours" avec un **exercice en Flash** : `pg455.html`, première page ...@@ -81,65 +102,105 @@ Exemple de "cours" avec un **exercice en Flash** : `pg455.html`, première page
![Screenshot_2024-05-15_15-57-31](uploads/b967e6b37d1409105e910ea43c786ca3/Screenshot_2024-05-15_15-57-31.png) ![Screenshot_2024-05-15_15-57-31](uploads/b967e6b37d1409105e910ea43c786ca3/Screenshot_2024-05-15_15-57-31.png)
</details> </details>
#### ExerciceQC **Données à extraire :**
- [ ] Contenu du cours (texte/HTML) -> élément `<div id="STY_zoneCours">`
### ExerciceQC
*(Question Choix?)* *(Question Choix?)*
Une question avec plusieurs réponses prédéfinies. Existe en variante QCU (une seule bonne réponse) et QCM (plusieurs bonnes réponses). Une question avec plusieurs réponses prédéfinies. Existe en variante QCU (une seule bonne réponse) et QCM (plusieurs bonnes réponses).
Quantité: 39 QCU, 9 QCM **Quantité :** 39 QCU, 9 QCM
<details><summary>Exemples</summary> <details><summary>Exemples</summary>
**Exemple QCU** : `pg381.html`, la première page de *"> Reconnaître les auxiliaires"* **Exemple QCU** : `pg381.html`, la première page de *"> Reconnaître les auxiliaires"*
![Screenshot_2024-05-15_14-59-01](uploads/bb4795264824c0140f49bb7a2126d5d2/Screenshot_2024-05-15_14-59-01.png) ![Screenshot_2024-05-15_14-59-01](uploads/bb4795264824c0140f49bb7a2126d5d2/Screenshot_2024-05-15_14-59-01.png)
**Exemple QCM** : `pg8412.html`, page *"Vérifier la place de l'accent primaire (3)"* dans la sous-partie *"> Utiliser les marques de l'accentuation"* **Exemple QCM** : `pg8412.html`, page *"Vérifier la place de l'accent primaire (3)"* dans la sous-partie *"> Utiliser les marques de l'accentuation"*
</details>
Il s'avère que les 9 exercices QCM sont tous dans la même sous-partie, et sont utilisés sémantiquement comme plusieurs QCU : Il s'avère que les 9 exercices QCM sont tous dans la même sous-partie, et sont utilisés sémantiquement comme plusieurs QCU :
![Screenshot_2024-05-15_15-22-19](uploads/4be84e866d324dc5205bd1aa0fb808f3/Screenshot_2024-05-15_15-22-19.png) ![Screenshot_2024-05-15_15-22-19](uploads/4be84e866d324dc5205bd1aa0fb808f3/Screenshot_2024-05-15_15-22-19.png)
Dans cet exemple, on a 3 mots ayant chacun 3 réponses possibles dont 1 bonne, mais l'exercice est implémenté comme un QCM de 9 choix possibles ; on peut tout à fait cocher les 3 choix pour "narrator". Dans cet exemple, on a 3 mots ayant chacun 3 réponses possibles dont 1 bonne, mais l'exercice est implémenté comme un QCM de 9 choix possibles ; on peut tout à fait cocher les 3 choix pour "narrator".
</details>
**Données à extraire :**
- [ ] Consigne -> `<div id="STY_question">`
- [ ] Choix de réponses
- [x] Correction -> dans la fonction `entrerDonnees()`, `exo.tabStylesR[nr] = CODE_V` ou `CODE_F` pour chaque valeur de `nr`
- [x] Commentaires de succès et d'échec -> `divCmtSucces` et `divCmtSugg#` *(cf. commentaires d'activité)*
#### ExerciceQM ### ExerciceQM
*(Question Multiple?)* *(Question Multiple?)*
Comme ExerciceQC mais avec plusieurs questions, chacune ayant une seule bonne réponse. Comme ExerciceQC mais avec plusieurs questions, chacune ayant une seule bonne réponse.
Quantité: 8 **Quantité :** 8
<details><summary>Exemple</summary> <details><summary>Exemple</summary>
`pg262.html`, la toute première page de Macao 1 `pg262.html`, la toute première page de Macao 1
![Screenshot_2024-05-15_14-56-47](uploads/59667940add90fb4f94f55cdb370be6b/Screenshot_2024-05-15_14-56-47.png) ![Screenshot_2024-05-15_14-56-47](uploads/59667940add90fb4f94f55cdb370be6b/Screenshot_2024-05-15_14-56-47.png)
</details> </details>
#### ExerciceTAT **Données à extraire :**
- [ ] Consigne -> `<div id="STY_question">`
- [ ] Choix de réponses -> tableau dans `<div id="STY_texteQM">`, chaque ligne (`<tr>`) est une question, chaque cellule de colonne (`<td>`) est une case à cocher. Son `id` indique aussi ses coordonnées (ex: `id="lienRepImg13"` = ligne 1 choix 3)
- [ ] Correction -> dans la fonction `entrerDonnees()`, `exo.tabStylesR[nr] = '3'` indiquent le numéro du choix correct pour chaque numéro de ligne `nr`
- [x] Commentaires de succès et d'échec -> `divCmtSucces` et `divCmtSugg#` *(cf. commentaires d'activité)*
### ExerciceTAT
Un texte à trous, avec pour chaque "trou" une liste déroulante de choix de mots. Un texte à trous, avec pour chaque "trou" une liste déroulante de choix de mots.
Quantité: 12 **Quantité :** 12
<details><summary>Exemple</summary> <details><summary>Exemple</summary>
`pg20.html`, page _"Ecoutez et complétez (2)"_ dans la sous-partie _"> Reconnaître les déterminants"_ `pg20.html`, page _"Ecoutez et complétez (2)"_ dans la sous-partie _"> Reconnaître les déterminants"_
![Screenshot_2024-05-15_15-40-29](uploads/23944659726f54961ea79cb4e87d2772/Screenshot_2024-05-15_15-40-29.png) ![Screenshot_2024-05-15_15-40-29](uploads/23944659726f54961ea79cb4e87d2772/Screenshot_2024-05-15_15-40-29.png)
</details> </details>
#### ExerciceGD **Données à extraire :**
- [ ] Consigne -> `<div id="STY_question">`
- [ ] Texte avec position des "trous" -> contenu dans `<div id="STY_texteTAT">`.
Chaque trou est un élément `<select class="STY_selectTAT" id="champTrou#">` et son numéro est indiqué dans l'`id`.
- [ ] Choix pour chaque trou et correction -> appels `exo.ajouterReponse(index, correction, valeur)`.
Paramètre "correction" = `ng` pour faux, `nw` pour juste.
- [x] Commentaires de succès et d'échec -> `divCmtSucces` et `divCmtSugg#` *(cf. commentaires d'activité)*
### ExerciceGD
*(Glisser-Déposer ?)* *(Glisser-Déposer ?)*
Le plus complexe, avec des objets à glisser et placer librement ou dans des cases. Le plus complexe, avec des objets à glisser et placer librement ou dans des cases.
Quantité: 5 **Quantité :** 5
<details><summary>Exemple</summary> <details><summary>Exemple</summary>
`pg545.html`, page _"Compléter une transcription (1)"_ dans _"> Utiliser les symboles phonétiques"_ `pg545.html`, page _"Compléter une transcription (1)"_ dans _"> Utiliser les symboles phonétiques"_
![Screenshot_2024-05-15_15-51-35](uploads/4c4963cf1ea6c82296d9f2022b9a712a/Screenshot_2024-05-15_15-51-35.png) ![Screenshot_2024-05-15_15-51-35](uploads/4c4963cf1ea6c82296d9f2022b9a712a/Screenshot_2024-05-15_15-51-35.png)
</details> </details>
#### Inutilisés **Données à extraire :**
- [ ] Consigne -> `<div id="STY_question">`
- [ ] Éléments à déplacer -> éléments `<div id="exoGDd#">` (le `d` est pour *déplaçable*, et est suivi de son numéro/ID)
- [ ] Cibles de déplacement -> éléments `<div id="exoGDc#">` (le `c` est pour *cible*, suivi aussi de son numéro/ID)
- [ ] Correction -> liste de `new PaireGD(deplacable, cible, correct, decalageX, decalageY)` indiquent pour chaque déplaçable sa cible associée et si il est juste (`ng` = faux, `nw` = juste).
- [ ] Positions de tous les éléments -> offsets CSS `absolute`, sûrement à refaire manuellement.
- [x] Commentaires de succès et d'échec -> `divCmtSucces` et `divCmtSugg#` *(cf. commentaires d'activité)*
### Inutilisés
ExerciceCURS, ExerciceEXP, ExerciceSEQ ExerciceCURS, ExerciceEXP, ExerciceSEQ
---- ----
### Pages d'aide ou "docs" ## Pages d'aide ou "docs"
Dans `contenu/pages/`, les fichiers `*.htm` et `pgd###.html` sont des pages d'aide. Au lieu d'être chargées dans la section centrale, elles peuvent être ouvertes dans une nouvelle fenêtre pop-up avec la fonction `SCO_ouvrirDoc()`, souvent appelée depuis un lien `<a>` dans les pages classiques. Dans `contenu/pages/`, les fichiers `*.htm` et `pgd###.html` sont des pages d'aide. Au lieu d'être chargées dans la section centrale, elles peuvent être ouvertes dans une nouvelle fenêtre pop-up avec la fonction `SCO_ouvrirDoc()`, souvent appelée depuis un lien `<a>` dans les pages classiques.
```html ```html
cliquez pour voir la définition d'un <a href="javascript:parent.SCO_ouvrirDoc('pgd171','PAGE')">phonème</a> cliquez pour voir la définition d'un <a href="javascript:parent.SCO_ouvrirDoc('pgd171','PAGE')">phonème</a>
``` ```
Ces pages peuvent inclure des objets Flash comme les autres, mais pas d'exercice. Ces pages peuvent inclure des objets Flash comme les autres, mais pas d'exercice.
### Contenus des pages ## Contenus des pages
#### Commentaires ### Commentaires
Certains exercices ont des commentaires, des blocs HTML structurés chargés dans une `<div id="zoneInvisible">`, qui sont déplacés dans la `<div id="STY_zoneCommentaire">` à droite en réponse à certaines actions. Certains exercices ont des commentaires, des blocs HTML structurés chargés dans une `<div id="zoneInvisible">`, qui sont déplacés dans la `<div id="STY_zoneCommentaire">` à droite en réponse à certaines actions.
- Commentaire de succès : `<div id="divCmtSucces">` - Commentaire de succès : `<div id="divCmtSucces">`
- Commentaire d'échec : `<div id="divSugg#">`, numérotés à partir de 1 - Commentaire d'échec : `<div id="divSugg#">`, numérotés à partir de 1
...@@ -147,16 +208,16 @@ Certains exercices ont des commentaires, des blocs HTML structurés chargés dan ...@@ -147,16 +208,16 @@ Certains exercices ont des commentaires, des blocs HTML structurés chargés dan
:warning: Les commentaires **peuvent contenir de la mise en forme et des objets Flash** (peut-être même des images ?) :warning: Les commentaires **peuvent contenir de la mise en forme et des objets Flash** (peut-être même des images ?)
#### Images ### Images
Les images intégrées dans le contenu d'une page sont reconnaissables par un `id="MosImg###`, à la différence de celles utilisées pour l'UI (boutons). Leur chemin est toujours dans `contenu/media/`. Les images intégrées dans le contenu d'une page sont reconnaissables par un `id="MosImg###`, à la différence de celles utilisées pour l'UI (boutons). Leur chemin est toujours dans `contenu/media/`.
```html ```html
<img id="MosImg17" src="../media/phon_recognition_54_juste.png"> <img id="MosImg17" src="../media/phon_recognition_54_juste.png">
``` ```
#### Objets Flash et audio ### Objets Flash et audio
TODO TODO
---- ----
## Dans Macao 3 # Dans Macao 3
TODO TODO
\ No newline at end of file