Update Concepts et objets de MACAO authored by Eliott Sammier's avatar Eliott Sammier
......@@ -10,14 +10,14 @@ Cette page décrit la structure de Macao-Legacy et l'emplacement des données de
# Dans Macao 1 et 2 :
![Macao_12_concepts_annotation](uploads/5b30aec165b2f85bf18735f72fb6f9e3/Macao_12_concepts_annotation.png)
![Macao_12_concepts_annotation](uploads/3d911416917cd59c2e27ae0ca0c80309/Screenshot_2024-08-15_17-17-18.png)
![class_diagram.drawio.svg](uploads/a8e9b401c9a8d8b1927ee88b2b00f4b4/class_diagram.drawio.svg)
---
## 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")_, qui elles-mêmes peuvent contenir d'autres (sous-)parties. Côté code, une partie a la même représentation qu'un module, c'est un élément sans contenu propre, décrit seulement dans le manifeste [`imsmanifest.xml`](https://gitlab.tetras-libre.fr/macao/macao-legacy/-/blob/main/Basilisk/MACAO/macao_12/imsmanifest.xml)
<details>
<summary>Exemple XML</summary>
......@@ -65,7 +65,7 @@ Un module contient une ou plusieurs parties _(ex: "Reconnaître les syllabes")_.
## 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.
On appelle sous-parties les parties de dernier niveau, les "feuilles" de l'arborescence. Dans le panneau de gauche, ce sont les éléments non dépliables _(ex: "Reconnaître les syllabes en anglais oral")_. Une sous-partie contient plusieurs **activités**, 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
oSco = new MosSCO("MosEtp129", "> Reconnaître les syllabes en anglais oral", "MACAO", "MACAO 1 - S'entraîner à la reconnaissance", "", "macao_fusion_ss_barre", "fr");
......@@ -83,7 +83,7 @@ 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 `"pg###"`, 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 :**
......@@ -96,16 +96,16 @@ Le plus important est l'ID de la page `"pgXXX"`, et éventuellement le type (`"e
---
## Pages ou activités
## Activités, ou pages
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 activité, dont le nom est indiqué en haut à droite _(ex: "Repérer les syllabes orales")_. Une activité 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`). 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](#commentaires) -\> éléments `<div id="divCmt___">` dans `<div id="zoneInvisible">`
- [ ] Dans les descriptions, commentaires, blocs HTML divers
- [ ] [Images](#images) -\> éléments `<img id="MosImg___">`
- [ ] [Images](#images) -\> éléments `<img id="MosImg###">`
- [ ] Objets Flash -\> appels de fonction `PF_clipAV(...)`
- [ ] Pages d'aide/docs -\> appels de fonction `SCO_ouvrirDoc(...)`
......@@ -143,7 +143,7 @@ Une question avec plusieurs réponses prédéfinies. Existe en variante QCU (une
**Exemple QCM** : `pg8412.html`, page _"Vérifier la place de l'accent primaire (3)"_ dans la sous-partie _"\> Utiliser les marques de l'accentuation"_
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)\
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". C'est un exemple de cas particulier étrange qui devra être corrigé manuellement.
</details>
......
......