Affichage de document PGN contenant des parties d’échecs

Afficher des fichiers PGN sous forme de diagramme et suite de coups.

Fonctionnalité

Le plugin permet d’afficher des parties d’échecs.
Les parties sont des documents de type « PGN » placés dans un article.

Le rédacteur prépare son article et y télécharge un ou plusieurs documents de type « pgn ». Ce type de fichier est simple à produire pour un joueur d’échecs depuis n’importe quel logiciel (de préférence GPL, bien sur). Le mot clé PGN est associé à l’article ... et c’est fini !

Donc, aucune préparation n’est nécessaire, il suffit de produire un fichier PGN et l’installer dans l’article.

Rédacteur

L’objectif est de faire simple pour les rédacteurs :
-  créer un article avec un texte d’introduction.
-  ajouter un ou plusieurs documents de type « pgn ». Chaque document peut contenir une ou plusieurs parties (voir la description du format PGN).
-  associer un mot-clé à l’article (pour activer un squelette particulier grace au plugin « squelette par mot-clé »).

Donc : aucune préparation (PALVIEW), pas d’applet, simplement un article et des documents attachés.

Remarque : en pratique il ne faut pas dépasser un total de quelques parties (moins de 10) sinon le temps d’analyse et chargement des documents devient trop long. Il est préférable de créer d’autres articles pour y placer les autres parties.

Administrateur / informaticien

Outre l’installation du plugin (qui nécessite CFG), l’administrateur devra utiliser de nouvelles balises, de préférence dans un squelette dédié. Le plus simple est alors d’utiliser le plugin « squelette par mot-clé » qui permet de définir un squelette particulier pour un article selon la présence d’un mot clé.

Les nouvelles balises :
-  #PGN_ECHIQUIER : échiquier, boutons de navigation, sélecteur de partie.
-  #PGN_COUPS : coups de la partie avec commentaires, variantes.
-  #PGN_TAGS : tags provenant du fichier PGN.
-  #PGN_DOCUMENTS : demande le chargement des documents PGN.

L’utilisation normale du plugin est de placer l’échiquier dans un bloc fixe à l’écran tandis que la partie elle-même peut défiler. Le plugin fait alors automatiquement défiler la partie pour que le coup joué soit toujours visible à l’écran (ça fonctionne très bien avec Firefox et assez correctement avec IE).

Visiteur : Affichage de l’article

L’affichage peut contenir les éléments suivants :

  • un diagramme d’échecs
    • l’échiquier avec les pièces
    • des bouton de navigation (coup précedent, suivant, début, fin)
    • un sélecteur de partie (si plusieurs parties sont présentes dans les documents chargés).
  • la liste des coups joués avec les variantes, commentaires
  • la liste des « tags » (informations générales sur la partie)

Le visiteur peut utiliser les boutons de navigation ou cliquer sur un coup dans la liste.
L’échiquier est mis à jour tandis que le coup est affiché en surbrillance.

Comment ça marche ? (un peu de technique)

Le principe de base est de s’appuyer sur un script JAVASCRIPT qui est appelé par les différentes balises. Le chargement des fichiers PGN est délégué à un script PHP ce qui garantit un bon fonctionnement et une performance correcte.

Les inconvénients majeurs de JAVASCRIPT sont :
-  le risque de dysfonctionnement selon le navigateur ou le système d’exploitation
-  un temps de traitement trop important pour des documents PGN un peu conséquent.

J’ai pu constater ces 2 problèmes...

Donc, le PHP est utilisé pour lire un document PGN, analyser les parties et envoyer une information directement exploitable au JAVASCRIPT qui est chargé de l’affichage dans le navigateur.

Note : il serait possible d’utiliser AJAX pour dialoguer entre JAVASCRIPT et PHP, en pratique le protocole est assez simple pour être directement implémenté.

PGN : qu’est ce que c’est ?

-  Une description en français.

La difficulté d’utilisation d’un fichier PGN réside dans le fait que la syntaxe est souple et minimaliste. En clair, il faut une « intelligence » qui suive l’état de l’échiquier pour pouvoir comprendre le prochain coup. L’analyse nécessite donc un peu de temps.

Version 1.3

-  compatibilité SPIP 2.1 : OK.

Version 1.2

