Changeset 7674 in spip-zone


Ignore:
Timestamp:
Nov 30, 2006, 2:33:17 AM (12 years ago)
Author:
patfr@…
Message:

petits détails et possibilité de placer plusieurs jeux dans un article.
mais la solution n'est pas parfaite... ajax à l'aide...

Location:
_plugins_/_stable_/jeux
Files:
3 added
11 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/jeux/_REGLES_DE_COMMIT.txt

    r7652 r7674  
    99A. Observer le planning de travail. Pour le modifier, proposez-nous vos idées !
    1010
    11        Planning de modification :
     11       Planning de modification, sans ordre :
    1212         
    1313          1. Prévoir Plusieurs jeux dans une page (en cours...)
    1414          2. Meilleur css
    1515          3. AJAX
    16           4. Statistiques des performances et des timings
    17           5. Ajouter des langues
     16          4. Ajouter des langues
     17          5. Statistiques des performances et des timings
    1818          6. Sauvegarde des jeux en cours (utilisateurs identifiés)
    1919          7. D'autres jeux, encore et encore !
     
    3232    Cette version peut évoluer. Si vous avez envie de vous
    3333    retrousser les manches, n'hésitez pas.
     34        Chaque jeu doit être codé dans un fichier séparé du genre inc/monjeu.php
     35        et une signature doit permettre de le retrouver.
     36        Voir la fonction jeux($chaine) dans jeux_pipelines.php.
     37        La syntaxe entre les balises <jeux> et </jeux> doit rester unifiée et
     38        respecter une certaine cohérence.
    3439
    3540    Tout le monde à le droit de faire des modifications.
  • _plugins_/_stable_/jeux/inc/mots_croises.php

    r7660 r7674  
    11<?php
     2#---------------------------------------------------#
     3#  Plugin  : jeux                                   #
     4#  Auteur  : Patrice Vanneufville, 2006             #
     5#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
     6#  Licence : GPL                                    #
     7#---------------------------------------------------#
    28/*
    3 insere une grille de mots croises dans vos articles !
    4 -----------------------------------------------------
    59
    6 balises : <jeux></jeux>
     10 Insere une grille de mots croises dans vos articles !
     11------------------------------------------------------
     12 Idee originale de Maieul ROUQUETTE
     13------------------------------------------------------
     14
     15balises du plugin : <jeux></jeux>
    716separateurs obligatoires : #HORIZONTAL, #VERTICAL, #SOLUTION
    817separateurs optionnels   : #TITRE, #HTML
    918
    10 Esemble de syntaxe dans l'article :
     19Exemple de syntaxe dans l'article :
    1120-----------------------------------
    1221
     
    3746
    3847//affiche la grille de mot croises, avec la solution au cas ou
    39 function affichage_grille($tableau_grille, $solution=false){
     48function affichage_grille_mc($tableau_grille, $indexJeux, $solution=false){
    4049       
    4150        // les variables de la grille
     
    5362       
    5463        //les cellules d'entetes verticales
    55         for($i = 1; $i<=$largeur; $i++) $grille .= "\t\t<th scope=\"GR\">$i</th>\n";
     64        for($i = 1; $i<=$largeur; $i++) $grille .= "\t\t<th scope=\"col\">$i</th>\n";
    5665        $grille .= "\t</tr>\n";         
    5766       
     
    5968        foreach($tableau_grille as $ligne =>$contenu_ligne){
    6069                $ligne++;
    61                 $grille .= "\t<tr>\n\t<th scope=\"row\">".lettre_grille($ligne)."</th>\n";      //numeros de ligne
     70                $grille .= "\t<tr>\n\t<th scope=\"row\">".lettre_grille($ligne)."</th>\n";      // numeros de ligne
    6271               
    6372                foreach ($contenu_ligne as $colonne =>$cellule){
     
    6978                                        $grille .= "\t\t<td>$cellule</td>\n" ;
    7079                                else {
    71                                         $grille .= "\t\t<td>"
    72                                                 .'<label for="GR'.$colonne.'x'.$ligne.'">'
    73                                                 ._T('motscroises:ligne',Array('n'=>lettre_grille($ligne))).';'
    74                                                 ._T('motscroises:colonne',Array('n'=>$colonne)).'</label>';
    75                                                
    76                                         // test l'existence de la variable global correpsonte à cette cellule   
    77                                         if (isset($GLOBALS['GR'.$colonne.'x'.$ligne]) and $GLOBALS['GR'.$colonne.'x'.$ligne]!='')
    78                                                 $grille.='<input type="text" maxlength="1" value="'.$GLOBALS['GR'.$colonne.'x'.$ligne].'" name="GR'.$colonne.'x'.$ligne.'" id="GR'.$colonne.'x'.$ligne."\" />";
    79                                         else
    80                                                 $grille.='<input type="text" maxlength="1"  name="GR'.$colonne.'x'.$ligne.'" id="GR'.$colonne.'x'.$ligne."\" />";                       
    81                                        
    82                                         $grille .= "</td>\n" ;          //cloture de la cellule
     80                                        $name = 'GR'.$indexJeux.'x'.$colonne.'x'.$ligne;
     81                                        $grille .= "\t\t<td><label for=\"".$name.'">'
     82                                                . _T('motscroises:ligne',Array('n'=>lettre_grille($ligne))).';'
     83                                                . _T('motscroises:colonne',Array('n'=>$colonne)).'</label>'
     84                                                . '<input type="text" maxlength="1" '
     85                                                . ((isset($GLOBALS[$name]) and $GLOBALS[$name]!='')? 'value="'.$GLOBALS[$name]:'')
     86                                                .'" name="'.$name.'" id="'.$name.'" />'
     87                                                . "</td>\n" ;
    8388                                }
    8489                } // foreach
     
    8691        $grille = $grille."\t</tr>\n";}         
    8792       
    88         //fin affichage des lignes
     93        // fin affichage des lignes
    8994       
    9095        $grille.="</table>\n";
     
    103108}
    104109
    105 // déchiffre le code source de la grille
    106 function calcul_tableau_grille_vieille_syntaxe($texte){
    107         $texte = trim($texte);
    108         $tableau = explode("\r", $texte);       
    109         //ligne par ligne
    110         $j =0;
    111         foreach ($tableau as $i){       
    112                 $tableau[$j] = explode('|',trim($i));           //une cellule, c'est beau !
    113                 array_shift($tableau[$j]);
    114                 array_pop($tableau[$j]);
    115                 $j++;
    116         }
    117         return $tableau;
    118 }
    119 
    120 
    121110// compare les variables Post avec les valeurs de la solution...
    122 function comparaison_grille($tableau_grille){
     111function comparaison_grille($tableau_grille, $indexJeux){
    123112    $erreurs=0; $vides=0;
    124113    foreach($tableau_grille as $ligne =>$contenu_ligne){
     
    129118            //compare les valeurs du tableau PHP avec les variables POST
    130119                        if ($cellule!='*') {
    131                     if (trim($GLOBALS["GR".$colonne."x".$ligne])=='') $vides++;
    132                 elseif (strtoupper($GLOBALS["GR".$colonne."x".$ligne])!=strtoupper($cellule)) $erreurs++;
     120                                $input = trim($GLOBALS['GR'.$indexJeux.'x'.$colonne.'x'.$ligne]);
     121                    if ($input=='') $vides++;
     122                 elseif (strtoupper($input)!=strtoupper($cellule)) $erreurs++;
    133123                        }       
    134124                }
     
    138128
    139129// renvoie le nombre d'erreurs de de cases vides
    140 function calcul_erreurs_grille($solution) {
     130function calcul_erreurs_grille($solution, $indexJeux) {
    141131        if ($GLOBALS["bouton_envoi"] == '') return '';
    142132        else {
    143           list($nbr_erreurs, $nbr_vides) = comparaison_grille($solution);
     133          list($nbr_erreurs, $nbr_vides) = comparaison_grille($solution, $indexJeux);
    144134          return '<strong class="erreur">'
    145135                . (($nbr_erreurs==0)?_T('motscroises:aucune_erreur'):(
     
    154144
    155145// decode une grille de mots croises
    156 function jeux_mots_croises($texte) {
     146function jeux_mots_croises($texte, $indexJeux) {
    157147        $tableau = preg_split('/('._JEUX_TITRE.'|'._JEUX_HORIZONTAL.'|'._JEUX_VERTICAL.'|'._JEUX_SOLUTION.'|'._JEUX_HTML.')/',
    158148                        trim(_JEUX_HTML.$texte), -1, PREG_SPLIT_DELIM_CAPTURE);
    159         $titre = $horizontal = $vertical = $solution = $html = false;
     149        $horizontal = $vertical = $solution = $html = false;
     150        $titre = _T('motscroises:titre');
     151       
    160152        foreach($tableau as $i => $v){
    161153         $v = trim($v);
     
    167159        }
    168160
    169         // un titre, coute que coute...
    170         if (!$titre) $titre = _T('motscroises:titre');
    171        
    172         return calcul_erreurs_grille($solution)
    173                         . affichage_grille($solution)
     161        return calcul_erreurs_grille($solution, $indexJeux)
     162                        . affichage_grille_mc($solution, $indexJeux)
    174163        // definitions 
    175164                        . '<div class="spip horizontal"><h4 class="spip grille">'
     
    178167                                        ._T('motscroises:verticalement')."</h4>\n".$vertical.'</div>'
    179168        // solution
    180                         . (($GLOBALS["solution"][0] == 1)? affichage_grille($solution, true) : '');
     169                        . (($GLOBALS["solution"][0] == 1)? affichage_grille_mc($solution, $indexJeux, true) : '');
    181170}
    182171?>
  • _plugins_/_stable_/jeux/inc/qcm.php

    r7661 r7674  
    11<?php
     2#---------------------------------------------------#
     3#  Plugin  : jeux                                   #
     4#  Auteur  : Patrice Vanneufville, 2006             #
     5#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
     6#  Licence : GPL                                    #
     7#---------------------------------------------------#
    28/*
    3 insere un QCM dans vos articles !
    4 ---------------------------------
    5 
    6 balises : <jeux></jeux>
     9
     10 Insere un QCM dans vos articles !
     11---------------------------------------
     12 Idee originale de Mathieu GIANNECCHINI
     13---------------------------------------
     14
     15balises du plugin : <jeux></jeux>
    716separateurs obligatoires : #TITRE, #QCM
    817separateurs optionnels   : #HTML
    918
    10 Ensemble de syntaxe dans l'article :
     19Exemple de syntaxe dans l'article :
    1120------------------------------------
    1221
     
    7584*/
    7685 
    77  define(_QCM_TITRE_DEBUT, '<qcm-titre>');
    78  define(_QCM_TITRE_FIN, '</qcm-titre>');
    7986 
    8087// cette fonction remplit le tableau $qcms sur la question $indexQCM
     
    246253}
    247254
    248 function qcm_inserer_les_qcm(&$chaine, $gestionPoints) {
     255function qcm_inserer_les_qcm(&$chaine, $indexJeux, $gestionPoints) {
    249256  global $qcms;
    250257  if (ereg('<ATTENTE_QCM>([0-9]+)</ATTENTE_QCM>', $chaine, $eregResult)) {
     
    252259        list($texteAvant, $texteApres) = explode($eregResult[0], $chaine, 2);
    253260        $chaine = "$texteAvant<!QCM-DEBUT-#$indexQCM>\n"
    254                 . qcm_affiche_la_question($indexQCM, isset($_POST["var_correction"]), $gestionPoints)
     261                . qcm_affiche_la_question($indexQCM, isset($_POST["var_correction_".$indexJeux]), $gestionPoints)
    255262                . "<!QCM-FIN-#$indexQCM>\n"
    256                 . qcm_inserer_les_qcm($texteApres, $gestionPoints);
     263                . qcm_inserer_les_qcm($texteApres, $indexJeux, $gestionPoints);
    257264  }
    258265  return $chaine;
    259266}
    260267
    261 function jeux_qcm($chaine) {
     268function jeux_qcm($chaine, $indexJeux) {
    262269  define(_JEUX_REM_DEBUT, code_echappement('<!-- '));
    263270  define(_JEUX_REM_FIN, code_echappement(' -->'));
     
    270277  $tableau = preg_split('/('._JEUX_TITRE.'|'._JEUX_QCM.'|'._JEUX_HTML.')/',
    271278                        _JEUX_HTML.trim($chaine), -1, PREG_SPLIT_DELIM_CAPTURE);
    272   $titre = $horizontal = $vertical = $solution = $html = false;
     279  $horizontal = $vertical = $solution = $html = false;
     280  $titre = _T('qcm:qcm_titre');
    273281
    274282  // parcourir toutes les #BALISES
     
    291299  $gestionPoints = $qcms['totalscore']<>$qcms['nbquestions'];
    292300
    293   // trouver un titre, coute que coute...
    294 //  if (!$titre) $titre = qcm_recupere_le_titre($chaine, _QCM_TITRE_DEBUT, _QCM_TITRE_FIN);
    295 //  if (!$titre) $titre = qcm_recupere_le_titre($chaine, '<intro>', '</intro>');
    296   if (!$titre) $titre = _T('qcm:qcm_titre');
    297  
    298301  // reinserer les qcms mis en forme
    299   $chaine = qcm_inserer_les_qcm($html, $gestionPoints);
    300 
     302  $chaine = qcm_inserer_les_qcm($html, $indexJeux, $gestionPoints);
     303echo "toto$indexJeux:",$_POST["var_correction_".$indexJeux],"<br>";
    301304  $tete = '<div class="spip_qcm"><div class="spip_qcm_titre">'.$titre.'<hr /></div>';
    302   if (!isset($_POST["var_correction"])) {
    303         $tete .= '<form method="post" action="">';
     305  if (!isset($_POST["var_correction_".$indexJeux])) {
     306        $tete .= "\n".'<form method="post" action="">';
    304307        $pied = '<br>
    305         <input type="hidden" name="var_correction" value="yes">
     308        <input type="hidden" name="var_correction_'.$indexJeux.'" value="yes">
    306309        <div align="center"><input type="submit" value="'._T('qcm:qcm_corriger').'" class="spip_qcm_bouton_corriger"></div>
    307310        </form>';
     
    319322}
    320323
    321 function jeux_qcm2($chaine){
    322  if (ereg(_QCM_DEBUT, $chaine)) {
    323         ob_start();
    324         $chaine = qcm($chaine);
    325         $data = ob_get_contents();
    326         ob_end_clean();
    327         $chaine = nl2br(str_replace("\t",'&nbsp;&nbsp;&nbsp;&nbsp;',$data)).$chaine;
    328  }
    329  return $chaine;
    330 }
    331 
    332 
    333324?>
  • _plugins_/_stable_/jeux/inc/sudoku.php

    r7660 r7674  
    11<?php
     2#---------------------------------------------------#
     3#  Plugin  : jeux                                   #
     4#  Auteur  : Patrice Vanneufville, 2006             #
     5#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
     6#  Licence : GPL                                    #
     7#---------------------------------------------------#
    28/*
    3 insere une grille de mots croises dans vos articles !
     9
     10Insere une grille de mots croises dans vos articles !
    411-----------------------------------------------------
    512
    6 balises : <jeux></jeux>
     13balises du plugin : <jeux></jeux>
    714separateurs obligatoires : #HORIZONTAL, #VERTICAL, #SOLUTION
    815separateurs optionnels   : #TITRE, #HTML
    916
    10 Esemble de syntaxe dans l'article :
     17Exemple de syntaxe dans l'article :
    1118-----------------------------------
    1219
     
    3744*/
    3845//affiche la grille de sudoku, en format solution au cas ou
    39 function affichage_sudoku($tableau_sudoku, $solution=false){
     46function affichage_sudoku($tableau_sudoku, $indexJeux, $solution=false){
    4047       
    4148        // les variables de la grille
     
    5057                . _T('sudoku:table_summary',Array('hauteur'=>$hauteur,'largeur'=>$largeur)) . "\">\n";
    5158   
    52         //debut affichage des lignes
     59        // debut affichage des lignes
    5360        foreach($tableau_sudoku as $ligne => $contenu_ligne){
    5461                $ligne++;
     
    5764                foreach ($contenu_ligne as $colonne =>$cellule){
    5865                    $colonne++;
    59                     //s'il s'agit pas d'un espace
     66                    // s'il s'agit pas d'un espace
    6067                    if ($cellule != "-")
    6168                        $grille .= "\t\t<td><strong>$cellule</strong></td>\n";
     
    6370                                        $grille .= "\t\t<td>$cellule</td>\n" ;
    6471                                else {
    65                                         $grille .= "\t\t<td>"
    66                                                 .'<label for="GR'.$colonne.'x'.$ligne.'">'
     72                                        $name = 'GR'.$indexJeux.'x'.$colonne.'x'.$ligne;
     73                                        $grille .= "\t\t<td><label for=\"".$name.'">'
    6774                                                ._T('sudoku:ligne',Array('n'=>$ligne)).';'
    68                                                 ._T('sudoku:colonne',Array('n'=>$colonne)).'</label>';
    69                                                
    70                                         // test l'existence de la variable global correpsonte à cette cellule   
    71                                         if (isset($GLOBALS['GR'.$colonne.'x'.$ligne]) and $GLOBALS['GR'.$colonne.'x'.$ligne]!='')
    72                                                 $grille.='<input type="text" maxlength="1" value="'.$GLOBALS['GR'.$colonne.'x'.$ligne].'" name="GR'.$colonne.'x'.$ligne.'" id="GR'.$colonne.'x'.$ligne."\" />";
    73                                         else
    74                                                 $grille.='<input type="text" maxlength="1"  name="GR'.$colonne.'x'.$ligne.'" id="GR'.$colonne.'x'.$ligne."\" />";                       
    75                                        
    76                                         $grille .= "</td>\n" ;          //cloture de la cellule
     75                                                ._T('sudoku:colonne',Array('n'=>$colonne)).'</label>'
     76                                                . '<input type="text" maxlength="1" '
     77                                                . ((isset($GLOBALS[$name]) and $GLOBALS[$name]!='')? 'value="'.$GLOBALS[$name]:'')
     78                                                .'" name="'.$name.'" id="'.$name.'" />'
     79                                                . "</td>\n" ;
    7780                                }
    7881                } // foreach
     
    8083        $grille = $grille."\t</tr>\n";}         
    8184       
    82         //fin affichage des lignes
     85        // fin affichage des lignes
    8386       
    8487        $grille.="</table>\n";
    8588       
    86         (!$solution) ? $grille.="<br /><input id=\"solution\" name=\"solution[]\" type=\"checkbox\"value=\"1\" /><label for=\"solution\" >"._T('sudoku:afficher_solution')."</label><br />\n
     89        (!$solution) ? $grille .= "<br /><input id=\"affiche_solution_$indexJeux\" name=\"affiche_solution_{$indexJeux}[]\" type=\"checkbox\"value=\"1\" /><label for=\"affiche_solution_$indexJeux\" >"._T('sudoku:afficher_solution')."</label><br />\n
    8790<input type=\"submit\" value=\""._T('sudoku:verifier')."\" name=\"bouton_envoi\" /></form>\n" : $grille.="</div>";
    8891
     
    98101
    99102// compare les variables Post avec les valeurs de la solution...
    100 function comparaison_sudoku($tableau_sudoku){
     103function comparaison_sudoku($tableau_sudoku, $indexJeux){
    101104    $erreurs=0; $vides=0;
    102     foreach($tableau_sudoku as $ligne =>$contenu_ligne){
     105    foreach($tableau_sudoku as $ligne => $contenu_ligne){
    103106        $ligne++;
    104         foreach ($contenu_ligne as $colonne =>$cellule){
     107        foreach ($contenu_ligne as $colonne => $cellule){
    105108            $colonne++;
    106109                       
    107             //compare les valeurs du tableau PHP avec les variables POST
    108                         if ($cellule!='*') {
    109                                 $input = trim($GLOBALS["GR".$colonne."x".$ligne]);
     110            // compare les valeurs du tableau PHP avec les variables POST
     111                        if ($cellule!='*') { 
     112                                echo $input = trim($GLOBALS['GR'.$indexJeux.'x'.$colonne.'x'.$ligne]);
    110113                    if ($input=='') $vides++;
    111114                 elseif (strtoupper($input)!=strtoupper($cellule)) $erreurs++;
     
    117120
    118121// renvoie le nombre d'erreurs de de cases vides
    119 function calcul_erreurs_sudoku($solution) {
     122function calcul_erreurs_sudoku($solution, $indexJeux) {
    120123        if ($GLOBALS["bouton_envoi"] == '') return '';
    121124        else {
    122           list($nbr_erreurs, $nbr_vides) = comparaison_sudoku($solution);
     125          list($nbr_erreurs, $nbr_vides) = comparaison_sudoku($solution, $indexJeux);
    123126          return '<strong class="erreur">'
    124127                . (($nbr_erreurs==0)?_T('sudoku:aucune_erreur'):(
     
    133136
    134137// decode une grille de sudoku
    135 function jeux_sudoku($texte) {
     138function jeux_sudoku($texte, $indexJeux) {
    136139        $tableau = preg_split('/('._JEUX_TITRE.'|'._JEUX_SUDOKU.'|'._JEUX_SOLUTION.'|'._JEUX_HTML.')/',
    137140                        trim(_JEUX_HTML.$texte), -1, PREG_SPLIT_DELIM_CAPTURE);
    138         $titre = $sudoku = $solution = $html = false;
     141        $sudoku = $solution = $html = false;
     142        $titre = _T('sudoku:titre');
     143
    139144        foreach($tableau as $i => $v){
    140145         $v = trim($v);
    141 //       echo "$i. ", trim($v), '<br>';
    142146         if ($v==_JEUX_TITRE) $titre = trim($tableau[$i+1]);
    143147          elseif ($v==_JEUX_SUDOKU) $sudoku = calcul_tableau_sudoku($tableau[$i+1]);
    144           elseif ($v==_JEUX_SOLUTION)$solution = calcul_tableau_sudoku($tableau[$i+1]);
     148          elseif ($v==_JEUX_SOLUTION) $solution = calcul_tableau_sudoku($tableau[$i+1]);
    145149          elseif ($v==_JEUX_HTML) $html .= trim($tableau[$i+1]);
    146150        }
    147 // print_r($tableau);
    148         // trouver un titre, coute que coute...
    149 //      if (!$titre) $titre = jeux_recupere_le_titre($chaine, '<intro>', '</intro>');
    150         if (!$titre) $titre = _T('sudoku:titre');
    151151       
    152         return calcul_erreurs_sudoku($solution)
    153                         . affichage_sudoku($sudoku)
     152        return calcul_erreurs_sudoku($solution, $indexJeux)
     153                        . affichage_sudoku($sudoku, $indexJeux)
    154154        // solution
    155                         . (($GLOBALS["solution"][0] == 1)? affichage_sudoku($solution, true) : '');
     155                        . (($GLOBALS["affiche_solution_".$indexJeux][0] == 1)? affichage_sudoku($solution, $indexJeux, true) : '');
    156156}
    157157?>
  • _plugins_/_stable_/jeux/jeux.js

    r7660 r7674  
    3535function clavierPourJeux(e) {
    3636        //var key = e.keyCode ? e.keyCode : (e.which ? e.which: 0);
    37         var m = this.name.match(/GR(\d+)x(\d+)/);
    38         var x=m[1];
    39         var y=m[2];
     37        var m = this.name.match(/GR(\d+)x(\d+)x(\d+)/);
     38        var x=m[2];
     39        var y=m[3];
    4040        var retour = true;
    4141       
     
    5757        }
    5858
    59         var newcell = '#GR'+String(x)+'x'+String(y);
     59        var newcell = '#GR'+m[1]+'x'+String(x)+'x'+String(y);
    6060        $(newcell).each(function(){ this.focus(); });
    6161       
  • _plugins_/_stable_/jeux/jeux_fonctions.php

    r7652 r7674  
    11<?php
    22#------ filtres pas_de_plugin ----------------------#
    3 Filtres : jeux                                   #
     3Plugin : jeux                                   #
    44#  Auteurs : Patrice Vanneufville, 2006             #
    55#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
     
    99// filtre qui evite d'afficher le resultat obtenu par certains plugins
    1010// grace aux espions : <!-- PLUGIN-DEBUT --> et <!-- PLUGIN-FIN -->
     11// ou : <!-- PLUGIN-DEBUT-xx --> et <!-- PLUGIN-FIN-xx --> ou xx est un numero.
    1112
    1213if (!function_exists("pas_de_plugin")) {       
    1314 function pas_de_plugin($texte){
    14                 return preg_replace(",<!-- PLUGIN-DEBUT -->.*<!-- PLUGIN-FIN -->,UimsS", '', $texte);
     15                return preg_replace(",<!--\s*PLUGIN-DEBUT(-[0-9]*)?\s*-->.*<!--\s*PLUGIN-FIN(-[0-9]*)?\s*-->,UimsS", '', $texte);
    1516 }
    1617}
  • _plugins_/_stable_/jeux/jeux_options.php

    r7652 r7674  
    11<?php
    2 #------ filtres pas_de_plugin ----------------------#
    3 Filtres : jeux                                   #
    4 #  Auteurs : Patrice Vanneufville, 2006             #
     2#---------------------------------------------------#
     3Plugin : jeux                                   #
     4#  Auteur  : Patrice Vanneufville, 2006             #
    55#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
    66#  Licence : GPL                                    #
  • _plugins_/_stable_/jeux/jeux_pipelines.php

    r7660 r7674  
    11<?php
    22
    3 #------ filtres pas_de_plugin ----------------------#
    4 Filtres : jeux                                   #
    5 #  Auteurs : Patrice Vanneufville, 2006             #
     3#---------------------------------------------------#
     4Plugin : jeux                                   #
     5#  Auteur  : Patrice Vanneufville, 2006             #
    66#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net #
    77#  Licence : GPL                                    #
     
    3838define(_JEUX_SUDOKU, '#SUDOKU');
    3939define(_JEUX_QCM, '#QCM');
    40 define(_JEUX_HTML, '#HTML'); // à faire !
     40define(_JEUX_HTML, '#HTML');
    4141
    4242// transforme les listes verticales/horizontale listes html
     
    4848}
    4949
    50 // cette fonction retourne le texte entre deux balises si elles sont presentes
    51 // et false dans le cas contraire
    52 function jeux_recupere_le_titre(&$chaine, $ouvrant, $fermant) {
    53   // si les balises ouvrantes et fermantes ne sont pas presentes, c'est mort
    54   if (strpos($chaine, $ouvrant)===false || strpos($chaine, $fermant)===false) return false;
    55   list($texteAvant, $suite) = explode($ouvrant, $chaine, 2);
    56   list($texte, $texteApres) = explode($fermant, $suite, 2);
    57   // on supprime les balises de l'affichage...
    58   // $chaine = $texteAvant.$texteApres;
    59   return trim($texte);
    60 }
    61 
    62 //fonction principale
    63 function jeux($chaine){
     50// fonction principale
     51function jeux($chaine, $indexJeux){
    6452        if (strpos($chaine, _JEUX_DEBUT)===false || strpos($chaine, _JEUX_FIN)===false) return $chaine;
    6553
    66         // isoler les jeux...
     54        // isoler le jeu...
    6755        list($texteAvant, $suite) = explode(_JEUX_DEBUT, $chaine, 2);
    6856        list($texte, $texteApres) = explode(_JEUX_FIN, $suite, 2);
    6957       
    70         // ...et decoder le texte obtenu !
    71         if (strpos($texte, _JEUX_HORIZONTAL)!=false || strpos($texte, _JEUX_FIN)!=false) {
     58        // ...et decoder le texte obtenu en fonction des signatures
     59        if (strpos($texte, _JEUX_HORIZONTAL)!==false || strpos($texte, _JEUX_FIN)!==false) {
    7260                include_spip('inc/mots_croises');
    73                 $texte = jeux_mots_croises($texte);
     61                $texte = jeux_mots_croises($texte, $indexJeux);
    7462        }
    75         if (strpos($texte, _JEUX_QCM)!=false) {
     63        if (strpos($texte, _JEUX_QCM)!==false) {
    7664                include_spip('inc/qcm');
    77                 $texte = jeux_qcm($texte);
     65                $texte = jeux_qcm($texte, $indexJeux);
    7866        }
    79         if (strpos($texte, _JEUX_SUDOKU)!=false) {
     67        if (strpos($texte, _JEUX_SUDOKU)!==false) {
    8068                include_spip('inc/sudoku');
    81                 $texte = jeux_sudoku($texte);
     69                $texte = jeux_sudoku($texte, $indexJeux);
    8270        }
    8371
    84         return $texteAvant.code_echappement('<!-- PLUGIN-DEBUT -->').$texte
    85                 .code_echappement('<!-- PLUGIN-FIN -->').$texteApres;
     72        return $texteAvant.code_echappement("<!-- PLUGIN-DEBUT-$indexJeux -->").$texte
     73                .code_echappement("<!-- PLUGIN-FIN-$indexJeux -->").jeux($texteApres, ++$indexJeux);
    8674}
    8775
    8876// a la place de jeux, pour le deboguage...
    89 function jeux2($chaine){
    90  if (strpos($chaine, _JEUX_DEBUT)!==false || strpos($chaine, '<horizontal>')!==false) {
     77function jeux2($chaine, $indexJeux){
     78 if (strpos($chaine, _JEUX_DEBUT)!==false && strpos($chaine, _JEUX_FIN)!==false) {
    9179        ob_start();
    92         $chaine = jeux($chaine);
     80        $chaine = jeux($chaine, $indexJeux);
    9381        $data = ob_get_contents();
    9482        ob_end_clean();
     
    9987
    10088function jeux_pre_propre($texte) {
    101         return jeux($texte);
     89        return jeux($texte, 1);
    10290}
    10391
  • _plugins_/_stable_/jeux/lang/sudoku_fr.php

    r7660 r7674  
    55$GLOBALS[$GLOBALS['idx_lang']] = array(
    66
    7 'afficher_solution'     =>'Afficher la solution (en bas de page)',
    8 'verifier'              => 'V&eacute;rifier',
     7'afficher_solution'     =>'Afficher la solution',
     8'verifier'              => 'V&eacute;rifier la validit&eacute;',
    99'solution'              =>'Solution',
    10 'aucune_erreur'         =>'Aucune erreur',
    11 'titre'         =>'Grille de mots-crois&eacute;s',
    12 'table_summary'         =>'Grille de mots-crois&eacute;s de @largeur@ colonnes sur @hauteur@ lignes',
     10'aucune_erreur'         =>'La grille est valide',
     11'titre'         =>'Grille de sudoku',
     12'table_summary'         =>'Grille de sudoku de @largeur@ colonnes sur @hauteur@ lignes',
    1313'ligne'                 =>'ligne @n@',
    1414'colonne'               =>'colonne @n@',
  • _plugins_/_stable_/jeux/lang/sudoku_it.php

    r7660 r7674  
    55$GLOBALS[$GLOBALS['idx_lang']] = array(
    66
    7 'afficher_solution'     =>'Visualizza la soluzione (in fondo alla pagina)',
    8 'verifier'              => 'Controlla',
     7'afficher_solution'     =>'Visualizza la soluzione',
     8'verifier'              => 'Controlla la validità',
    99'solution'              =>'Soluzione',
    10 'aucune_erreur'         =>'Nessun errore',
    11 'titre'         =>'Schema di parole crociate',
    12 'table_summary'         =>'Schema di parole crociate di @largeur@ colonne e @hauteur@ righe',
     10'aucune_erreur'         =>'Lo schema è valido', //'Nessun errore'
     11'titre'         =>'Schema di sudoku',
     12'table_summary'         =>'Schema di sudoku di @largeur@ colonne e @hauteur@ righe',
    1313'ligne'                 =>'riga @n@',
    1414'colonne'               =>'colonna @n@',
  • _plugins_/_stable_/jeux/plugin.xml

    r7652 r7674  
    88[Patrice VANNEUFVILLE->mailto:patrice.vanneufville@laposte.net], novembre 2006
    99
    10 QCM : id&eacute;e originale de Mathieu GIANNECCHINI
     10Mentions spéciales :
     11_ QCM : id&eacute;e originale de Mathieu GIANNECCHINI
    1112_ Mots crois&eacute;s : id&eacute;e originale de Ma&iuml;eul ROUQUETTE
    1213        </auteur>
Note: See TracChangeset for help on using the changeset viewer.