SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

26 visiteurs en ce moment

fontsizeup fontsizedown
Accueil du site > Contribs > Interactivité, communication > Jeux > Echecs dynamiques PGN > Echec Dynamique PGN(Plugin) > Affichage de document PGN contenant des parties d’échecs
[17 commentaires]

Affichage de document PGN contenant des parties d’échecs

mercredi 11 juin 2008, par yazul

1 vote

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.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.

Voir en ligne : Genas Echecs

Retour en haut de la page

17 Messages de forum

Voir toute la discussion

Pages 1 | 2

  • Répondre à ce message

    30 juillet 2008 16:23 , par 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

    30 juillet 2008 11:42 , par yazul

    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.

  • Répondre à ce message

    30 juillet 2008 11:30 , par yazul

    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 !

  • Répondre à ce message

    28 juillet 2008 13:51 , par Chessnaute

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

  • Répondre à ce message

    27 juillet 2008 15:55 , par 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

  • Répondre à ce message

    27 juillet 2008 11:55 , par 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

  • Répondre à ce message

    27 juillet 2008 10:09 , par 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

  • Répondre à ce message

    21 juillet 2008 17:03 , par 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

  • Répondre à ce message

    14 juillet 2008 17:07 , par 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

Pages 1 | 2

Répondre à cet article

Retour en haut de la page

Ça discute par ici