Changeset 48668 in spip-zone


Ignore:
Timestamp:
Jun 9, 2011, 10:07:49 PM (10 years ago)
Author:
patfr@…
Message:
  1. Les boutons sont désormais calculés sur la base d'un fond : fonds/bouton_{$item}.php

Ils sont donc surchargeables dans un squelette.
Les fonds livres nativement dans le plugin :

Correction : bouton_corriger.html
Reset : bouton_recommencer.html, bouton_reinitialiser.html, bouton_rejouer.html

  1. Deux paramètres de config ont été ajoutés pour les QCM, les trous et les multi-jeux.

Ils permettent plus facilement de choisir l'item adapté pour les boutons :

bouton_corriger=corriger fond utilise pour le bouton 'Corriger'
bouton_refaire=recommencer
fond utilise pour le bouton 'Reset'

Pour les multi-jeux, mettre 'non' ou '0' empêche l'affichage du bouton :

bouton_corriger=non fond utilise pour le bouton 'Corriger' (non ou 0 : pas de bouton)
bouton_refaire=non
fond utilise pour le bouton 'Reset' (non ou 0 : pas de bouton)

Location:
_plugins_/jeux
Files:
4 added
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/jeux/jeux/multi_jeux.php

    r34805 r48668  
    1919separateurs optionnels (a placer AVANT le premier [jeu])  : [texte], [titre], [config], [score]
    2020parametres de configurations par defaut :
    21         bouton_corriger=oui     // bouton 'Corriger' ?
    22         bouton_recommencer=oui  // bouton 'Recommencer' ?
    23         bouton_reinitialiser=non        // bouton 'Reinitialiser' ?
    24         scores_intermediaires=oui       // scores intermediaires ?
    25 
     21        voir la fonction jeux_multi_jeux_init() ci-dessous
    2622
    2723Exemple de syntaxe dans l'article :
     
    3228                Un ensemble de 3 jeux
    3329        [config]
    34                 bouton_recommencer=non
    35                 bouton_reinitialiser=oui
     30                bouton_refaire=rejouer
    3631        [jeu]
    3732        Tout ce qu'il faut pour le 1er jeu
     
    4641function jeux_multi_jeux_init() {
    4742        return "
    48                 bouton_corriger=oui     // bouton 'Corriger' ?
    49                 bouton_recommencer=oui  // bouton 'Recommencer' ?
    50                 bouton_reinitialiser=non        // bouton 'Reinitialiser' ?
     43                bouton_corriger=corriger // fond utilise pour le bouton 'Corriger' (non ou 0 : pas de bouton)
     44                bouton_refaire=recommencer // fond utilise pour le bouton 'Reset' (non ou 0 : pas de bouton)
    5145                scores_intermediaires=non       // scores intermediaires ?
    5246        ";
     
    8579        $tete = '<div class="jeux_cadre multi_jeux_cadre">'.($titre?'<div class="jeux_titre multi_jeux_titre">'.$titre.'<hr /></div>':'');
    8680        $pied = '';
     81        $id_jeu = _request('id_jeu');
    8782
    8883        if(!isset($_POST["var_correction_".$indexJeux])) {
    89                 if(jeux_config('bouton_corriger', $scores['config'])) $texte .= jeux_bouton_corriger();
     84                if($b = jeux_config('bouton_corriger', $scores['config'])) $texte .= jeux_bouton(strlen($b)?$b:'corriger', $id_jeu);
    9085                $texte = jeux_form_debut('multi_jeux', $indexJeux).$texte.jeux_form_fin();
    9186        } else {
    92                 if(jeux_config('bouton_reinitialiser', $scores['config'])) $texte .= jeux_bouton_reinitialiser();
    93                 if(jeux_config('bouton_recommencer', $scores['config'])) $texte .= jeux_bouton_recommencer();
    94                 $pied = jeux_afficher_score(array_sum($scores['score']), array_sum($scores['total']), _request('id_jeu'), join('<br />',$scores['details']), $categ_score);
     87                // obsolete, ici par compatibilite
     88                if(jeux_config('bouton_reinitialiser', $scores['config'])) $texte .= jeux_bouton('reinitialiser', $id_jeu);
     89                elseif(jeux_config('bouton_recommencer', $scores['config'])) $texte .= jeux_bouton('recommencer', $id_jeu);
     90                // affichage du bouton 'Reset'
     91                elseif($b = jeux_config('bouton_refaire', $scores['config'])) $texte .= jeux_bouton($b, $id_jeu);
     92                $pied = jeux_afficher_score(array_sum($scores['score']), array_sum($scores['total']), $id_jeu, join('<br />',$scores['details']), $categ_score);
    9593        }
    9694       
  • _plugins_/jeux/jeux/qcm.php

    r47456 r48668  
    1717separateurs obligatoires : [qcm], [qrm] ou [quiz]
    1818separateurs optionnels   : [titre], [texte], [config], [score]
    19 parametres de configurations par defaut :
    20         trou=auto // taille du trou affiche en cas de proposition unique
    21         une_par_une=non // affiche les questions une par une
    22         corrections=oui // corrige chaque reponse (juste ou fausse) et affiche les precisions eventuelles
    23         solution=non // donne la(les) bonne(s) reponse(s) lors de la correction
    24         points=oui // affiche eventuellement les points dans les questions
    25         max_radios=5 // nombre maximal de boutons radios affiches avant le choix d'une liste deroulante
    26         colonnes=1 // nombre de boutons (type radio ou a cocher) par ligne
     19parametres de configuration par defaut :
     20        voir la fonction jeux_qcm_init() ci-dessous
    2721
    2822Exemple de syntaxe dans l'article :
     
    6761*/
    6862
     63
     64// configuration par defaut : jeu_{mon_jeu}_init()
     65function jeux_qcm_init() {
     66        return "
     67                trou=auto       // taille du trou affiche en cas de proposition unique
     68                une_par_une=non // affiche les questions une par une
     69                corrections=oui // corrige chaque reponse (juste ou fausse) et affiche les precisions eventuelles
     70                solution=non    // donne la(les) bonne(s) reponse(s) lors de la correction
     71                points=oui // affiche eventuellement les points dans les questions
     72                max_radios=5 // nombre maximal de boutons radios affiches avant le choix d'une liste deroulante
     73                colonnes=1 // nombre de boutons par ligne
     74                bouton_corriger=corriger // fond utilise pour le bouton 'Corriger'
     75                bouton_refaire=reinitialiser // fond utilise pour le bouton 'Reset'
     76        ";
     77}
    6978
    7079// cette fonction remplit le tableau $qcms sur la question $indexQCM
     
    322331}
    323332
    324 // configuration par defaut : jeu_{mon_jeu}_init()
    325 function jeux_qcm_init() {
    326         return "
    327                 trou=auto       // taille du trou affiche en cas de proposition unique
    328                 une_par_une=non // affiche les questions une par une
    329                 corrections=oui // corrige chaque reponse (juste ou fausse) et affiche les precisions eventuelles
    330                 solution=non    // donne la(les) bonne(s) reponse(s) lors de la correction
    331                 points=oui // affiche eventuellement les points dans les questions
    332                 max_radios=5 // nombre maximal de boutons radios affiches avant le choix d'une liste deroulante
    333                 colonnes=1 // nombre de boutons par ligne
    334         ";
    335 }
    336 
    337333// traitement du jeu : jeu_{mon_jeu}()
    338334function jeux_qcm($texte, $indexJeux, $form=true) {
     
    344340  $qcms['nbquestions'] = $qcms['totalscore'] = $qcms['totalpropositions'] = 0;
    345341  $titre = $horizontal = $vertical = $solution = $html = $categ_score = false;
     342  $id_jeu = _request('id_jeu');
    346343
    347344  // parcourir tous les #SEPARATEURS
     
    373370  if (!isset($_POST["var_correction_".$indexJeux])) {
    374371        if($form) {
    375                 $pied = '<br />'.jeux_bouton_corriger().jeux_form_fin();
     372                $pied = '<br />'.jeux_bouton(jeux_config('bouton_corriger'), $id_jeu).jeux_form_fin();
    376373                $tete .= jeux_form_debut('qcm', $indexJeux, '', 'post', self());
    377374        }
    378375  } else {
    379         $pied = jeux_afficher_score($qcm_score, $qcms['totalscore'], _request('id_jeu'), join(', ', $qcm_score_detaille), $categ_score);
    380         if($form) $pied .= jeux_bouton_reinitialiser();
     376        $pied = jeux_afficher_score($qcm_score, $qcms['totalscore'], $id_jeu, join(', ', $qcm_score_detaille), $categ_score);
     377        if($form) $pied .= jeux_bouton(jeux_config('bouton_refaire'), $id_jeu);
    381378  }
    382379  // ajout du javascript si on doit afficher une par une
  • _plugins_/jeux/jeux/trous.html

    r35647 r48668  
    1010                fond_score (resultat de 'fonds/jeu_score.html')
    1111               
    12                 bizarre : #SELF ne prend pas en compte id_jeu en backoffice... d'ou : #REM|nettoyer_uri
     12                bizarre : #SELF ne prend pas en compte id_jeu en backoffice... d'ou : #NETTOYER_URI a la place
    1313
    1414]<div class="jeux_cadre jeux_trous">
  • _plugins_/jeux/jeux/trous.php

    r35647 r48668  
    1818separateurs obligatoires : [texte], [trou]
    1919separateurs optionnels   : [titre], [config], [score]
    20 parametres de configurations par defaut :
    21         taille=auto     // taille des trous
    22         indices=oui     // afficher les indices ?
    23         couleurs=oui // appliquer des couleurs sur les corrections ?
    24         solution=non // donne la(les) bonne(s) reponse(s) lors de la correction
    25 
     20parametres de configuration par defaut :
     21        voir la fonction jeux_trous_init() ci-dessous
    2622
    2723Exemple de syntaxe dans l'article :
     
    6864
    6965*/
     66
     67// configuration par defaut : jeu_{mon_jeu}_init()
     68function jeux_trous_init() {
     69        return "
     70                taille=auto     // taille des trous
     71                indices=oui     // afficher les indices ?
     72                couleurs=oui    // afficher les indices ?
     73                solution=non // donne la(les) bonne(s) reponse(s) lors de la correction
     74                bouton_corriger=corriger // fond utilise pour le bouton 'Corriger'
     75                bouton_refaire=recommencer // fond utilise pour le bouton 'Reset'
     76        ";
     77}
    7078
    7179function trous_inserer_le_trou($indexJeux, $indexTrou, $size, $corriger) {
     
    136144}
    137145
    138 // configuration par defaut : jeu_{mon_jeu}_init()
    139 function jeux_trous_init() {
    140         return "
    141                 taille=auto     // taille des trous
    142                 indices=oui     // afficher les indices ?
    143                 couleurs=oui    // afficher les indices ?
    144                 solution=non // donne la(les) bonne(s) réponse(s) lors de la correction
    145         ";
    146 }
    147 
    148146// traitement du jeu : jeu_{mon_jeu}()
    149147function jeux_trous($texte, $indexJeux, $form=true) {
     
    171169        $correction = isset($_POST["var_correction_".$indexJeux]);
    172170        if($correction) sort($score_detailTROUS);
     171        $id_jeu = _request('id_jeu');
    173172        // recuperation du fond 'jeux/trous.html'
    174173        include_spip('public/assembler');
    175174        $fond = recuperer_fond('jeux/trous',
    176                 array('id_jeu' => _request('id_jeu'), 'titre' => $titre,
     175                array('id_jeu' => $id_jeu, 'titre' => $titre,
    177176                        'texte' => $texte, 'correction' => $correction,
    178177                        'indices' => jeux_config('indices')?trous_afficher_indices($indexJeux):'',
    179178                        'fond_score' => !$correction?''
    180                                 :jeux_afficher_score($scoreTROUS, $indexTrou, _request('id_jeu'), join(', ', $score_detailTROUS), $categ_score),
     179                                :jeux_afficher_score($scoreTROUS, $indexTrou, $id_jeu, join(', ', $score_detailTROUS), $categ_score),
    181180                )
    182181        );
     
    184183        $fond = str_replace(
    185184                array('@@FORM_JEUX_DEBUT@@', '@@FORM_JEUX_FIN@@', '@@FORM_CORRIGER@@', '@@RECOMMENCER@@'),
    186                 $form?array(jeux_form_debut('trous', $indexJeux), jeux_form_fin(), jeux_bouton_corriger(), jeux_bouton_recommencer()):'',
     185                $form?array(
     186                        jeux_form_debut('trous', $indexJeux),
     187                        jeux_form_fin(),
     188                        jeux_bouton(jeux_config('bouton_corriger'), $id_jeu),
     189                        jeux_bouton(jeux_config('bouton_refaire'), $id_jeu)):'',
    187190                $fond
    188191        );
  • _plugins_/jeux/jeux_fonctions.php

    r42780 r48668  
    1919        return calculer_boucle($id_boucle, $boucles);
    2020}
    21 
    2221
    2322// filtre retournant un lien cliquable si $nb!=0, sinon un simple tiret
     
    9594}
    9695
     96function balise_NETTOYER_URI_dist($p) {
     97        $p->code = 'nettoyer_uri()';
     98        $p->interdire_scripts = false;
     99        return $p;
     100}
     101
    97102include_spip('public/interfaces');
    98103global $table_des_traitements;
  • _plugins_/jeux/jeux_utils.php

    r43299 r48668  
    167167}
    168168
    169 // fonctions qui retournent des boutons
    170 function jeux_bouton_reinitialiser($item='jeux:reinitialiser') {
    171         $self = nettoyer_uri(); // self();
    172         return '<div class="jeux_bouton_reset">&#091; <a href="'
    173          . parametre_url($self, 'var_mode', 'recalcul').'">' . _T($item) . '</a> &#093;</div>';
    174 }
    175 function jeux_bouton_recommencer() {
    176         return jeux_bouton_reinitialiser('jeux:recommencer');
    177 }
    178 function jeux_bouton_corriger() {
    179         return '<div style="text-align:center;"><input type="submit" value="'._T('jeux:corriger').'" class="jeux_bouton" /></div>';
    180 }
     169// fonction qui retourne un bouton, faisant appel au fond fonds/bouton_{$item}.html
     170function jeux_bouton($item, $id_jeu = 0) {
     171        return recuperer_fond('fonds/bouton_'.$item, array('id_jeu' => $id_jeu));
     172}
     173// fonctions obsoletes
     174function jeux_bouton_reinitialiser() { return jeux_bouton('reinitialiser'); }
     175function jeux_bouton_recommencer() { return jeux_bouton('recommencer'); }
     176function jeux_bouton_corriger() { return jeux_bouton('corriger'); }
     177function jeux_bouton_rejouer() { return jeux_bouton('rejouer'); }
    181178
    182179// liste les jeux trouves, si le module jeux/lejeu.php est present
  • _plugins_/jeux/plugin.xml

    r47456 r48668  
    22        <nom>Des jeux dans vos articles</nom>
    33        <etat>test</etat>
    4         <version>2.1.5</version>
     4        <version>2.2.0</version>
    55        <icon>img/jeux-48.png</icon>
    66        <auteur>Patrice VANNEUFVILLE et Ma&#239;eul Rouquette
Note: See TracChangeset for help on using the changeset viewer.