Changeset 64727 in spip-zone


Ignore:
Timestamp:
Aug 12, 2012, 11:17:36 AM (9 years ago)
Author:
patfr@…
Message:

QCM/QRM : prendre en compte les question valant explicitement zero points

Location:
_plugins_/jeux
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/jeux/branches/jeux2/jeux/qcm.php

    r55431 r64727  
    11<?php
     2if (!defined("_ECRIRE_INC_VERSION")) return;
    23#---------------------------------------------------#
    34#  Plugin  : jeux                                   #
     
    8687        $li = trim($ligne);
    8788    switch($li[0]){
    88       case 'Q' :                // On extrait la question
     89      case 'Q' :                // extraire la question
    8990                $qcms[$indexQCM]['question'] = trim(substr($li, 1));
    90                 $qcms[$indexQCM]['maxscore'] = 0;
    91                 $qcms['nbquestions']++;
     91                $qcms[$indexQCM]['maxScore'] = 0;
     92                $qcms['nbQuestions']++;
    9293        break;
    93       case 'P' :                // On extrait une proposition
     94      case 'P' :                // extraire une proposition
    9495                // Pour les precisions de la proposition...
    9596                list($reponse, $precision)=explode("|", $li, 2);
    96                 // On extrait le numero de la proposition et son contenu
     97                // extraire le numero de la proposition et son contenu
    9798                preg_match(',^P(\d*)(.*)$,', $reponse, $regs); 
    9899                $indexProposition = intval($regs[1]);
    99100                $suiteProposition = trim($regs[2]);
    100101                $qcms[$indexQCM]['nbpropositions']++;
    101         // On extrait les points eventuellement associes a chaque reponse
     102        // extraire les points eventuellement associes a chaque reponse
    102103        if(preg_match(',^\.(-?\d+)(.*)$,', $suiteProposition, $regs)){
    103104          $qcms[$indexQCM]['points'][$indexProposition] = intval($regs[1]);
    104105          $qcms[$indexQCM]['propositions'][$indexProposition] = trim($regs[2]);
     106          $qcms['pointsTrouves'] = 1;
    105107        } else {
    106           $qcms[$indexQCM]['points'][$indexProposition] = 0;
     108          $qcms[$indexQCM]['points'][$indexProposition] = false;
    107109          $qcms[$indexQCM]['propositions'][$indexProposition] = $suiteProposition;
    108110        }
     
    111113                // cas d'un trou (ou d'une proposition non numerotee !)
    112114                if ($indexProposition==0) {
    113                         $qcms[$indexQCM]['maxscore'] = $qcms[$indexQCM]['points'][0] = max($qcms[$indexQCM]['points'][0], 1);
     115                        $qcms[$indexQCM]['maxScore'] = $qcms[$indexQCM]['points'][0] =
     116                                $qcms[$indexQCM]['points'][0]===false?1:$qcms[$indexQCM]['points'][0];
    114117                        $qcms[$indexQCM]['propositions'] = jeux_liste_mots($qcms[$indexQCM]['propositions'][0]);
    115118                        $qcms[$indexQCM]['nbpropositions'] = 1;
    116119                }
    117120                break;
    118       case 'R' :                // On recupere le numero et les points de la bonne reponse
     121      case 'R' :                // recuperer le numero et les points de la bonne reponse
    119122                // total des points des bonnes reponses
    120                 $qcms[$indexQCM]['maxscore'] = 0;
     123                $qcms[$indexQCM]['maxScore'] = 0;
    121124                // parcours des bonnes reponses
    122125                $t = preg_split(',\s+R,', ' '.$li);
     
    125128                        $qcms[$indexQCM]['bonnesreponses'][$indexBonneReponse]=1;
    126129                        // au cas ou les points ne sont pas specifies pour la bonne reponse
    127                         if ($qcms[$indexQCM]['points'][$indexBonneReponse]==0) $qcms[$indexQCM]['points'][$indexBonneReponse] = 1;
     130                        if ($qcms[$indexQCM]['points'][$indexBonneReponse]===false) $qcms[$indexQCM]['points'][$indexBonneReponse] = 1;
    128131                        // reponse unique : recherche du plus grand score attribue aux bonnes reponses
    129132                        // reponses multiples : addition de tous les scores attribues aux bonnes reponses
    130133                        $p = $qcms[$indexQCM]['points'][$indexBonneReponse];
    131                         if (!$isQRM) $qcms[$indexQCM]['maxscore'] = max($qcms[$indexQCM]['maxscore'], $p);
    132                         elseif($p>0) $qcms[$indexQCM]['maxscore'] += $p;
     134                        if (!$isQRM) $qcms[$indexQCM]['maxScore'] = max($qcms[$indexQCM]['maxScore'], $p);
     135                        elseif($p>0) $qcms[$indexQCM]['maxScore'] += $p;
    133136                }
    134137                // les reponses fausses deviennent negatives dans le cas de reponses multiples
    135                 if ($isQRM) foreach($qcms[$indexQCM]['points'] as $p=>$v) if ($v==0) $qcms[$indexQCM]['points'][$p] = -1;
     138                if ($isQRM) foreach($qcms[$indexQCM]['points'] as $p=>$v) if ($v===false) $qcms[$indexQCM]['points'][$p] = -1;
    136139                break;
    137140
     
    142145
    143146function qcm_les_points($phrase, $points, $veto=false) {
    144         if (!jeux_config('points') || $veto) return $phrase;
     147        if (!jeux_config('points') || $veto || $points===false) return $phrase;
    145148    $pointsHTML = '<span class="jeux_points"> ('.$points. _T('jeux:point'.(abs($points)>1?'s':'')).')</span>';
    146149        if (preg_match(',( ?: *)$,', $phrase, $regs))
     
    162165  global $qcms, $qcm_score, $qcm_score_detaille;
    163166  $indexQCM_1 = $indexQCM + 1;
    164   if (!$qcms[$indexQCM]['nbpropositions'] || !$qcms[$indexQCM]['maxscore'])
     167  if (!$qcms[$indexQCM]['nbpropositions'] || !$qcms[$indexQCM]['maxScore'])
    165168        return "<div class=\"jeux_question\">".definir_puce()._T('jeux:erreur_syntaxe').'</div>';
    166169
     
    174177  // affichage des points dans la question
    175178  if ($gestionPoints) {
    176     $pointsQ = $qcms[$indexQCM]['maxscore'];
     179    $pointsQ = $qcms[$indexQCM]['maxScore'];
    177180        $question = qcm_les_points($question, $pointsQ);
    178181  } else $pointsQ = 1;
     
    191194                                . $valeur.'</label>'
    192195                                . ($i % $nbcol?' &nbsp; ':'<br />');
    193         // S'il y a trop de choix, on utilise une liste a la place des boutons radio
     196        // S'il y a trop de choix, utiliser une liste a la place des boutons radio
    194197        } elseif ($qcms[$indexQCM]['nbpropositions']>jeux_config('max_radios')) {
    195198                $codeHTML.='<select name="'.$nomVarSelect.'" class="qcm_select"><option value="">'._T('jeux:votre_choix').'</option>';
     
    207210    }   // fin du cas sans correction
    208211
    209   // Sinon on affiche la correction
     212  // Sinon afficher la correction
    210213  else {
    211214         $reponse = $_POST[$nomVarSelect];
     
    216219                $affiche_correction = jeux_config('corrections');
    217220                // les points de la reponse donnee...
    218                 $pointsR = 0;
    219                 if (is_array($reponse)) foreach($reponse as $r) $pointsR += $qcms[$indexQCM]['points'][$r]>0?$qcms[$indexQCM]['points'][$r]:0;
    220                 else $pointsR = $qcms[$indexQCM]['points'][$trou?0:$reponse];
     221                $pointsR = false;
     222                if (is_array($reponse)) {
     223                        foreach($reponse as $r)
     224                                if(($p=$qcms[$indexQCM]['points'][$r])!==false) $pointsR += $p;
     225                } else {
     226                        if(($p=$qcms[$indexQCM]['points'][$trou?0:$reponse])!==false) $pointsR += $p;
     227                }
    221228
    222229                $intro=$trou?_T('jeux:votre_reponse'):_T('jeux:votre_choix');
     
    226233                        // la reponse donnee & precision des points eventuels de la mauvaise reponse...
    227234                        $codeHTML.='<div class="qcm_reponse">'
    228                                  .((($pointsR==$pointsQ) || ($pointsR==0))?$intro:qcm_les_points($intro, $pointsR, !$affiche_correction))
     235                                 .($pointsR===$pointsQ?$intro:qcm_les_points($intro, $pointsR, !$affiche_correction))
    229236                                 .($trou?$reponse:$qcms[$indexQCM]['propositions'][$reponse])
    230237                                 .'</div>';
     
    234241                                || ($qcms[$indexQCM]['bonnesreponses'][$reponse]==1);
    235242
    236                         // si ce n'est pas un trou, on donne les points de la reponse quoiqu'il arrive
     243                        // si ce n'est pas un trou, donner les points de la reponse quoiqu'il arrive
    237244                        if (!$trou || $bonneReponse) $qcm_score += $pointsR;
    238                         // on renseigne le resultat detaille
     245                        // renseigner le resultat detaille
    239246                        $qcm_score_detaille[] = $trou?"T$indexQCM_1:$reponse:".($bonneReponse?$pointsR:'0')
    240247                                :"Q$indexQCM_1:R$reponse:$pointsR";
     
    260267                        $bonneReponse = $qcms[$indexQCM]['bonnesreponses'][$r]==1;
    261268       
    262                         // on donne les points de la reponse quoiqu'il arrive
     269                        // donner les points de la reponse quoiqu'il arrive
    263270                        $qcm_score += $qcms[$indexQCM]['points'][$r];
    264                         $qcm_score_detaille[] = "Q$indexQCM_1:R$r:".$qcms[$indexQCM]['points'][$r];
     271                        $qcm_score_detaille[] = "Q$indexQCM_1:R$r:".intval($qcms[$indexQCM]['points'][$r]);
    265272                        $qrm_score += $qcms[$indexQCM]['points'][$r];
    266273                               
     
    281288        }
    282289
    283         // on affiche les bonnes reponses si la configuration l'autorise
     290        // afficher les bonnes reponses si la configuration l'autorise
    284291        if (jeux_config('solution')) {
    285292                if (!$qrm && !$bonneReponse) {
    286                 // on s'occupe d'abord des qcm et des trous
     293                // s'occuper d'abord des qcm et des trous
    287294                        $codeHTML.='<div class="qcm_reponse">'._T('jeux:bonneReponse').'&nbsp;';
    288295                        if ($trou) $codeHTML.="'".join("' "._T('info_ou')."' ", $qcms[$indexQCM]['propositions'])."'";
     
    297304                        }
    298305                        $codeHTML.='</div>';
    299                 } elseif($qrm && $qrm_score<>$qcms[$indexQCM]['maxscore']) {
    300                 // on s'occupe ensuite des qrm
     306                } elseif($qrm && $qrm_score<>$qcms[$indexQCM]['maxScore']) {
     307                // s'occuper ensuite des qrm
    301308                        $temp=array();
    302309                        foreach($qcms[$indexQCM]['bonnesreponses'] as $i=>$val) {
     
    338345  $qcms = array(); $indexQCM = $qcm_score = 0;
    339346  $qcm_score_detaille = array();
    340   $qcms['nbquestions'] = $qcms['totalscore'] = $qcms['totalpropositions'] = 0;
     347  $qcms['pointsTrouves'] = $qcms['nbQuestions'] = $qcms['totalScore'] = $qcms['totalPropositions'] = 0;
    341348  $titre = $horizontal = $vertical = $solution = $html = $categ_score = false;
    342349  $id_jeu = _request('id_jeu');
     
    349356                // remplacement des qcm par : <ATTENTE_QCM>ii</ATTENTE_QCM>
    350357                $html .= "<ATTENTE_QCM>$indexQCM</ATTENTE_QCM>";
    351                 // On analyse le QCM
     358                // analyser le QCM
    352359                qcm_analyse_le_qcm($tableau[$i+1], $indexQCM, $valeur==_JEUX_QRM);
    353             $qcms['totalpropositions'] +=  count($qcms[$indexQCM]['propositions']);
    354         $qcms['totalscore'] +=  $qcms[$indexQCM]['maxscore'];
     360            $qcms['totalPropositions'] +=  count($qcms[$indexQCM]['propositions']);
     361        $qcms['totalScore'] +=  $qcms[$indexQCM]['maxScore'];
    355362                $indexQCM++;
    356363          }
     
    359366  }
    360367
    361   // si un qrm a ete insere ou si certaines questions ne valent pas 1 point, on affiche les points
    362   $gestionPoints = $qcms['qrm'] || ($qcms['totalscore']<>$qcms['nbquestions']);
     368  // si un qrm a ete insere ou si certaines questions ne valent pas 1 point, afficher les points
     369  $gestionPoints = $qcms['qrm'] || $qcms['pointsTrouves'];
    363370
    364371  // reinserer les qcms mis en forme
     
    374381        }
    375382  } else {
    376         $pied = jeux_afficher_score($qcm_score, $qcms['totalscore'], $id_jeu, join(', ', $qcm_score_detaille), $categ_score);
     383        $pied = jeux_afficher_score($qcm_score, $qcms['totalScore'], $id_jeu, join(', ', $qcm_score_detaille), $categ_score);
    377384        if($form) $pied .= jeux_bouton(jeux_config('bouton_refaire'), $id_jeu, $indexJeux);
    378385  }
    379   // ajout du javascript si on doit afficher une par une
     386  // ajout du javascript s'il faut afficher une par une
    380387  if (jeux_config('une_par_une'))
    381388        $js = '<script type="text/javascript">qcm_affichage_une_par_une();</script>';
  • _plugins_/jeux/branches/jeux2/paquet.xml

    r61782 r64727  
    22        prefix="jeux"
    33        categorie="divers"
    4         version="2.4.1"
     4        version="2.4.2"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.99]"
  • _plugins_/jeux/branches/jeux2/plugin.xml

    r61782 r64727  
    33        <slogan>Des jeux avec SPIP !</slogan>
    44        <etat>test</etat>
    5         <version>2.4.1</version>
     5        <version>2.4.2</version>
    66        <icon>img/jeux-48.png</icon>
    77        <auteur>Patrice VANNEUFVILLE, Ma&#239;eul Rouquette</auteur>
  • _plugins_/jeux/trunk/jeux/qcm.php

    r64132 r64727  
    8787        $li = trim($ligne);
    8888    switch($li[0]){
    89       case 'Q' :                // On extrait la question
     89      case 'Q' :                // extraire la question
    9090                $qcms[$indexQCM]['question'] = trim(substr($li, 1));
    91                 $qcms[$indexQCM]['maxscore'] = 0;
    92                 $qcms['nbquestions']++;
     91                $qcms[$indexQCM]['maxScore'] = 0;
     92                $qcms['nbQuestions']++;
    9393        break;
    94       case 'P' :                // On extrait une proposition
     94      case 'P' :                // extraire une proposition
    9595                // Pour les precisions de la proposition...
    9696                list($reponse, $precision)=explode("|", $li, 2);
    97                 // On extrait le numero de la proposition et son contenu
     97                // extraire le numero de la proposition et son contenu
    9898                preg_match(',^P(\d*)(.*)$,', $reponse, $regs); 
    9999                $indexProposition = intval($regs[1]);
    100100                $suiteProposition = trim($regs[2]);
    101101                $qcms[$indexQCM]['nbpropositions']++;
    102         // On extrait les points eventuellement associes a chaque reponse
     102        // extraire les points eventuellement associes a chaque reponse
    103103        if(preg_match(',^\.(-?\d+)(.*)$,', $suiteProposition, $regs)){
    104104          $qcms[$indexQCM]['points'][$indexProposition] = intval($regs[1]);
    105105          $qcms[$indexQCM]['propositions'][$indexProposition] = trim($regs[2]);
     106          $qcms['pointsTrouves'] = 1;
    106107        } else {
    107           $qcms[$indexQCM]['points'][$indexProposition] = 0;
     108          $qcms[$indexQCM]['points'][$indexProposition] = false;
    108109          $qcms[$indexQCM]['propositions'][$indexProposition] = $suiteProposition;
    109110        }
     
    112113                // cas d'un trou (ou d'une proposition non numerotee !)
    113114                if ($indexProposition==0) {
    114                         $qcms[$indexQCM]['maxscore'] = $qcms[$indexQCM]['points'][0] = max($qcms[$indexQCM]['points'][0], 1);
     115                        $qcms[$indexQCM]['maxScore'] = $qcms[$indexQCM]['points'][0] =
     116                                $qcms[$indexQCM]['points'][0]===false?1:$qcms[$indexQCM]['points'][0];
    115117                        $qcms[$indexQCM]['propositions'] = jeux_liste_mots($qcms[$indexQCM]['propositions'][0]);
    116118                        $qcms[$indexQCM]['nbpropositions'] = 1;
    117119                }
    118120                break;
    119       case 'R' :                // On recupere le numero et les points de la bonne reponse
     121      case 'R' :                // recuperer le numero et les points de la bonne reponse
    120122                // total des points des bonnes reponses
    121                 $qcms[$indexQCM]['maxscore'] = 0;
     123                $qcms[$indexQCM]['maxScore'] = 0;
    122124                // parcours des bonnes reponses
    123125                $t = preg_split(',\s+R,', ' '.$li);
     
    126128                        $qcms[$indexQCM]['bonnesreponses'][$indexBonneReponse]=1;
    127129                        // au cas ou les points ne sont pas specifies pour la bonne reponse
    128                         if ($qcms[$indexQCM]['points'][$indexBonneReponse]==0) $qcms[$indexQCM]['points'][$indexBonneReponse] = 1;
     130                        if ($qcms[$indexQCM]['points'][$indexBonneReponse]===false) $qcms[$indexQCM]['points'][$indexBonneReponse] = 1;
    129131                        // reponse unique : recherche du plus grand score attribue aux bonnes reponses
    130132                        // reponses multiples : addition de tous les scores attribues aux bonnes reponses
    131133                        $p = $qcms[$indexQCM]['points'][$indexBonneReponse];
    132                         if (!$isQRM) $qcms[$indexQCM]['maxscore'] = max($qcms[$indexQCM]['maxscore'], $p);
    133                         elseif($p>0) $qcms[$indexQCM]['maxscore'] += $p;
     134                        if (!$isQRM) $qcms[$indexQCM]['maxScore'] = max($qcms[$indexQCM]['maxScore'], $p);
     135                        elseif($p>0) $qcms[$indexQCM]['maxScore'] += $p;
    134136                }
    135137                // les reponses fausses deviennent negatives dans le cas de reponses multiples
    136                 if ($isQRM) foreach($qcms[$indexQCM]['points'] as $p=>$v) if ($v==0) $qcms[$indexQCM]['points'][$p] = -1;
     138                if ($isQRM) foreach($qcms[$indexQCM]['points'] as $p=>$v) if ($v===false) $qcms[$indexQCM]['points'][$p] = -1;
    137139                break;
    138140
     
    143145
    144146function qcm_les_points($phrase, $points, $veto=false) {
    145         if (!jeux_config('points') || $veto) return $phrase;
     147        if (!jeux_config('points') || $veto || $points===false) return $phrase;
    146148    $pointsHTML = '<span class="jeux_points"> ('.$points. _T('jeux:point'.(abs($points)>1?'s':'')).')</span>';
    147149        if (preg_match(',( ?: *)$,', $phrase, $regs))
     
    163165  global $qcms, $qcm_score, $qcm_score_detaille;
    164166  $indexQCM_1 = $indexQCM + 1;
    165   if (!$qcms[$indexQCM]['nbpropositions'] || !$qcms[$indexQCM]['maxscore'])
     167  if (!$qcms[$indexQCM]['nbpropositions'] || !$qcms[$indexQCM]['maxScore'])
    166168        return "<div class=\"jeux_question\">".definir_puce()._T('jeux:erreur_syntaxe').'</div>';
    167169
     
    175177  // affichage des points dans la question
    176178  if ($gestionPoints) {
    177     $pointsQ = $qcms[$indexQCM]['maxscore'];
     179    $pointsQ = $qcms[$indexQCM]['maxScore'];
    178180        $question = qcm_les_points($question, $pointsQ);
    179181  } else $pointsQ = 1;
     
    192194                                . $valeur.'</label>'
    193195                                . ($i % $nbcol?' &nbsp; ':'<br />');
    194         // S'il y a trop de choix, on utilise une liste a la place des boutons radio
     196        // S'il y a trop de choix, utiliser une liste a la place des boutons radio
    195197        } elseif ($qcms[$indexQCM]['nbpropositions']>jeux_config('max_radios')) {
    196198                $codeHTML.='<select name="'.$nomVarSelect.'" class="qcm_select"><option value="">'._T('jeux:votre_choix').'</option>';
     
    208210    }   // fin du cas sans correction
    209211
    210   // Sinon on affiche la correction
     212  // Sinon afficher la correction
    211213  else {
    212214         $reponse = $_POST[$nomVarSelect];
     
    217219                $affiche_correction = jeux_config('corrections');
    218220                // les points de la reponse donnee...
    219                 $pointsR = 0;
    220                 if (is_array($reponse)) foreach($reponse as $r) $pointsR += $qcms[$indexQCM]['points'][$r]>0?$qcms[$indexQCM]['points'][$r]:0;
    221                 else $pointsR = $qcms[$indexQCM]['points'][$trou?0:$reponse];
     221                $pointsR = false;
     222                if (is_array($reponse)) {
     223                        foreach($reponse as $r)
     224                                if(($p=$qcms[$indexQCM]['points'][$r])!==false) $pointsR += $p;
     225                } else {
     226                        if(($p=$qcms[$indexQCM]['points'][$trou?0:$reponse])!==false) $pointsR += $p;
     227                }
    222228
    223229                $intro=$trou?_T('jeux:votre_reponse'):_T('jeux:votre_choix');
     
    227233                        // la reponse donnee & precision des points eventuels de la mauvaise reponse...
    228234                        $codeHTML.='<div class="qcm_reponse">'
    229                                  .((($pointsR==$pointsQ) || ($pointsR==0))?$intro:qcm_les_points($intro, $pointsR, !$affiche_correction))
     235                                 .($pointsR===$pointsQ?$intro:qcm_les_points($intro, $pointsR, !$affiche_correction))
    230236                                 .($trou?$reponse:$qcms[$indexQCM]['propositions'][$reponse])
    231237                                 .'</div>';
     
    235241                                || ($qcms[$indexQCM]['bonnesreponses'][$reponse]==1);
    236242
    237                         // si ce n'est pas un trou, on donne les points de la reponse quoiqu'il arrive
     243                        // si ce n'est pas un trou, donner les points de la reponse quoiqu'il arrive
    238244                        if (!$trou || $bonneReponse) $qcm_score += $pointsR;
    239                         // on renseigne le resultat detaille
     245                        // renseigner le resultat detaille
    240246                        $qcm_score_detaille[] = $trou?"T$indexQCM_1:$reponse:".($bonneReponse?$pointsR:'0')
    241247                                :"Q$indexQCM_1:R$reponse:$pointsR";
     
    261267                        $bonneReponse = $qcms[$indexQCM]['bonnesreponses'][$r]==1;
    262268       
    263                         // on donne les points de la reponse quoiqu'il arrive
     269                        // donner les points de la reponse quoiqu'il arrive
    264270                        $qcm_score += $qcms[$indexQCM]['points'][$r];
    265                         $qcm_score_detaille[] = "Q$indexQCM_1:R$r:".$qcms[$indexQCM]['points'][$r];
     271                        $qcm_score_detaille[] = "Q$indexQCM_1:R$r:".intval($qcms[$indexQCM]['points'][$r]);
    266272                        $qrm_score += $qcms[$indexQCM]['points'][$r];
    267273                               
     
    282288        }
    283289
    284         // on affiche les bonnes reponses si la configuration l'autorise
     290        // afficher les bonnes reponses si la configuration l'autorise
    285291        if (jeux_config('solution')) {
    286292                if (!$qrm && !$bonneReponse) {
    287                 // on s'occupe d'abord des qcm et des trous
     293                // s'occuper d'abord des qcm et des trous
    288294                        $codeHTML.='<div class="qcm_reponse">'._T('jeux:bonneReponse').'&nbsp;';
    289295                        if ($trou) $codeHTML.="'".join("' "._T('info_ou')."' ", $qcms[$indexQCM]['propositions'])."'";
     
    298304                        }
    299305                        $codeHTML.='</div>';
    300                 } elseif($qrm && $qrm_score<>$qcms[$indexQCM]['maxscore']) {
    301                 // on s'occupe ensuite des qrm
     306                } elseif($qrm && $qrm_score<>$qcms[$indexQCM]['maxScore']) {
     307                // s'occuper ensuite des qrm
    302308                        $temp=array();
    303309                        foreach($qcms[$indexQCM]['bonnesreponses'] as $i=>$val) {
     
    339345  $qcms = array(); $indexQCM = $qcm_score = 0;
    340346  $qcm_score_detaille = array();
    341   $qcms['nbquestions'] = $qcms['totalscore'] = $qcms['totalpropositions'] = 0;
     347  $qcms['pointsTrouves'] = $qcms['nbQuestions'] = $qcms['totalScore'] = $qcms['totalPropositions'] = 0;
    342348  $titre = $horizontal = $vertical = $solution = $html = $categ_score = false;
    343349  $id_jeu = _request('id_jeu');
     
    350356                // remplacement des qcm par : <ATTENTE_QCM>ii</ATTENTE_QCM>
    351357                $html .= "<ATTENTE_QCM>$indexQCM</ATTENTE_QCM>";
    352                 // On analyse le QCM
     358                // analyser le QCM
    353359                qcm_analyse_le_qcm($tableau[$i+1], $indexQCM, $valeur==_JEUX_QRM);
    354             $qcms['totalpropositions'] +=  count($qcms[$indexQCM]['propositions']);
    355         $qcms['totalscore'] +=  $qcms[$indexQCM]['maxscore'];
     360            $qcms['totalPropositions'] +=  count($qcms[$indexQCM]['propositions']);
     361        $qcms['totalScore'] +=  $qcms[$indexQCM]['maxScore'];
    356362                $indexQCM++;
    357363          }
     
    360366  }
    361367
    362   // si un qrm a ete insere ou si certaines questions ne valent pas 1 point, on affiche les points
    363   $gestionPoints = $qcms['qrm'] || ($qcms['totalscore']<>$qcms['nbquestions']);
     368  // si un qrm a ete insere ou si certaines questions ne valent pas 1 point, afficher les points
     369  $gestionPoints = $qcms['qrm'] || $qcms['pointsTrouves'];
    364370
    365371  // reinserer les qcms mis en forme
     
    375381        }
    376382  } else {
    377         $pied = jeux_afficher_score($qcm_score, $qcms['totalscore'], $id_jeu, join(', ', $qcm_score_detaille), $categ_score);
     383        $pied = jeux_afficher_score($qcm_score, $qcms['totalScore'], $id_jeu, join(', ', $qcm_score_detaille), $categ_score);
    378384        if($form) $pied .= jeux_bouton(jeux_config('bouton_refaire'), $id_jeu, $indexJeux);
    379385  }
    380   // ajout du javascript si on doit afficher une par une
     386  // ajout du javascript s'il faut afficher une par une
    381387  if (jeux_config('une_par_une'))
    382388        $js = '<script type="text/javascript">qcm_affichage_une_par_une();</script>';
  • _plugins_/jeux/trunk/paquet.xml

    r64172 r64727  
    22        prefix="jeux"
    33        categorie="divers"
    4         version="3.0.6"
     4        version="3.0.7"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.99]"
Note: See TracChangeset for help on using the changeset viewer.