« Dyris » : différence entre les versions

Aller à la navigation Aller à la recherche
 
(6 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :


Site officiel : http://dyris.free.fr/
Site officiel : http://dyris.free.fr/
version disponible au 19/02/2018 : dyris 20.4
* version disponible au 24/02/2021 : dyris 23


Cet outil utilise JavaScript pour rendre le QCM dynamique.
Cet outil utilise JavaScript pour rendre le QCM dynamique.
== Migration d'un QCM de la version 16 vers la version 23 ==
=== Fichier de données (donnees.js) ===
{| class="wikitable"
|-
! Version 16          !! Version 23            !! Observation
|-
| <code>mode_theme("1");</code>    || <code>mode_presentation("1");</code> ||
|-
| <code>mode_question("1");</code> || <code>mode_evaluation("1");</code>  ||
|}


== Amélioration souhaitée ==
== Amélioration souhaitée ==
Utilisant la version dyris 20.4, voici des améliorations suggérées :
* faire en sorte que la zone d'illustration soit de taille fixe ;
* faire en sorte que la zone d'illustration soit de taille fixe ;
* faire en sorte que les boutons soient toujours à la même place :
* faire en sorte que les boutons soient toujours à la même place :
Ligne 15 : Ligne 29 :
* proposer une mise en forme adaptative (écran large, écran étroit, écran de smartphone...).
* proposer une mise en forme adaptative (écran large, écran étroit, écran de smartphone...).


== Amélioration effectuée ==
== Amélioration effectuée sur la version 16 ==
Astuce pour que les sélections sur les cases à cocher et sur les boutons radios soit plus pratique ; un clic sur le libellé agit sur l'élément :
Astuce pour que les sélections sur les cases à cocher et sur les boutons radios soit plus pratique ; un clic sur le libellé agit sur l'élément :
* ajout de la balise <code><label></code> pour encadrer le code de la balise <code><input></code>
* ajout de la balise <code><label></code> pour encadrer le code de la balise <code><input></code>
 
----
Code avant modification, fichier <code>vue.js</code>, ligne 50, page d'affichage des thèmes :
Code avant modification, fichier <code>vue.js</code>, ligne 50, page d'affichage des thèmes :
<source lang="javascript">
<source lang="javascript">
Ligne 41 : Ligne 55 :


Code après modification, fichier <code>vue.js</code>, ligne 50, page d'affichage des thèmes :
Code après modification, fichier <code>vue.js</code>, ligne 50, page d'affichage des thèmes :
<pre>
<source lang="javascript">
function afficher_themes() {
function afficher_themes() {
       ...
       ...
Ligne 58 : Ligne 72 :
         ch+='>&nbsp;'+mod.th[i].titre+'</label><br />';
         ch+='>&nbsp;'+mod.th[i].titre+'</label><br />';
         ...
         ...
</pre>
</source>
 
----
Code avant modification, fichier <code>vue.js</code>, ligne 68, fonction d'affichage du nombre de questions :
Code avant modification, fichier <code>vue.js</code>, ligne 68, fonction d'affichage du nombre de questions :
<pre>
<source lang="javascript">
function afficher_nb_questions() {
function afficher_nb_questions() {
   var ch='<div class="cadre"><h2>'+txt.titre[1]+'</h2>';
   var ch='<div class="cadre"><h2>'+txt.titre[1]+'</h2>';
Ligne 73 : Ligne 87 :
   return ch;
   return ch;
}
}
</pre>
</source>


Code après modification, fichier <code>vue.js</code>, ligne 68, fonction d'affichage du nombre de questions :
Code après modification, fichier <code>vue.js</code>, ligne 68, fonction d'affichage du nombre de questions :
<pre>
<source lang="javascript">
function afficher_nb_questions() {
function afficher_nb_questions() {
   var ch='<div class="cadre"><h2>'+txt.titre[1]+'</h2>';
   var ch='<div class="cadre"><h2>'+txt.titre[1]+'</h2>';
Ligne 88 : Ligne 102 :
   return ch;
   return ch;
}
}
</pre>
</source>
 
----
Code avant modification, fichier <code>vue.js</code>, ligne 122, fonction d'affichage des questions :
Code avant modification, fichier <code>vue.js</code>, ligne 122, fonction d'affichage des questions :
<pre>
<source lang="javascript">
   if (mod.th[a].quest[b].type=="cases a cocher") {
   if (mod.th[a].quest[b].type=="cases a cocher") {
       var k=0;
       var k=0;
Ligne 100 : Ligne 114 :
       }
       }
   }
   }
</pre>
</source>


Code après modification, fichier <code>vue.js</code>, ligne 122, fonction d'affichage des questions et cases à cocher :
Code après modification, fichier <code>vue.js</code>, ligne 122, fonction d'affichage des questions et cases à cocher :
<pre>
<source lang="javascript">
   if (mod.th[a].quest[b].type=="cases a cocher") {
   if (mod.th[a].quest[b].type=="cases a cocher") {
       var k=0;
       var k=0;
Ligne 112 : Ligne 126 :
       }
       }
   }
   }