-  Quelques corrections internes (paramètres mal gérés).
-  test compatibilité SPIP 2.0 : OK mais le plugin « Squelette par mots clé » ne fonctionne plus, il faut donc trouver une autre astuce pour choisir un affichage spécial.

Modifications à venir

Amélioration des performances :
-  Ne pas charger la totalité des parties mais seulement la liste. Ne réaliser l’analyse et le chargement que lors de l’appel de chaque partie.
-  gérer un cache des parties analysées à la manière de SPIP. Ce cache devra être alimenté lors de l’analyse d’un document et vidé lors de la modification d’un document. (complexe)
-  remplacer les images des pièces par les caractères unicode correspondants.

Discussion

2 discussions

  • 11
    Philippe

    Il va falloir que je teste cela sur Chessnaute

    • Joli site, attention à ce plugin qui n’apprécie pas les « gros » fichiers PGN (contrairement à l’applet utilisée sur Chessnaute).
      Le plugin est adapté pour afficher quelques parties dans beaucoup d’articles (et non pas un article contenant une archive monstrueuse).

    • merci de votre réponse rapide
      -  Hélas j’ai un gros fichier (avec un arbre de plus de 400 variantes) d’un jeu que j’ai mis au point avec mon fils, le jeu du loooup. Il ne s’agit pas de jouer contre un joueur mais de présenter un arbre de variante. S’il ne passe pas, je le scinderai. La position de départ s’obtient après une série de coups à partir de la position initiale qui éliminent les pièces dont on n’a pas besoin en ne laissant que les fous sur les cases blanches et les rois sur les cases noires.

      -  idem pour le fairy chess le final féerique du roi ligoté.

      • Quant aux deux autres créations sur échiquier, flibuuuste la bataille navale et roooque ils sont jouables sur échiquier mais il faudrait pouvoir modifier le logiciel de déplacement des pièces ce qui est hord de ma portée.
        J’attends vos consignes
    • Chessnaute

      Lorsque je clique sur CFG, il n y’a rien de proposé pour configurer le plugin pgn_affiche.
      Etrange, non ?

      Perso je souhaiterais ne pas utiliser le plugin de squelettes, donc j’ai créé un squelette particulier en y plaçant les balises, cependant rien ne s’affiche (et pourtant le code source de la page m’annonce la présence de certains éléments, le chemin vers le fichier .pgn par exemple)

      Pour l’instant je teste en local sous Easyphp

    • Chessnaute

      Je suis passé en test sur Chessnaute, et cela ne fonctionne pas pour l’instant (un gros trait orange est affiché,ainsi que les liens de navigation et comme pour le message précédent)
      Le fichier PGN ne contient qu’une partie.

      A suivre

    • Chessnaute

      Il me manquait #INSERT_HEAD dans le squelette.
      Mais maintenant il y a un problème avec le script
      ==> StringTokenizer.prototype.nextToken et
      return this.lastStr ;

      Argghh, on avance

      Chessnaute-Struppi

    • Chessnaute

      Dans la série on avance, pour supprimer le message précédent il faut allez dans le formulaire « pgn_documents.html » et supprimer /SPIP dans la ligne « initPgn(’#URL_SITE/SPIP/plugins/pgn_affiche’) »
      si comme moi Spip est installé à la racine du site

    • Chessnaute

      Il faut également modifier le fichier d’affichage de l’échiquier pour faire apparaître les boutons (par défaut le chemin des images fait référence à autre chose).

      Si comme moi vous avez utilisé Fritz pour analyser la partie, il vous faudra enlever [Annotator « Fritz 11 (40s) »] au début du fichier pgn, sinon point d’affichage.
      Il faut également faire attention à certaines annotations propres à Fritz (par exemple l’icône de « meilleur est » affiche unknown NAG 142 !?)

      Donc merci pour ce plugin qui me permet enfin d’afficher une partie commentée

    • Chessnaute

      Dernière étape, il m’a fallu mettre les caches à 0 pour pouvoir afficher tous les éléments comme je le souhaitais

    • Bonjour chessnaute,
      je rentre de vacances (océan, ...) pour lire toutes tes remarques.
      Je pense que la plupart des problèmes rencontrés peuvent être traités directement dans le plugin. L’objectif est que l’utilisateur ne fasse aucune manipulation préalable !

      -  configuration du plugin : comme il est précisé dans la configuration depuis CFG : « Aucune configuration nécessaire à ce jour. » ; la gestion par CFG est prête mais vide, c’est normal.
      -  pgn_documents.html : les formulaires ne devraient pas être modifiés, je vais étudier la possibilité de récupérer automatiquement les URL du plugin (peut-être une configuration du plugin depuis CFG).
      -  TAG « Annotator » de Fritz : il ne devrait pas bloquer l’affichage, je debogue.
      -  je ne connais pas toutes les annotations utilisées (NAG), je vais rechercher les autres codes et effectuer un décodage correct.

      Pour les caches, ça semble normal : les manipulations de squelettes imposent d’effacer les caches ou au minimum

      Encore une fois, l’objectif est d’obtenir un affichage sans intervention du rédacteur !

    • Je viens de voir ton site et la partie en ligne.
      Il y a un problème d’affichage : le scroll vertical ne s’effectue pas correctement. L’échiquier devrait toujours être visible et la partie doit défiler pour afficher le dernier coup joué.

      Je regarde ce qui manque pour obtenir cet effet.

    • Chessnaute

      -  TAG « Annotator » de Fritz : il ne devrait pas bloquer l’affichage, je debogue ==> j’ai découvert cela en publiant une partie de genas, qui elle fonctionnait, et la différence était à ce niveau
      -  je ne connais pas toutes les annotations utilisées (NAG), je vais rechercher les autres codes et effectuer un décodage correct.==> si j’en crois wikipédia, ce NAG n’existe pas, donc doit être propre à Fritz

      En tout cas c’est cool

    Répondre à ce message

  • 4
    merle blanc

    bravo pour votre site que je viens de découvrir.
    je voudrais installer votre plugin sur mon site spip : http://www.maison-de-rabaine.eu pour présenter mes créations de jeux sur échiquier
    1. http://groups.google.com/group/loooup?hl=fr
    2. http://groups.google.com/group/roooque_fr?hl=fr
    3. http://groups.google.com/group/fairy-chess?hl=fr
    4.http://groups.google.com/group/flibuuuste?hl=fr
    5. http://groups.google.com/group/echeeecs?hl=fr

    J’ai été pdt du club Echiquier d’Aquitaine (Bordeaux ... ce qui ne m’a fait gagner aucune partie es-qualité !). Je suis nul en japonais et je comprends vite (si on m’explique, mais parfois il faut m’expliquer longtemps !(par exemple je viens de comprendre comment configurer mon plugin blip, et d’installer le moteur de recherche interne google sur mon jeune site , créé le 12.2006)
    Bref si vous voulez me donner un coup de main ce n’est pas de refus.
    merle blanc (avec les blancs !). your move ?

    • Bonjour,
      OK pour de l’aide... sauf en japonais où j’ai encore quelques faiblesses.

      l’installation du plugin suppose :
      -  l’installation du plugin « squelette par mots clés »
      -  l’attribution d’un mot clé spécial (par exemple PGN) aux articles contenant des fichiers PGN.
      -  création d’un squelette article pour le cas PGN (et paramétrage du plugin « squelette par mots-clés »).

      Donc il faut mettre un peu les mains dans le cambouis, ensuite c’est simple pour les rédacteurs.

      Dis-moi ce qui n’est pas clair, je pourrais détailler (je compléterai ma doc en conséquence).

    • J’ai de biens jolis squelettes du XIIè dans la généalogie, mais je ne peux que chanter avec Villon que ce mot clef : si pitié de nous autres avez ... Notez toutefois qu’il m’arrive de comprendre si on m’explique, et si je comprends vite il faut m’expliquer parfois longtemps. Bref le mieux serait que je vous donne un code d’admin dans mon site et ensuite via crossloop en partage d’écran et avec votre aide on line je pourrais mater votre programme à l’arme blanche. Donc je ne peux guère faire plus qu’installer un plugin et le configurer comme d’hab. à la rigueur éditer un code htm si on me dit quoi et où.. bref je suis un Nul de chez Nul.
      le chevalier à la blanche main (qui avait les mains pures parce qu’il ne mettait pas les mains dans le cambouis... mais qui n’avait pas de main non plus ...)

      jeanpascal.blanc@gmail.com

    • Le plugin nécessite un niveau « confirmé », il faut être capable de créer et/ou modifier des squelettes.

      Je vous contacte en direct (mail) et on voit ça. Si nécessaire, je placerai ici le compte-rendu de mon intervention à titre didactique.

    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