Changeset 7696 in spip-zone


Ignore:
Timestamp:
Dec 1, 2006, 2:02:10 AM (12 years ago)
Author:
patfr@…
Message:

une avancée dans les trous !

Location:
_plugins_/_stable_/jeux
Files:
5 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/jeux/inc/mots_croises.php

    r7689 r7696  
    104104function calcul_tableau_grille($texte){
    105105        $tableau = explode("\r", trim($texte));
    106         foreach ($tableau as $i=>$v) $tableau[$i] = preg_split('//', trim($v), -1, PREG_SPLIT_NO_EMPTY);
     106        foreach ($tableau as $i=>$valeur) $tableau[$i] = preg_split('//', trim($valeur), -1, PREG_SPLIT_NO_EMPTY);
    107107        return $tableau;
    108108}
     
    145145// decode une grille de mots croises
    146146function jeux_mots_croises($texte, $indexJeux) {
    147         $tableau = preg_split('/('._JEUX_TITRE.'|'._JEUX_HORIZONTAL.'|'._JEUX_VERTICAL.'|'._JEUX_SOLUTION.'|'._JEUX_TEXTE.')/',
    148                         trim(_JEUX_TEXTE.$texte), -1, PREG_SPLIT_DELIM_CAPTURE);
    149147        $horizontal = $vertical = $solution = $html = false;
    150148        $titre = _T('motscroises:titre');
    151149       
    152         foreach($tableau as $i => $v){
    153          $v = trim($v);
    154          if ($v==_JEUX_TITRE) $titre = trim($tableau[$i+1]);
    155           elseif ($v==_JEUX_HORIZONTAL) $horizontal = jeux_listes($tableau[$i+1]);
    156           elseif ($v==_JEUX_VERTICAL) $vertical = jeux_listes($tableau[$i+1]);
    157           elseif ($v==_JEUX_SOLUTION) $solution = calcul_tableau_grille($tableau[$i+1]);
    158           elseif ($v==_JEUX_TEXTE) $html .= trim($tableau[$i+1]);
     150  // parcourir tous les #SEPARATEURS
     151        $tableau = jeux_split_texte('mots_croises', $texte);
     152        foreach($tableau as $i => $valeur){
     153         if ($valeur==_JEUX_TITRE) $titre = $tableau[$i+1];
     154          elseif ($valeur==_JEUX_HORIZONTAL) $horizontal = jeux_listes($tableau[$i+1]);
     155          elseif ($valeur==_JEUX_VERTICAL) $vertical = jeux_listes($tableau[$i+1]);
     156          elseif ($valeur==_JEUX_SOLUTION) $solution = calcul_tableau_grille($tableau[$i+1]);
     157          elseif ($valeur==_JEUX_TEXTE) $html .= $tableau[$i+1];
    159158        }
    160159
  • _plugins_/_stable_/jeux/inc/qcm.php

    r7694 r7696  
    184184      if(count($qcms[$indexQCM]['propositions'])>5){
    185185        $codeHTML.='<select name="'.$nomVarSelect.'" class="spip_qcm_select">';
    186                 foreach($qcms[$indexQCM]['propositions'] as $i=>$v) $codeHTML.="<option value=\"$i\">$v</option>";
     186                foreach($qcms[$indexQCM]['propositions'] as $i=>$valeur) $codeHTML.="<option value=\"$i\">$valeur</option>";
    187187                $codeHTML.='</select>';
    188188      }
    189189      // Sinon des radio boutons
    190190      else {
    191                 foreach($qcms[$indexQCM]['propositions'] as $i=>$v)
     191                foreach($qcms[$indexQCM]['propositions'] as $i=>$valeur)
    192192          $codeHTML.='<input type="radio" name="'.$nomVarSelect
    193193                        . '" value="'.$i.'" id="'.$nomVarSelect.$i.'"><label for="'.$nomVarSelect.$i.'">'
    194                 . $v.'</label><br />';
     194                . $valeur.'</label><br />';
    195195       }
    196196       $codeHTML.="</div><br />";
     
    247247}
    248248
    249 function jeux_qcm($chaine, $indexJeux) {
     249function jeux_qcm($texte, $indexJeux) {
    250250
    251251  // initialisation 
     
    253253  $indexQCM = $qcm_score = 0;
    254254  $qcms['nbquestions'] = $qcms['totalscore'] = $qcms['totalpropositions'] = 0;
    255   $tableau = preg_split('/('._JEUX_TITRE.'|'._JEUX_QCM.'|'._JEUX_TEXTE.')/',
    256                         _JEUX_TEXTE.trim($chaine), -1, PREG_SPLIT_DELIM_CAPTURE);
     255  $tableau = jeux_split_texte('qcm', $texte);
    257256  $horizontal = $vertical = $solution = $html = false;
    258257  $titre = _T('qcm:qcm_titre');
    259258
    260   // parcourir toutes les #BALISES
    261   foreach($tableau as $i => $v){
    262          $v = trim($v);
    263          if ($v==_JEUX_TITRE) $titre = trim($tableau[$i+1]);
    264           elseif ($v==_JEUX_QCM) {
     259  // parcourir tous les #SEPARATEURS
     260  $tableau = jeux_split_texte('qcm', $texte);
     261  foreach($tableau as $i => $valeur){
     262         if ($valeur==_JEUX_TITRE) $titre = $tableau[$i+1];
     263          elseif ($valeur==_JEUX_QCM) {
    265264                // remplacement des qcm par : <ATTENTE_QCM>ii</ATTENTE_QCM>
    266265                $html .= "<ATTENTE_QCM>$indexQCM</ATTENTE_QCM>";
     
    271270                $indexQCM++;
    272271          }
    273           elseif ($v==_JEUX_TEXTE) $html .= trim($tableau[$i+1]);
     272          elseif ($valeur==_JEUX_TEXTE) $html .= $tableau[$i+1];
    274273  }
    275274
     
    278277
    279278  // reinserer les qcms mis en forme
    280   $chaine = qcm_inserer_les_qcm($html, $indexJeux, $gestionPoints);
     279  $texte = qcm_inserer_les_qcm($html, $indexJeux, $gestionPoints);
    281280
    282281  $tete = '<div class="spip_qcm"><div class="spip_qcm_titre">'.$titre.'<hr /></div>';
     
    297296 
    298297  unset($qcms); unset($qcm_score);
    299   return $tete.$html.$pied;
     298  return $tete.$texte.$pied;
    300299}
    301300
  • _plugins_/_stable_/jeux/inc/sudoku.php

    r7689 r7696  
    9696function calcul_tableau_sudoku($texte){
    9797        $tableau = explode("\r", trim($texte));
    98         foreach ($tableau as $i=>$v) $tableau[$i] = preg_split('//', trim($v), -1, PREG_SPLIT_NO_EMPTY);
     98        foreach ($tableau as $i=>$valeur) $tableau[$i] = preg_split('//', trim($valeur), -1, PREG_SPLIT_NO_EMPTY);
    9999        return $tableau;
    100100}
     
    137137// decode une grille de sudoku
    138138function jeux_sudoku($texte, $indexJeux) {
    139         $tableau = preg_split('/('._JEUX_TITRE.'|'._JEUX_SUDOKU.'|'._JEUX_SOLUTION.'|'._JEUX_TEXTE.')/',
    140                         trim(_JEUX_TEXTE.$texte), -1, PREG_SPLIT_DELIM_CAPTURE);
    141139        $sudoku = $solution = $html = false;
    142140        $titre = _T('sudoku:titre');
    143141
    144         foreach($tableau as $i => $v){
    145          $v = trim($v);
    146          if ($v==_JEUX_TITRE) $titre = trim($tableau[$i+1]);
    147           elseif ($v==_JEUX_SUDOKU) $sudoku = calcul_tableau_sudoku($tableau[$i+1]);
    148           elseif ($v==_JEUX_SOLUTION) $solution = calcul_tableau_sudoku($tableau[$i+1]);
    149           elseif ($v==_JEUX_TEXTE) $html .= trim($tableau[$i+1]);
     142        $tableau = jeux_split_texte('sudoku', $texte);
     143        foreach($tableau as $i => $valeur){
     144         if ($valeur==_JEUX_TITRE) $titre = $tableau[$i+1];
     145          elseif ($valeur==_JEUX_SUDOKU) $sudoku = calcul_tableau_sudoku($tableau[$i+1]);
     146          elseif ($valeur==_JEUX_SOLUTION) $solution = calcul_tableau_sudoku($tableau[$i+1]);
     147          elseif ($valeur==_JEUX_TEXTE) $html .= $tableau[$i+1];
    150148        }
    151149       
  • _plugins_/_stable_/jeux/inc/textes.php

    r7694 r7696  
    6969
    7070// guillemets simples : “ et ”
    71 define(_GUILLEMET_OUVRANT, '&#8220;');
    72 define(_GUILLEMET_FERMANT, '&#8221;');
     71define('_GUILLEMET_OUVRANT', '&#8220;');
     72define('_GUILLEMET_FERMANT', '&#8221;');
    7373
    7474// guillemets doubles : « et »
    75 define(_GUILLEMET_OUVRANT, '&laquo;');
    76 define(_GUILLEMET_FERMANT, '&raquo;');
     75define('_GUILLEMET_OUVRANT', '&laquo;');
     76define('_GUILLEMET_FERMANT', '&raquo;');
    7777
    78 function jeux_textes($chaine, $indexJeux) {
    79 
    80   // initialiser 
    81   $tableau = preg_split('/('._JEUX_TITRE.'|'._JEUX_POESIE.'|'._JEUX_CITATION.'|'._JEUX_AUTEUR.'|'._JEUX_RECUEIL.'|'._JEUX_TEXTE.')/',
    82                         _JEUX_TEXTE.trim($chaine), -1, PREG_SPLIT_DELIM_CAPTURE);
     78function jeux_textes($texte, $indexJeux) {
    8379  $titre = $citation = $poesie = $auteur = $recueil = false;
    8480
    85   // parcourir toutes les #BALISES
    86   foreach($tableau as $i => $v){
    87          $v = trim($v);
    88          if ($v==_JEUX_TITRE) $titre = trim($tableau[$i+1]);
    89           elseif ($v==_JEUX_POESIE) $poesie = '<poesie>'.trim($tableau[$i+1]).'</poesie>';
    90           elseif ($v==_JEUX_CITATION) $citation = _GUILLEMET_OUVRANT.trim($tableau[$i+1])._GUILLEMET_FERMANT;
    91           elseif ($v==_JEUX_AUTEUR) $auteur = trim($tableau[$i+1]);
    92           elseif ($v==_JEUX_RECUEIL) $recueil = trim($tableau[$i+1]);
     81  // parcourir tous les #SEPARATEURS
     82  $tableau = jeux_split_texte('textes', $texte);
     83  foreach($tableau as $i => $valeur){
     84         if ($valeur==_JEUX_TITRE) $titre = $tableau[$i+1];
     85          elseif ($valeur==_JEUX_POESIE) $poesie = '<poesie>'.$tableau[$i+1].'</poesie>';
     86          elseif ($valeur==_JEUX_CITATION) $citation = _GUILLEMET_OUVRANT.$tableau[$i+1]._GUILLEMET_FERMANT;
     87          elseif ($valeur==_JEUX_AUTEUR) $auteur = $tableau[$i+1];
     88          elseif ($valeur==_JEUX_RECUEIL) $recueil = $tableau[$i+1];
    9389  }
    9490 
  • _plugins_/_stable_/jeux/inc/trous.php

    r7694 r7696  
    2626<jeux>
    2727        #TEXTE
    28         Ceci est un simple test de closure (exercice à trous) fait  le plugin.
    29         L'utilisateur entre ses réponses dans les espaces vides, presse ensuite le bouton "Contrôle"
     28        Ceci est un simple test de closure (exercice à trous).
     29        L'utilisateur entre ses réponses dans les espaces vides,
     30        presse ensuite le bouton "Contrôle"
    3031        #TROU
    3132        pour
     
    3637        peuvent
    3738        #TEXTE
    38         être acceptées.
    39         Par exemple, ce 
     39        être acceptées. Par exemple, ce 
    4040        #TROU
    4141        trou
     
    4343        blanc
    4444        #TEXTE
    45         autorise les réponses "trou", "vide", "blanc".
     45        autorise les réponses "trou", "vide" ou "blanc".
    4646</jeux>
    4747
    4848*/
    4949
     50function trous_inserer_le_trou($indexTrou, $corrige) {
     51  global $propositionsTROUS;
     52  /*
     53  global $qcms, $qcm_score;
     54  if ($qcms[$indexQCM]['propositions']==0) return '';
     55
     56  // Initialisation du code a retourner
     57  $nomVarSelect = 'var_Q'.$indexQCM;
     58  $question = trim(str_replace('&nbsp;', ' ', $qcms[$indexQCM]['question']));
     59 
     60  // affichage des points dans la question
     61  if ($gestionPoints) {
     62    $pointsQ = $qcms[$indexQCM]['maxscore'];
     63        $question = qcm_les_points($question, $pointsQ);
     64  } else $pointsQ = 1;
     65
     66  $codeHTML = "<div class=\"spip_qcm_question\">".definir_puce().$question.'</div>';
     67  if (!$corrigee){
     68    // affichage sans correction :
     69     $codeHTML.="\n<div class=\"spip_qcm_proposition\">";
     70
     71      // Si il ya plus de 5 choix, on utilise une liste
     72      if(count($qcms[$indexQCM]['propositions'])>5){
     73        $codeHTML.='<select name="'.$nomVarSelect.'" class="spip_qcm_select">';
     74                foreach($qcms[$indexQCM]['propositions'] as $i=>$valeur) $codeHTML.="<option value=\"$i\">$valeur</option>";
     75                $codeHTML.='</select>';
     76      }
     77      // Sinon des radio boutons
     78      else {
     79                foreach($qcms[$indexQCM]['propositions'] as $i=>$valeur)
     80          $codeHTML.='<input type="radio" name="'.$nomVarSelect
     81                        . '" value="'.$i.'" id="'.$nomVarSelect.$i.'"><label for="'.$nomVarSelect.$i.'">'
     82                . $valeur.'</label><br />';
     83       }
     84       $codeHTML.="</div><br />";
     85       
     86    }   //Fin du cas sans correction
     87
     88  // Sinon on affiche la correction
     89  else {
     90 
     91         if ($_POST[$nomVarSelect]) {
     92                // les points de la reponse donnee...
     93                $pointsR = $qcms[$indexQCM]['points'][$_POST[$nomVarSelect]];
     94               
     95                // la reponse donnee & precision des points eventuels de la mauvaise reponse...
     96                $codeHTML.='<div class="spip_qcm_reponse">'
     97                         .((($pointsR==$pointsQ) || ($pointsR==0))?_T('qcm:qcm_introReponse'):qcm_les_points(_T('qcm:qcm_introReponse'), $pointsR))
     98                         .$qcms[$indexQCM]['propositions'][$_POST[$nomVarSelect]].'</div>';
     99
     100                // on donne les points de la reponse quoiqu'il arrive
     101                $qcm_score += $pointsR;
     102               
     103        if ($qcms[$indexQCM]['bonnereponse']==$_POST[$nomVarSelect])
     104        // Si c'est juste
     105                        $codeHTML .= '<div class="spip_qcm_correction_juste">'._T('qcm:qcm_reponseJuste').'</div>';
     106        // Si c'est faux
     107         else $codeHTML .= '<div class="spip_qcm_correction_faux">'._T('qcm:qcm_reponseFausse').'</div>';
     108           
     109        // les precisions eventuelles
     110        if ($qcms[$indexQCM]['precisions'][$_POST[$nomVarSelect]]<>"")
     111             $codeHTML.='<div align="center"><div class="spip_qcm_precision">'
     112                                 .$qcms[$indexQCM]['precisions'][$_POST[$nomVarSelect]]
     113                         .'</div></div>';
     114
     115        // pas de reponse postee...
     116        } else $codeHTML.='<div class="spip_qcm_correction_null">'._T('qcm:qcm_reponseNulle').'</div>';
     117           
     118        $codeHTML.='<br />';
     119     
     120  } //Fin du cas avec correction
     121  return $codeHTML;
     122  */
     123  return " <input name=\"trou$indexTrou\" size=\"9\" onfocus=\"TrackFocus($indexTrou)\" type=\"text\"> ";
     124}
     125
     126function trous_inserer_les_trous($chaine, $indexJeux) {
     127  global $propositionsTROUS;
     128  if (ereg('<ATTENTE_TROU>([0-9]+)</ATTENTE_TROU>', $chaine, $eregResult)) {
     129        $indexTROU = intval($eregResult[1]);
     130        list($texteAvant, $texteApres) = explode($eregResult[0], $chaine, 2);
     131        $chaine = $texteAvant.jeux_rem('TROU-DEBUT', $indexTROU)
     132                . trous_inserer_le_trou($indexTROU, isset($_POST["var_correction_".$indexJeux]))
     133                . jeux_rem('TROU-FIN', $indexTROU)
     134                . trous_inserer_les_trous($texteApres, $indexJeux);
     135  }
     136  return $chaine;
     137}
     138
     139function jeux_trous($texte, $indexJeux) {
     140  global $propositionsTROUS;
     141  $titre = $html = false;
     142  $indexTrou = 0;
     143
     144  // parcourir tous les #SEPARATEURS
     145  $tableau = jeux_split_texte('trous', $texte);
     146  foreach($tableau as $i => $valeur){
     147         if ($valeur==_JEUX_TITRE) $titre = $tableau[$i+1];
     148          elseif ($valeur==_JEUX_TEXTE) $html .= $tableau[$i+1];
     149          elseif ($valeur==_JEUX_TROU) {
     150                // remplacement des trous par : <ATTENTE_TROU>ii</ATTENTE_TROU>
     151                $html .= "<ATTENTE_TROU>$indexTrou</ATTENTE_TROU>";
     152                $propositionsTROUS[$indexTrou] = split("\n", $tableau[$i+1]);
     153                $indexTrou++;
     154          }
     155  }
     156
     157   // reinserer les trous mis en forme
     158  $texte = trous_inserer_les_trous($html, $indexJeux);
     159
     160  $tete = '<div class="spip_qcm"><div class="spip_qcm_titre">'.$titre.'<hr /></div>';
     161  if (!isset($_POST["var_correction_".$indexJeux])) {
     162        $tete .= "\n".'<form method="post" action="">';
     163        $pied = '<br>
     164        <input type="hidden" name="var_correction_'.$indexJeux.'" value="yes">
     165        <div align="center"><input type="submit" value="'._T('jeux:jeux_corriger').'" class="spip_jeux_bouton_corriger"></div>
     166        </form>';
     167  } else {
     168      // On ajoute le score final
     169      $pied = '<center><div class="spip_jeux_score">'._T('jeux:jeux_score')
     170                                . "&nbsp;$qcm_score&nbsp;/&nbsp;".$qcms['totalscore'].'<br>'
     171                                . ($qcm_score==$qcms['totalscore']?_T('jeux:jeux_bravo'):'').'</div></center>'
     172                                . '<div class="spip_qcm_bouton_corriger" align="right">[ <a href="'
     173                                . parametre_url(self(),'var_mode','recalcul').'">'._T('trous:trous_reinitialiser').'</a> ]</div>';
     174  }
     175 
     176  unset($propositionsTROUS);
     177  return $texte;
     178 
     179  return $tete
     180    . ($titre?"<span class=\"trous_titre\">$titre</span><br />":'')
     181        . ($html?"<br /><span class=\"trous_trous\">$html</span>":'')
     182        . $pied;
     183}
    50184?>
  • _plugins_/_stable_/jeux/jeux_pipelines.php

    r7695 r7696  
    88#---------------------------------------------------#
    99
    10 /*
    11   Titre du jeu :
    12         - soit après la balise #TITRE du jeu
    13         - soit entre les balises <intro> et </intro>
    14                 (Spip s'en servira egalement en cas d'absence de descriptif pour
    15                 calculer la balise #INTRODUCTION utilisee pour resumer l'article)
     10// balises du plugin a inserer dans les articles
     11define('_JEUX_DEBUT', '<jeux>');
     12define('_JEUX_FIN', '</jeux>');
    1613
    17   Calcul de #INTRODUCTION (vos sommaires, rubriques ou backends) :
    18   si la fonction introduction() n'est pas surchargee, Spip cherche
    19   d'abord le descriptif, puis en cas d'echec, le contenu du texte situé entre
    20   les balises <intro> et </intro>. En dernier lieu, Spip utilise les 500 premiers
    21   caractères du chapeau suivi du texte.
    22   Attention donc : pour ne pas faire apparaitre le contenu des jeux avec
    23   les reponses, il vaut mieux penser à bien définir :
    24         - soit le descriptif de l'article
    25         - soit une introduction placee entre les balises <intro> et </intro>
    26                 (utiliser dans ce cas la balise #TITRE du jeu
    27                 pour definir le titre de la grille)
    28         - soit le titre du jeu place entre les balises <intro> et </intro>
     14// separateurs utilisables a l'interieur des balises ci-dessus
     15define('_JEUX_TITRE', '#TITRE');
     16define('_JEUX_HORIZONTAL', '#HORIZONTAL');
     17define('_JEUX_VERTICAL', '#VERTICAL');
     18define('_JEUX_SOLUTION', '#SOLUTION');
     19define('_JEUX_SUDOKU', '#SUDOKU');
     20define('_JEUX_KAKURO', '#KAKURO');
     21define('_JEUX_QCM', '#QCM');
     22define('_JEUX_CHARADE', '#CHARADE');
     23define('_JEUX_DEVINETTE', '#DEVINETTE');
     24define('_JEUX_REPONSE', '#REPONSE');
     25define('_JEUX_TROU', '#TROU');
     26define('_JEUX_TEXTE', '#TEXTE');
     27define('_JEUX_POESIE', '#POESIE');
     28define('_JEUX_CITATION', '#CITATION');
     29define('_JEUX_AUTEUR', '#AUTEUR');
     30define('_JEUX_RECUEIL', '#RECUEIL');
    2931
    30 */
     32global $jeux_separateurs;
     33$jeux_separateurs = array(
     34        'sudoku' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_SUDOKU, _JEUX_SOLUTION),
     35        'kakuro' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_KAKURO, _JEUX_SOLUTION),
     36        'mots_croises' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_HORIZONTAL, _JEUX_VERTICAL, _JEUX_SOLUTION),
     37        'qcm' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_QCM),
     38        'textes' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_POESIE, _JEUX_CITATION, _JEUX_AUTEUR, _JEUX_RECUEIL),
     39        'trous' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_TROU),
     40);
    3141
    32 define(_JEUX_DEBUT, '<jeux>');
    33 define(_JEUX_FIN, '</jeux>');
    34 define(_JEUX_TITRE, '#TITRE');
    35 define(_JEUX_HORIZONTAL, '#HORIZONTAL');
    36 define(_JEUX_VERTICAL, '#VERTICAL');
    37 define(_JEUX_SOLUTION, '#SOLUTION');
    38 define(_JEUX_SUDOKU, '#SUDOKU');
    39 define(_JEUX_QCM, '#QCM');
    40 define(_JEUX_TEXTE, '#TEXTE');
    41 define(_JEUX_POESIE, '#POESIE');
    42 define(_JEUX_CITATION, '#CITATION');
    43 define(_JEUX_AUTEUR, '#AUTEUR');
    44 define(_JEUX_RECUEIL, '#RECUEIL');
     42// splitte le texte du jeu avec les separateurs concernes
     43function jeux_split_texte($jeu, &$texte) {
     44  global $jeux_separateurs;
     45  $tableau = preg_split('/('.join('|', $jeux_separateurs[$jeu]).')/', trim(_JEUX_TEXTE.$texte), -1, PREG_SPLIT_DELIM_CAPTURE);
     46  foreach($tableau as $i => $valeur) $tableau[$i] = trim($valeur);
     47  return $tableau;
     48
    4549
    46 // transforme les listes verticales/horizontale listes html
     50// transforme un texte en listes html
    4751function jeux_listes($texte) {
    4852        $tableau = explode("\r", trim($texte));
    49         foreach ($tableau as $i=>$v) if (($v=trim($v))!='') $tableau[$i] = "<li>$v</li>\n";
     53        foreach ($tableau as $i=>$valeur) if (($valeur=trim($valeur))!='') $tableau[$i] = "<li>$valeur</li>\n";
    5054        $texte = implode('', $tableau);
    5155        return "<ol>$texte</ol>";
     
    7680        if (strpos($chaine, _JEUX_QCM)!==false) include_jeux('qcm', $chaine, $indexJeux);
    7781        if (strpos($chaine, _JEUX_SUDOKU)!==false) include_jeux('sudoku', $chaine, $indexJeux);
     82        if (strpos($chaine, _JEUX_TROU)!==false) include_jeux('trous', $chaine, $indexJeux);
    7883
    7984        return $texteAvant.jeux_rem('PLUGIN-DEBUT', $indexJeux).$chaine
Note: See TracChangeset for help on using the changeset viewer.