</pre>
</source>
 
----
Code avant modification, fichier <code>vue.js</code>, ligne 143, fonction d'affichage des questions et boutons radios :
'''Code avant modification''', fichier <code>vue.js</code>, ligne 143, fonction d'affichage des questions et boutons radios :
<pre>
<source lang="javascript">
       for (i=0;i<c;i++) {
       for (i=0;i<c;i++) {
         ch+='<input type="radio" name="ch_rep">&nbsp;&nbsp;';
         ch+='<input type="radio" name="ch_rep">&nbsp;&nbsp;';
         ch+=mod.th[a].quest[b].rep[i].enonce+'<br />';
         ch+=mod.th[a].quest[b].rep[i].enonce+'<br />';
       }
       }
</pre>
</source>


Code après modification, fichier <code>vue.js</code>, ligne 143, fonction d'affichage des questions et boutons radios :
'''Code après modification''', fichier <code>vue.js</code>, ligne 143, fonction d'affichage des questions et boutons radios :
<pre>
<source lang="javascript">
       for (i=0;i<c;i++) {
       for (i=0;i<c;i++) {
         ch+='<label><input type="radio" name="ch_rep">&nbsp;&nbsp;';
         ch+='<label><input type="radio" name="ch_rep">&nbsp;&nbsp;';
         ch+=mod.th[a].quest[b].rep[i].enonce+'</label><br />';
         ch+=mod.th[a].quest[b].rep[i].enonce+'</label><br />';
       }
       }
</pre>
</source>
 
== Voir aussi ==
* [[QCM]]


[[Catégorie:Logiciel]]
[[Catégorie:Logiciel]]
[[Catégorie:HTML]]
[[Catégorie:HTML]]
[[Catégorie:QCM]]
[[Catégorie:Dyris]]

Dernière version du 12 février 2023 à 18:59

Dyris est un outil pour créer des QCM (questionnaire à choix multiples) en ligne.

Site officiel : http://dyris.free.fr/

  • version disponible au 24/02/2021 : dyris 23

Cet outil utilise JavaScript pour rendre le QCM dynamique.

Migration d'un QCM de la version 16 vers la version 23

Fichier de données (donnees.js)

Version 16 Version 23 Observation
mode_theme("1"); mode_presentation("1");
mode_question("1"); mode_evaluation("1");

Amélioration souhaitée

Utilisant la version dyris 20.4, voici des améliorations suggérées :

  • faire en sorte que la zone d'illustration soit de taille fixe ;
  • faire en sorte que les boutons soient toujours à la même place :
    • Le bouton validé à un emplacement fixe,
    • les boutons "Je ne sais pas" et "Suivant" à la même place,
    • le bouton "Arrêter" à un emplacement fixe,
  • lorsque la solution est affichée, afficher, s'il y en a une, l'image correspondant à la solution ;
  • proposer une mise en forme adaptative (écran large, écran étroit, écran de smartphone...).

Amélioration effectuée sur la version 16

Astuce pour que les sélections sur les cases à cocher et sur les boutons radios soit plus pratique ; un clic sur le libellé agit sur l'élément :

  • ajout de la balise <label> pour encadrer le code de la balise <input>

Code avant modification, fichier vue.js, ligne 50, page d'affichage des thèmes :

function afficher_themes() {
      ...
      for (i=0;i<mod.th.length;i++) {
         ch+='<input type="checkbox" name="case'+i+'" onclick="p1_choisir_themes();"';
         if (mod.th[i].choisi=="oui") ch+=' checked';
         ch+='>&nbsp;&nbsp;'+mod.th[i].titre+'<br>';
      }
      ch+='<input type="checkbox" name="tous" onclick="p1_choisir_themes();">&nbsp;&nbsp;'+txt.mot[0];
   }
   else {
      ch+='<input type="radio" name="ch_th" checked>&nbsp;&nbsp;'+mod.th[0].titre+'<br>';
      for (i=1;i<mod.th.length;i++) {
         ch+='<input type="radio" name="ch_th"';
         if (mod.th[i].choisi=="oui") ch+=' checked';
         ch+='>&nbsp;&nbsp;'+mod.th[i].titre+'<br>';
      }
   }

