Des jeux avec des scores

Une fonctionnalité avancée du plugin jeux

Le plugin « Des jeux dans vos articles ! » évolue !

Il est désormais possible d’enregistrer les scores des joueurs !

Attention toutefois, car pour le moment c’est encore en cours de test. Mais cela marche globalement.

Par ailleurs, tout les jeux ne sont pas encore configurés pour enregistrer les résultats. Pour le moment le sont de manière sûre :
-  les mot croisés [1]
-  les QCM
-  les tests à trous

Si vous souhaitez que d’autres jeux puissent enregistrer les résultats, contactez les auteurs du plugin. C’est rapide à faire, mais il faut y songer ;-)

Principe

Pour que les scores d’un joueur soient enregistrés, on a besoin de trois choses :

  1. Le joueur doit être connecté sur le site et identifié en tant qu’administrateur, rédacteur ou visiteur.
  2. Le jeu doit être, non pas inclus directement dans l’article, de la manière décrite dans la documentation principale, mais être créé en tant qu’objet SPIP [2], et intégré au corps de l’article via un modèle.
  3. Le Couteau Suisse doit avoir sa lame « balise #INTRODUCTION » activé afin d’éviter que si la balise #INTRODUCTION est présente dans le squelette, les scores soient affichés en double ...

Les scores

Un score de jeu est composé de trois champs :
-  un premier nombre entier représentant le total des points obtenus par le joueur (champ ’spip_jeux_resultats’ de la table spip_jeux_resultats).
-  un second nombre entier représentant le nombre total des points du jeu (champ ’total’ de la table spip_jeux_resultats).
-  un descriptif plus détaillé pouvant informer sur le déroulement du jeu et les différentes réponses données par le joueur (champ ’resultat_long’ de la table spip_jeux_resultats).

Exemple sur un QCM :

resultat_court resultat_long total
6 Q1:R4:2, Q2:R1:0, Q3:R1:1, Q3:R3:2, T4:terre:1 8

Créer un jeu

Si vous ne comprenez rien à ce charabia, ou si vous voulez voir plus loin, je vous invite à me suivre.

Si vous survolez le menu édition, vous devez avoir ceci :

Cliquez alors sur « Jeux » (logique non ?)

Vous devez alors tomber sur une pages qui ressemble à cela :

Cliquez sur « nouveau jeu », vous devez tomber sur ce formulaire :

Détaillons les champs :
-  « Titre privé » -> Il vous servira à mieux identifier le jeu dans l’espace privé.
-  « Contenu du jeu » -> Ici, vous écrivez votre jeu en respectant la syntaxe décrite dans l’article principal. A noter qu’il n’est pas nécessaire de mettre les balises <jeux> et </jeux>
-  « Enregistrer les résultats ? » -> Comme son titre l’indique, permet de choisir si on enregistre les résultats du jeu.
-  « Résultat unique » -> Depuis la version 1.2 seulement, permet de restreindre à un seul résultat par joueur et par jeu.

Cliquez sur "Valider"

Vous arrivez alors sur la page du jeu. Vous pouvez alors choisir le statut du jeu :
-  en ligne (par défaut)
-  refusé
-  à la poubelle ... attention ! le jeu sera supprimé automatiquement de la base de donnée au bout d’un certain temps...

Insérer le jeu dans un article

Il vous reste alors à insérer le jeu dans un article. Repérez à gauche de la page du jeu son numéro, puis éditez l’article dans lequel vous souhaitez insérer le jeu. Pour insérer, il suffit de d’écrire <jeuNNN> où NNN est le numéro du jeu [3].

Voir les résultats

Maintenant, il s’agit de voir comment gérer les résultats.

Si vous retournez sur la page des jeux, vous devez obtenir une liste des jeux, semblable à celle-ci :

Cliquez sur le résultat du jeu, vous arrivez alors sur quelque chose semblable à cela :

Vous pouvez cliquer sur les titres de colonnes pour choisir le critère de tri.

Par ailleurs, en cliquant sur le nom d’un auteur, vous arrivez sur ses résultats.

Réinitialisation des résultats

Il s’agit là d’une fonction réservée aux administrateurs du site.

