Afficher des diagrammes d’échecs dans SPIP

Objectif

L’objet de la présente contrib (qui consiste en une adaptation du script DIAGOL, écrit par Olivier Bouverot et disponible sous licence GPL) est de permettre l’affichage dans SPIP de diagrammes représentant des positions d’échecs (par exemple comme ici).

Une fois les quelques ficiers nécessaires installés, il suffira aux rédacteurs de noter entre les balises <echecs></echecs> la position d’une partie en notation « habituelle » ou en notation FEN pour générer une image représentant cette position.

Par exemple, en écrivant ceci dans un champ SPIP :

<echecs>r1bqkbnr/pp2pppp/2n5/2p1P3/3p4/2P2N2/PP1P1PPP/RNBQKB1R</echecs>

Vous obtiendrez le résultat suivant :

Configuration nécessaire

La librairie GD doit être installée sur le serveur.

Installation

1. Décompresser l’archive suivante et placez son contenu (un répertoire nommé diagol) à la racine de votre domaine.

Configurez le script en éditant le fichier config.inc.php fourni dans l’archive [1].

2. Ajoutez ensuite les lignes suivantes dans la fonction apres_propre() (si cette fonction n’existe pas encore, créez-la simplement) dans le fichier ecrire/mes_options.php3 (à créer, le cas échant).

function apres_propre($texte) {
	$pattern = "/<echecs>(.*?)<\/echecs>/";
	$remplace = "<p align='center'><img src='/diagol/diagol.php?position=$1'></p>";
	return preg_replace($pattern, $remplace, $texte);
}

En, principe, ça fonctionne dès à présent.


NB : Ceci est un tout premier hack, juste pour essayer l’implémentation de Diagol dans SPIP. Avant la mise en production, il reste l’une ou l’autre chose à faire et notamment 1° passer le code de DIAGOL sous forme de fonctions et 2° créer un petit cache pour éviter de recalculer les images à chaque affichage, ce qui est le cas pour le moment.

Notes

[1Les options disponibles permettent notamment de choisir la taille de l’échiquier, les couleurs de fond, la présence ou non des barres latérales, le sens de l’équichier,...

Discussion

2 discussions

  • 2

    Cette présente contrib vient d’être intégrée dans le plugin ’jeux’
    La syntaxe est quasiment la même.

    Je ne suis pas un spécialiste des jeux d’échec et je fais appel à tous les testeurs ;-)
    Des petits bogues m’ont sans doute échappé !
    Le code du plugin ’jeux’ est librement modifiable (ou plutot améliorable...)

    Voir : Des jeux dans vos articles !

    • Ah très bien. Je crois que le truc qu’il faut vraiment faire, c’est gérer un cache des images générées, pour ne pas recalculer les images à chaque affichage.

    • Je réponds un peu tard, je n’ai pas dû voir passer ta réponse, toutes mes excuses...

      Je pense que ce cache est bien implémenté dans le plugin Jeux : les images sont stockées dans le répertoire local/cache-jeux.

      L’image d’un échiquier est créée si elle n’existe pas. Une vérification a lieu quand même toutes les 12 heures ou si l’utilisateur demande un recalcul manuel de la page.

    Répondre à ce message

  • 2

    Comme signalé en privé à François :
    -  la notation « classique » ne fonctionne pas sous spip. Diagol marche très bien.
    -  des soucis de position des blancs et des noirs (échiqueir inversé)... Ca j’ai pas pu tester avec Diagol, mais à priori ça marche de façon routinière sur plusieurs sites d’échecs.
    -  Enfin depuis dimanche la page donnée en exemple ne marche pas... Difficile de se rendre compte de ce que ça donne...

    Pour ceux que ça intéresse (ou qui veulent échanger sur les sites d’échecs) je peux donner les adresses de mes pages de test...

    En tout cas tenter de « domestiquer » Diagol sous spip est une excellente initiative. Il y a de plus en plus de sites échiquéens sous spip. Une des difficultés c’est justement de pouvoir faire partager les parties en ligne...

    • François Schreuer

      Salut,

      En tout cas tenter de « domestiquer » Diagol sous spip est une excellente initiative. Il y a de plus en plus de sites échiquéens sous spip. Une des difficultés c’est justement de pouvoir faire partager les parties en ligne...

      En fait, cette contrib n’était rien d’autre que ça ; deux ou trois heures passées à essayer de voir comment il était possible de faire cohabiter spip et diagol de manière conviviale pour l’utilisateur. Je n’ai posté ce truc sur spip-contrib qu’en espérant trouver des gens intéressé par l’idée (et je ne pensais d’ailleurs pas que cette contrib serait publiée en l’état).

      Si des gens sont intéressés par le truc, y’a sans doute moyen de développer quelque chose d’assez sympa sur cette idée (peut-être est-ce d’ailleurs un projet pour spip-zone). Mais moi, j’ai pas trop le temps de m’en occuper pour le moment.

      François

    • Clement

      Merci François je trouve Diagol vraiment excellent !!! J’ai juste un petit probleme ou alors je pige pas grand chose, j’ai mon echiquier qui semble à l’envers ... hgfedcba et 87654321 normalement il est dans l’autre sens non ?

    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