Code après modification, fichier vue.js, ligne 50, page d'affichage des thèmes :

function afficher_themes() {
      ...
      for (i=0;i<mod.th.length;i++) {
         ch+='<label><input type="checkbox" name="case'+i+'" onclick="p1_choisir_themes();"';
         if (mod.th[i].choisi=="oui") ch+=' checked';
         ch+='>&nbsp;'+mod.th[i].titre+'</label><br />';
      }
      ch+='<label><input type="checkbox" name="tous" onclick="p1_choisir_themes();">&nbsp;'+txt.mot[0]+'</label>';
   }
   else {
      ch+='<label><input type="radio" name="ch_th" checked>&nbsp;&nbsp;'+mod.th[0].titre+'<br />';
      for (i=1;i<mod.th.length;i++) {
         ch+='<input type="radio" name="ch_th"';
         if (mod.th[i].choisi=="oui") ch+=' checked';
         ch+='>&nbsp;'+mod.th[i].titre+'</label><br />';
         ...

Code avant modification, fichier vue.js, ligne 68, fonction d'affichage du nombre de questions :

function afficher_nb_questions() {
   var ch='<div class="cadre"><h2>'+txt.titre[1]+'</h2>';
   ch+='<input type="radio" name="ch_nb" checked>&nbsp;&nbsp;'+opt.nb_questions[0]+' '+txt.mot[1]+'<br />';
   for (var i=1;i<opt.nb_questions.length;i++) {
      ch+='<input type="radio" name="ch_nb"';
      if (cont.nb_quest_choisi==opt.nb_questions[i]) ch+=' checked';
      ch+='>&nbsp;&nbsp;'+opt.nb_questions[i]+' '+txt.mot[1]+'<br />';
   }
   ch+='</div>';
   return ch;
}

Code après modification, fichier vue.js, ligne 68, fonction d'affichage du nombre de questions :

function afficher_nb_questions() {
   var ch='<div class="cadre"><h2>'+txt.titre[1]+'</h2>';
   ch+='<label><input type="radio" name="ch_nb" checked>&nbsp;&nbsp;'+opt.nb_questions[0]+' '+txt.mot[1]+'</label><br />';
   for (var i=1;i<opt.nb_questions.length;i++) {
      ch+='<label><input type="radio" name="ch_nb"';
      if (cont.nb_quest_choisi==opt.nb_questions[i]) ch+=' checked';
      ch+='>&nbsp;&nbsp;'+opt.nb_questions[i]+' '+txt.mot[1]+'</label><br />';
   }
   ch+='</div>';
   return ch;
}

Code avant modification, fichier vue.js, ligne 122, fonction d'affichage des questions :

   if (mod.th[a].quest[b].type=="cases a cocher") {
      var k=0;
      for (i=0;i<c;i++) {
         k=num[i];
         ch+='<input type="checkbox" name="case'+k+'">&nbsp;&nbsp;';
         ch+=mod.th[a].quest[b].rep[k].enonce+'<br />';
      }
   }

Code après modification, fichier vue.js, ligne 122, fonction d'affichage des questions et cases à cocher :

   if (mod.th[a].quest[b].type=="cases a cocher") {
      var k=0;
      for (i=0;i<c;i++) {
         k=num[i];
         ch+='<label><input type="checkbox" name="case'+k+'">&nbsp;&nbsp;';
         ch+=mod.th[a].quest[b].rep[k].enonce+'</label><br />';
      }
   }

Code avant modification, fichier vue.js, ligne 143, fonction d'affichage des questions et boutons radios :

      for (i=0;i<c;i++) {
         ch+='<input type="radio" name="ch_rep">&nbsp;&nbsp;';
         ch+=mod.th[a].quest[b].rep[i].enonce+'<br />';
      }

Code après modification, fichier vue.js, ligne 143, fonction d'affichage des questions et boutons radios :

      for (i=0;i<c;i++) {
         ch+='<label><input type="radio" name="ch_rep">&nbsp;&nbsp;';
         ch+=mod.th[a].quest[b].rep[i].enonce+'</label><br />';
      }

Voir aussi