On distingue deux choix
-  réinitialiser les résultats d’un jeu/d’un auteur.
-  ne garder que le meilleur résultat par couple auteur/jeu, ce que le plugin appelle « compacter ».

Pour se faire, il faut, une fois que vous êtes sur la page des résultats d’un jeu ou d’un auteur, cliquez à gauche sur le liens « gérer les résultats ». Puis suivez les instructions du formulaire.

Affichage dans l’espace public des jeux et/ou résultats

Deux modèles sont proposés pour afficher les résultats dans l’espace public.

Si vous écrivez dans un article <auteur_resultatsxxx> où xxx est le numéro d’un auteur, vous affichez le résultats de cet auteur. [4]

Si vous écrivez <jeu_resultatsxxx> xxx est le numéro d’un jeu, vous obtiendrez le résultats de ce jeu.

Si votre version de SPIP est au moins supérieure à la 2.00, vous pouvez passer le paramètre « ajax » aux modèles (<auteur_resultatsxxx|ajax> ou <jeu_resultatsxxx|ajax>), ce qui permet de ne recharger que les résultats lorsque l’on clique sur un lien pour changer le critère de tri.

Notez que vous pouvez également vous servir dans un squelette de la balise #MODELE{auteur_resultats}{auteur_resultat=#ID_AUTEUR} dans une boucle AUTEURS pour afficher les résultats de cet auteur. [5]

Page de test

Afin de contrôler vos jeux, le plugin vous offre une page de test : /jeu.html. Si un jeu enregistré en base a pour id XX, alors vous pourrez le crayonner et le tester directement en tapant l’adresse suivante : www.monsite.toto/?page=jeu&id_jeu=XX.

Le plugin Crayon n’est pas du obligatoire pour éditer des jeux enregistrés en base, mais assez pratique !

Configurer le plugin

La page de configuration du plugin est accessible (si le plugin CFG est activé) à l’adresse : ecrire/?exec=cfg&cfg=jeux, Ou en cliquant sur l’un des liens y menant.

Pour le moment, il n’y a qu’un seul réglage : choisir ce que fait le plugin si un auteur a déjà joué à ce jeu.

Il peut :
-  garder le dernier résultat (choix par défaut),
-  garder le meilleur résultat,
-  conserver tous les résultats.

Collaboration avec d’autres plugins

-  Le plugin CFG (optionnel) pour la configuration des résultats et certaines options générales pour les jeux.
-  Le plugin Le Couteau Suisse (optionnel) pour la balise #INTRODUCTION et la gestion des jeux supprimés.
-  Le plugin Corbeille (optionnel) pour la gestion des jeux supprimés.
-  Le plugin Crayon (optionnel) pour éditer des jeux enregistrés en base. Le plugin vous offre une page de test : jeu.html. Si votre jeu a pour id NN, alors vous pourrez le crayonner et le tester directement en tapant l’adresse suivante : www.monsite.toto/?page=jeu&id_jeu=NN.

Liens utiles : Grâce à Olivier Gautier, visitez http://spip.ac-rouen.fr/?article37 afin d’avoir un tutoriel graphique sur : installer le plugin jeux, créer un pendu, créer un QCM ou QRM, créer un texte à trous.

Formulaires CVT

Le commit http://zone.spip.org/trac/spip-zone... introduit la gestion des formulaires CVT (Charger-Vérifier-Traiter) de SPIP afin de permettre à certains jeux d’être facilement corrigés en AJAX.

Le système CVT n’est pas pleinement utilisé car l’enregistrement des scores en base se fait au moment du calcul de la correction du jeu, bien avant l’action Traiter.
L’action Vérifier est aujourd’hui toujours validée, car les jeux ne gèrent pas (encore ?) de champ bloquant.

Voici donc pour rappel, les 3 façons pour gérer/afficher un jeu aujourd’hui dans vos articles :
- les jeux inline entre balises <jeux/> et sans score
- les jeux créés en base (avec score), appelés grâce au modèle <jeuXX>
- les jeux créés en base (avec score), corrigés en AJAX grâce au raccourci <formulaire|jeu|XX>

Notes

