Nous avions parlé il y a quelques semaines de la mise en place d’un plugin Echecs [1] . Aujourd’hui, nous sommes fiers de vous présenter notre dernière version qui contient pas mal d’améliorations.
A la base
La base a été extraite du site DHTMLGoodies qui proposait une solution pour afficher le contenu de fichiers PGN [2] à intégrer dans un site html ou php.
Il est basé sur des fichiers en PHP, JS et CSS.
Les inconvénients de l’intégration d’un tel fichier :
difficultés pour rajouter des fichiers PGN (nécessité d’intervention d’un webmestre)
l’intégration des langues est sans détection (modification manuelle)
la mise en forme du plateau correspond à une page entière et large et n’est pas facilement exploitable pour la DIST.
Une première mouture
La première chose qui a été faite était un modèle qui était appelé par la balise <chessXX> où XX est le numéro de l’article contenant les fichiers PGN. Le modèle boucle sur tous les fichiers PGN et les affiche du plus récent au plus vieux en sélectionnant par défaut le plus récent. Un dossier CHESS reste à la racine du site et les appels des JS et CSS se font par le modèle. La taille restait celle d’origine et quelques adaptations du CSS étaient nécessaires afin d’exploiter correctement la visionneuse.
La mise en plugins
La première mouture ayant pas mal de problèmes, le passage à une version plugin complète s’est avérée indispensable.
2 avantages :
l’appel des fichiers JS et CSS dans le Head
les fichiers pouvant être appelés par SPIP et interprétés directement.
Nous avons donc pu déplacer tous les fichiers qui étaient dans /chess dans un dossier /plugins/chess et donc gagner en facilité de gestion. Quelques chemins relatifs sont peut-être changeable à l’heure actuelle.
Nous avons également rajouté les fichiers de Langue ainsi que leurs variables dans le modèle pour permettre une internationalisation plus aisée.
La mise en forme du modèle a été totalement remaniée par Jacques pour faire afficher le plugins sur la plus petite zone possible.
Nous avons donc ajouté les pipelines pour intégrer les fichiers CSS (3 fichiers à la base) qui n’en forment plus qu’un et les fichiers JS qui ont vu quelques modifications s’opérer.
Une petite cure d’amaigrissement s’est aussi opérée pour supprimer tous les fichiers inutiles à notre plugin par rapport à la version de base.
Une solution a été trouvée pour passer la variable d’environnement de langue en tant que javascript afin d’internationaliser le plugins au niveau des lettres définissant les pièces de l’échiquier dans le parseur.
Le dossier du cache par défaut a été placé sur le dossier /tmp/cache/1 afin de pouvoir vider ce cache en même temps que celui du site.
Une configuration plus aisée
L’idée du plugin est qu’il soit quand même facilement paramétrable. La meilleure solution est de se reposer sur le plugin CFG qui permet de créer une page de paramètres. Voir le très bon article sur Coder un plugin simple avec cfg qui m’a permis de réaliser la page de configuration nous laissant les choix suivant :
taille de l’échiquier (petit/moyen/grand)
vitesse de déplacement des pièces en secondes
choix du design des pièces
choix d’une solution pour traiter le passage des commentaires
Un petit contrôle permet de vérifier si la configuration a été validée pour afficher un message en amont du fichier.
Installation du plugin
- installer le plugin dans le dossier plugins
- également télécharger cfg
- les activer tous deux
- passer par configuration/cfg/voir des parties d’Echecs
Ensuite il ne reste plus qu’à :
créer un article
insérer la balise <chessXX> où XX est le numéro de l’article
enfin télécharger le ou les fichiers pgn que l’on veut afficher
Si vous avez un problème de charset à l’affichage, une solution peut-être de rajouter dans le .htaccess la ligne
AddDefaultCharset on
testé sur certains serveurs (notamment free)
Affichage dans l’interface privée.
Nous avons réalisé qu’il apparait du code Javascript en rouge dans la prévisualisation de l’article dans l’interface privée. Pour parrer à ce problème, vous pouvez utiliser l’option "Gestion du javascript" du plugin "Couteau Suisse" et passer l’option à Toujours.
Il reste à faire...
Beaucoup de choses mais entre autres :
trouver une solution pour la taille du fichier chess.js [3]
permettre de choisir si on veut que le XX s’applique sur un article, une rubrique, un numéro de fichier ou encore à tout le site.
donner la possibilité de désactiver le cache du lecteur de PGN.
corriger une incompatibilité avec certains langues et peut-être quelques bugs entre commentaires et coups alternatifs des fichiers PGN.
permettre l’affichage des sous-variantes.
faire reconnaitre le déplacement au clavier avec les flèches de gauche et de droite pour faire défiler les parties.
...
... Et peut-être beaucoup d’autres choses auxquelles nous n’avons pas pensé. Donnez nous votre avis !
Une nouvelle version du plugin est maintenant disponible, il faut aller la chercher ainsi que la doc sur http://www.spip-contrib.net/Plugin-Chess
Spip Ô Toulouse