[1Le score est égal ici au nombre total de cases justes

[2ce que j’appelle objet SPIP est par exemple une rubrique, un article ... bref un truc ayant un contenu et sur lequel on peut faire des boucles

[3Pour les techniciens, il s’agit bel et bien d’un modèle SPIP.

[4Là aussi, le clic sur un titre de colonne permet de choisir le critère de tri. Il y a pour le moment une limite technique. En effet, le tri par résultat se fait selon le résultat absolu et non pas le résultat relatif au nombre total de points possibles. Du coup, 8/16 apparaitra mieux classé que 3/4.

[5Cela n’est pas propre au plugin, il s’agit de l’une des fonctionnalités de SPIP.

Discussion

29 discussions

  • Bonjour, ce plugin est non seulement intéressant, mais aussi très complet. J’avais cependant envie de créer une sorte de jeux suivant : mettre en ligne une ou des dictées - des textes, en fait - avec de mots mal orthographiés (donc des fautes) que l’internaute doit trouver, par exemple en cliquant sur le mot en question. Ce clic déclencherait l’ouverture d’un petit formulaire en pop-up permettant de saisir la bonne orthographe et dont la validation dirait « bravo c’est juste » ou « désolé, mais ce n’est pas ça. Recommencez » ...
    Penses-tu que cela soit possible dans spip 3 ? Cette idée te paraît-elle intéressante ? Je maîtrise pas mal le code spip, html et css, mais pas très bien php. Par contre, je puis faire une espèce de cahier des charges un peu plus précis. Voilà. Merci de tes remarques.
    Marc

    Répondre à ce message

  • 3

    Salut,

    Très bon plugin Spip.
    Le mode jeu inséré dans un article est structurellement léger sans qu’il soit nécessaire de charger inutilement la base de données, donc très intéressant.
    Mais, il ne travaille pas en ajax.
    Cela rend difficile son utilisation sur les sites actuels ou le manque de fluidité est
    mal accepté.

    Si je comprends bien, je ne peux pas choisir l’option jeux dans la bdd (qui marche en ajax), sous peine d’alourdir la base avec des data pour mon cas inutiles : au moins une ligne par jeu et par utilisateur.

    De plus, dans mon cas, la page contient une partie dynamique, dont l’état serait annulé par chaque rechargement de la page, donc le mode jeu inséré est inutilisable (car sans ajax).

    Y a-t-il une solution intermédiaire ?

    Julie

    • La compilation en html du template de jeu mis directement en article cree
      un formulaire , mais il n’est pas CVT.
      Pour travailler en ajax, Spip requiert un formulaire CVT. Donc nativement le plugin ne le permet pas.
      Une solution possible serait de passer ce traitement de template en article en CVT.

    • Ok Michel,

      Merci, je suis toujours intéressée , mais je suis en retard sur un autre projet, et ça risque de durer un moment.
      Pour avancer , je te pm une offre.
      Julie

    Répondre à ce message

  • 3

    Bonjour,
    je pense à une amélioration de l’usage des jeux et surtout une nouvelle manière de récupérer les résultats : ce serait utile en fac ou IUT où tous les élèves ont un email.

    L’élève fait le jeu sans se loguer, répond aux questions et en bas un formulaire avec le nom, téléphone et email à remplir pour recevoir sa note ,ses réponses et si paramétré, les bonnes réponses.

    En même temps, le jeu conserve les réponses associées à l’identifiant / nom/ email/ pour que l’administrateur conserve l’historique et les données.
    On pense à associer un formulaire donc. On voir que sous « Formidable », on peut associer un formulaire aux Jeux : coché.

    Mais après ?
    comment mettre le formulaire dessous le jeu et envoyer à l’élève sa note, ses résultats svp ? Je ne vois pas de doc. merci d’avance.

    • Interessant.
      Mais je n’ai pas trop suivi les evolutions sur la protection des donnees
      en Europe.
      Peut-on demander des infos personnelles comme le telephone, le nom si ca ne se justifie pas par le service offert ?
      De plus, il faut aussi donner , la possiblilte de correction et de
      suppression de ces donnees personnelles aux
      personnes enregistrees .
      Tout ca pour dire que la creation de compte visiteur est obligatoire a priori.
      Heureusement : il y a un plugin « Connexion des l’inscription » qui permet la creation directe de compte.
      Ensuite , les donnees des jeux seront en base.
      Il faut le plugin notifications pour les mails .
      Avec un peu de code ca devrait pouvoir se faire.

    • Bonjour,
      merci de votre réponse Michel,
      au niveau de la question du service offert , on peut imaginer que cela serve :
      -  en éducation : à poster ses réponses (élèves) et obtenir du prof / tuteur une note et une correction
      -  au niveau professionnel/commercial : répondre à des questions qui donnent un poids relatif au client des demandes qu’il fait, sans mettre les prix en public (concurrence) afin d’obtenir un prix définitif s’il veut aller plus loin.
      Donc les coordonnées ne sont dans ce cas pas une option : je comptais les mettre dans un formulaire, rattaché aux réponses du client au « jeux ».
      Ou bien le le tout est fait dans le formulaire ....

      Par contre pour la mise en œuvre, je n’ai pas compris vos explications et je n’ai pas réponse à ma question en plus simple :
      « comment mettre le formulaire dessous le jeu ? » Je ne vois pas de doc."
      merci d’avance !

    • Il y a plusieurs moyens dans Spip a priori, par exemple :

      - Vous pouvez inclure des champs nom /tel/ mail dans le template du jeu meme : les donnees seront alors ecrites dans les tables du plugin jeux.

      - Vous pouvez aussi utiliser directement dans l’article, apres le jeu, le modele

      <formulaire|un_formulaire_existant|>

      (exemple pour un formulaire d’inscription :

      <formulaire|inscription|>)

      - Vous pouvez aussi faire une version perso de article.html
      incluant une balise de formulaire apres le texte de l’article
      (a la maniere des forums)

    Répondre à ce message

  • 1
    fred02840

    Bonjour,
    J’ai installé le plugin Jeux ; mes élèves sont inscrits, et leurs premiers résultats sont dans l’espace privé. Néanmoins, j’aimerais pouvoir récupérer ces résultats sous la forme d’un tableau comme celui qui est proposé ici, dans ce même forum. Comment faire ?
    Je précise que je ne sais plus trop manipuler les boucles et les balises : j’y ai mis le nez il y a une dizaine d’années, avec difficultés, et si je peux m’en dispenser, j’en serais très heureux.

    Merci d’avance pour votre réponse et à bientôt,
    Fr. Stévenot

    • fred02840

      Bonsoir,
      Un petit « up » pour relancer ma question. Je croule sous les résultats (deux classes de 35 élèves à gérer)…

      Merci d’avance, et à bientôt,
      Frédéric

    Répondre à ce message

  • 1

    Salut,

    J’ai dans les cartons une histoire médiévale qui devait prendre vie il y a longtemps. Avec maintenant 1000 photos et vidéos en stock, on va pouvoir concrétiser. :)
    Je vas certainement utiliser le plugin « legendes » pour la navigaton dans cette histoire interactive. Legendes permet l’affichage de texte spip ou de tout ce que l’on veut, lors du survol d’une image. Je pensais ajouter des modèles de jeu dans ces légendes. Le plugin jeu pourrait y contribuer. Pour progresser dans le jeu, l’internaute passerait d’article en article.

    Je me demandais s’il aurait été possible d’afficher l’url de l’article suivant, uniquement si une question avait été remplie correctement ? Idéalement avec une apparition ajaxée de ce lien, au travers un modèle dans une légende.

    Pensez-vous que ce soit possible ? De mémoire l’Ajax SPIP ne marche pas dans les modèles. A moins que ?

    Répondre à ce message

  • 1
    florentp83

    Bonjour,

    J’ai un problème avec le plugin jeux. Je fabrique mon jeu comme indiqué ci-dessus et il apparaît correctement dans la fenêtre jeux. Par contre lorsque j’appelle le jeu avec la balise <jeu1> dans le corps de l’article il ne se passe rien et publie simplement la balise elle-même soit <jeu1>. Que faut-il faire pour que le jeu apparaisse dans l’article ?

    merci pour vos réponses

    • Bonsoir.

      Quel jeu ? Quel SPIP ? Es-tu sûr de la syntaxe de ta balise ?

      Le jeu est-il bien interprété lorsque tu cliques sur « voir en ligne » ?

    Répondre à ce message

  • 3

    Bonjour,

    Je cherche à faire s’afficher le suivi des score de l’utilisateur authentifié dans un article classique, en faisant figurer (a minima) le nom du jeu, voir le must le titre du jeux.
    Le raccourci typo doit définir l’utilisateur par son id_auteur ; je souhaiterais que ce soit automatiquement celui authentifié.

    merci par avance pour la réponse, et surtout déjà merci pour le travail effectué ...
    Bon courage
    gildas

    • Bonjour.

      La piste pour vous est la création d’un modèle : un fichier modeles/toto.html que l’on peut appeler dans un article par <totoX>.

      A lire : http://www.spip.net/fr_article3454.html

    • En gros, c’est le fichier auteur_resultats.html que je dois modifier dans le répertoire modeles du plugins ?!?

      Je ne suis pas très fort en programmation php ... c’est a priori id_auteur=#ENVid qui renvoi le nombre correspondant à l’id de l’auteur voulu ... comment le remplacer par celui en ligne, quelqu’il soit ?

      Merci par avance de vos lumières, si vous avez un peu de temps ...

    • Il ne faut pas modifier de fichier original pour faciliter les prochaines mises à jour. Il faut recopier ce fichier dans le répertoire modeles/ de ton squelette avant de le modifier. SPIP procédera lui-même à la surcharge.

      Pour forcer une boucle sur l’auteur connecté alors il faut se tourner vers la balise #SESSION avec par exemple : id_auteur=#SESSION{id_auteur}. Attention cependant au cache de SPIP, à tester avec précaution : je ne sais pas si le cache est forcément recalculé lorsqu’on appelle un modèle (objet statique chez SPIP), à moins (peut-être !) de placer en plus cette balise dans le squelette utilisant la balise #TEXTE susceptible de contenir le modèle, histoire d’avoir un cache différent par utilisateur...

      Mes connaissances s’arrêtent là, je ne sais pas si je suis clair ! lol

    Répondre à ce message

  • 4

    Bonjour,

    J’ai créé un qcm spip. Je souhaiterai que lors des résultats, un lien « en savoir plus » s’affiche à côté des réponses de chaque questions. Ce lien mènerait à un article détaillant le sujet.

    Est-ce possible, et si oui, quelle est la procédure ? (et accessoirement, ma question est-elle compréhensible ?)

    Je ne parviens pas pour le moment, à caler des liens hypertextes dans les jeux...

    Merci à vous

    • Même en utilisant l’astuce des commentaires ?

      Doc : Des jeux dans vos articles !

      Exemple (non testé !) :

        P1 Proposition 1|Et un commentaire 1 : [->ici]
        P2 Proposition 2|Et un commentaire 2 : [->là]
    • Exact, ça fonctionne... Merci !

    • Encore une question, peut-être un peu plus délicate...

      J’essaye de créer un jeu, où l’on part avec 16 questions. Je donne donc une liste de 16 mots, chacun d’entre eux étant la réponse à une question.

      Est-il possible, en réponse à chaque question, de placer une liste déroulante des 16 mots, parmi lesquels le joueur devra choisir ?

      L’idée, c’est qu’à chaque question, la liste comporte un mot en moins... Question 1, 16 réponses possibles, Question 2, 15 réponses possibles, Question 3, 14 réponses possibles, etc.

      Je pourrai placer la liste des 16 mots au début et créer des questions à trous, mais cela oblige le joueur à revenir consulter sans cesse la liste des mots en haut de page, ce que je souhaite éviter..

      Bonne après-midi !

    • Salut, difficile de se rendre compte vraiment de ce que tu cherches... Mais d’après ce que je crois comprendre, je vois ça en programmation jQeury... La liste des réponses de la question N+1 étant modifiée par la réponse à la question N...

      Mais peut-être je me plante complètement ^^

    Répondre à ce message

  • 14

    Bonjour

    Je mets en place un concours de lecture pour mes élèves de CM2 à Nouméa. Le concours est basé sur le plugin « jeu avec des scores ».
    Celui-ci nous convient parfaitement mais j’essaie désespérément d’ajouter une fonctionnalité consistant à sortir un tableau avec :

    -  en colonnes tous les jeux
    -  en lignes tous les auteurs du site (qui sont en fait moi+les élèves inscrits comme simples visiteurs).

    Mon problème est que je n’arrive pas à récupérer correctement pour un auteur a le score du jeu j dans la BDD.

    Merci de me répondre et bravo aussi pour cet excellent plugin.

    • Bonjour,

      message bien recu

      c’est rapide à coder, mais je n’ai pas le temps avant mardi

      je ferai donc un codage mardi soirr, et commiterai, si tout va bien, dans la soirée

      donc dispo par le paquet de mercredi matin 6 h 30

      je mettrai un message de confirmation

    • D’avance un grand merci.

    • bon, j’ai fait le commit hier soir. Il y a mainteant un page spip.php?pagejeux_resultats_tableau, mais qui doit être encore amélioré, pour la rendre plus modulable, via des noisettes

      En attendant, il y aussi une ébauche de documentation dans l’espace privé. C’est par ici

    • Merci beaucoup... mais ça ne fonctionne pas :-(

      J’avais abouti au même résultat (voir capture) : Quand il n’y a pas de score enregistré pour tel joueur sur un jeu la boucle va passer au jeu suivant et l’afficher dans la première case libre qu’elle trouve. En jetant un oeil dans la BDD je me suis aperçu en effet que les résultats étaient enregistrés ainsi.

      C’est là que je bloquais. Pardon de ne pas l’avoir dit avant.

    • compris !

      il y a une solution que je vois bien possible, mais lourde en terme de boucle et de requet SQL.

      Dans chaque Boucle auteur, refaire une boucle Jeux
      puis dans chaque sous-boucle Jeux, faire une boucle résultat avec critère {id_jeu} et {id_auteur}, et l’usage du code alternatif de boucle (<//B_xx>) -> voir la doc de spip.

      J’ai un lit a démonter-> si je réussi, je code cela cet aprèm, sauf contretemps.

    • bon, je viens de faire le commit ... donc dispo normalement en zip à partir de 19h30, ou maintenant via svn

      j’ai vérifié, ca m’a l’air bon

    • Cela fonctionne en effet.

      Merci beaucoup. Que puis-je faire de mon côté pour aider ?

      (Pardon de tarder à chaque fois pour la réponse... Y’a 10h de décalage horaire avec la Nouvelle-Calédonie)

    • Tu peux nous aider à fignoler l’article de doc si tu veux. Le voici, il n’est pas encore publié, mais ça ne saurait tarder : http://www.spip-contrib.net/ecrire/...

    • Xavier B.

      J’ai jeté un œil et ça dépasse « quelque peu » mon niveau de maîtrise de SPIP.

      Par contre je peux créer d’ici quelques temps un « howto » pour utiliser le plugin jeu dans le cadre d’une évaluation scolaire.

      Par ailleurs j’ai modifié sensiblement « resultats_tableau.html » en ajoutant du PHP (je ne sais pas si c’est l’usage pour les pages spip mais ça marche très bien) afin d’afficher une colonne supplémentaire avec :

      -  le total des points
      -  le pourcentage de réussite.

      <?php
      // definit variables $tjoueur=0 et $tmaxi=0, avec tjoueur = total du joueur et tmaxi = son max possible
      $tjoueur = 0;
      $tmaxi = 0;
      
      // ouvre une boucle SPIP 'autant de fois qu-il y a de jeux pourvu qu'il y ait un auteur'
      echo '<BOUCLE_calcscore(JEUX_RESULTATS){id_auteur}>';
      
      // A chaque occurrence de score on fait t=resultat_court+t et ensuite la somme des maximaux
      // mais avant si resultat_court < 0 on le ramene a 0 pour raisons pedagogiques !
      $scorejeu = #RESULTAT_COURT; 
      if ($scorejeu < 0) {$scorejeu = 0;};
      $tjoueur = $tjoueur + $scorejeu;
      
      $tmaxi = $tmaxi + #TOTAL;
      
      // ferme la boucle sus-nommee
      echo '</BOUCLE_calcscore>';
      
      // affiche le total des points et le pourcentage quand il y a 1 denominateur
      echo $tjoueur,' / ',$tmaxi;
      if ($tmaxi <> 0) {echo ' (', round(($tjoueur / $tmaxi) * 100) ,'%)';};
      ?>
    • pour le « comment faire » (parlons français nom d’un schtroumphf) pourquoi pas ... (il faut proposer l’article dans l’espace privé)

      pour le php, normalement on peut faire cela sans php (si, si !)

      et c’est mieux car on profite alors du cache.

      je coderai pêut-être cela si j’ai le temps / le courage

      par contre j’avoue ne pas saisir « cela dépasse mon niveau spip », puisque vous semblez comprendre le principe des boucles et balises ...

    • Xavier B.

      Le principe des boucles et balises sous spip m’est accessible en effet, mais ma très faible expérience en ce domaine nécessite encore beaucoup de Doliprane :-)
      D’où l’usage du PHP.

      En « 100% spip » je ne voyais pas en outre comment faire.

      Pour l’utilisation du cache, je craignais au départ un risque de mise à jour tardive de l’affichage des résultats.

    • Pour SPIP>2.0, ne serait-ce pas un truc genre :

      #SET{tmaxi, 0)
      #SET{tjoueur, 0)
      <BOUCLE_calcscore(JEUX_RESULTATS){id_auteur}>
      	#SET{scorejeu,
      		#RESULTAT_COURT|<0|?{0, #RESULTAT_COURT}
      	}
      	#SET{tjoueur,
      		#GET{tjoueur}|plus{#GET{scorejeu}}
      	}
      	#SET{tmaxi,
      		#GET{tmaxi}|plus{#TOTAL}
      	}
      </BOUCLE_calcscore>
      
      #GET{tjoueur} / #GET{tmaxi}
      [(#GET{tmaxi}|<>0|oui)
      	#VAL{40}|chr
      	#GET{tjoueur}|div{#GET{tmaxi}}|mult{100}|round
      	#VAL{41}|chr 
      ]

      (non testé !)
      Pour le cache, il faut utiliser la balise #CACHE...

      Désolé Maïeul, #SET et #GET sont des termes bien anglais pour le coup ;-)

    • Pour compléter, voici un nouvel article que Maïeul vient de publier : Boucles et Balises sur le plugin Jeux.

      Je simplifie un peu au passage mon code non testé :

      #SET{tmaxi, 0)
      #SET{tjoueur, 0)
      <BOUCLE_calcscore(JEUX_RESULTATS){id_auteur}>
              #SET{scorejeu,
                      #RESULTAT_COURT|<0|?{0, #RESULTAT_COURT}
              }
              #SET{tjoueur,
                      #GET{tjoueur}|plus{#GET{scorejeu}}
              }
              #SET{tmaxi,
                      #GET{tmaxi}|plus{#TOTAL}
              }
      </BOUCLE_calcscore>
      
      #GET{tjoueur} / #GET{tmaxi}
      [(#GET{tmaxi}|<>0|oui)
              &#040;
              #GET{tjoueur}|div{#GET{tmaxi}}|mult{100}|round
              &#041;
      ]

      Il est possible qu’il faille rajouter des [( )] pour que SPIP interprète bien les balises. Par exemple :

      [(#GET{tjoueur}|div{#GET{tmaxi}}|mult{100}|round)]

    • je viens de commiter un modèle resultats_tableau_totaux qui fait la même chose que le modèle resultat_tableau sauf que
      -  il affiche les totaux (par jeu et par joueur)
      -  il ne pagine pas les jeux (pour des raisons techniques, sinon on aurait du refaire encore des boucles)

      dispo demain matin dans le prochain zip

    Répondre à ce message

  • Ok ! Dommage cela fonctionnait bien. On va essayer mais comme je suis nul, ça va être long et incertain, enfin, on apprend !
    Merci pour l’info

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom