Plugin Post-lister pour Wordpress - version 0.4

Je viens de taguer la version 0.4 de mon plugin Post-lister avec pas mal de petites nouveautés.

La première et la plus importante fait suite à la demande d'Adrian et ajoute de deux nouveaux paramètres permettant d'afficher le contenu des articles et commentaires listés ainsi que l'avatar de l'auteur.

On a ensuite plusieurs améliorations plus mineures :

  • suite à la question de Sandrine, j'ai mis à jour la documentation en listant les options de tris propres à chaque liste et pour faciliter la configuration des widgets, j'ai remplacé le champ texte par un menu déroulant, ce qui évite d'avoir à retenir lesdits paramètres.
  • comme je trouvais les formulaires de configuration des widets un peu hauts, je les ai tous les deux découpés en deux colonnes ce qui évite d'avoir à "scroller" pour en voir le bout.
  • j'ai également complété les liens vers les commentaires dans les listes de commentaires pour qu'ils pointent sur le commentaire en lui-même (via l'ancre prévue à cet effet dans les thèmes bien faits) plutôt que bêtement vers le haut de la page de l'article associé.
  • j'ai enfin corrigé un bug qui faisait que si l'on cliquait sur le bouton "annuler" du formulaire de l'un des widgets puisqu'on enregistrait les modifications, le widget perdait l'ensemble de ses configurations.

Par ailleurs, j'ai également un peu revu la doc et rajouté un fichier readme en français.

Voilà voilà, c'est tout pour cette mise à jour, mais ça me semble déjà pas mal ^^


Un peu plus de place...

Cela faisait un bout de temps que je trouvais le design de ce site un peu trop étroit, ce qui engendrait en particulier des pages beaucoup trop hautes pour les articles un peu longs. De plus, à l'origine je l'avais fait pour qu'il s'affiche parfaitement avec une résolution 800x600 mais ce n'est plus forcément d'actualité : d'après Google Analytics, seules 8 visites (soit 1.24%) ont été faites avec cette résolution, ce qui est bien peu.

Faire un design flexible serait pas mal mais ça interdit de mettre une bannière très travaillée en haut. De plus, sur un écran très large, ça donne des lignes vraiment trop longues (un écran panoramique c'est bien pour un film, vu que c'est le format utilisé et pour un ordinateur portable pour réduire l'encombrement mais dans tous les autres cas, ça me semble plus emmerdant qu'autre chose...).

En conséquence, j'ai retouché un peu le thème en sortant la "sidebar" : la partie principale reste toujours consultable sans problème en 800x600 et l'ensemble s'affiche entièrement en 1024x768, donc ça me semble un bon compromis. Et on évite de "scroller" inutilement sur les articles longs ^^

Avant
Avant
Après
Après

En tous cas, c'est fou le temps qu'on peut perdre sur des CSS... et une fois qu'on croit en être sorti, on regarde ce que ça donne sous IE et c'est reparti pour un tour :tired: Vivement que cette brave merde d'IE6 disparaisse du marché... Bon en même temps, je pourrais décider de laisser tomber la compatibilité avec cette antiquité, d'autant que seul 25% des visites sur ce site se font avec IE (toutes versions confondues, dont un tiers avec IE6) mais j'essaie de faire en sorte d'avoir quand même un truc regardable et rien que ça c'est pas toujours évident.


Quelques jeux pour iPod Touch/iPhone #2

Galcon Lite

Galcon Lite

Un petit jeu de conquête spatiale mêlant stratégie et vitesse. Chaque joueur commence avec une planète et doit éradiquer son adversaire de la zone en lui prenant toutes ses planètes. Pour ce faire, il lui faudra conquérir des planètes neutres et reprendre les planètes conquises par l'adversaire avant de se faire submerger.

Il y a différents modes de difficulté, les premiers étant vraiment très simples, mais ça commence à sérieusement se corser au niveau 6 (Amiral). Une partie ne dure que quelques minutes, mais on a facilement tendance à les enchainer.

Une version payante propose apparemment d'autres modes de jeu ainsi qu'un jeu multijoueur, mais je ne l'ai pas testé. Une version Mac/PC/Linux existe également parallèlement à la version iPod Touch/iPhone.

Orions: Legend of Wizards (3€99)

Ce premier jeu payant que j'ai tenté s'inspire fortement de Heroes of Might and Magic dont il reprend le principe du tout par tour, de la conquête de villes où l'on construit des bâtiments permettant de produire des unités.

Orions: Legend of Wizards - le menu principal Orions: Legend of Wizards - la carte du monde

Il ne s'agit pas cependant d'un bête clone puisque le système de combat est un peu différent et se rapproche plus d'une partie de jeu de cartes à collectionner : chacun des deux joueurs peut jouer une carte par tour qui est soit une créature, soit un sort, puis chaque créature de son camp attaque la créature située devant elle, ou - à défaut - le joueur adverse. Les créatures peuvent également avoir des pouvoirs activable une fois par tour avant l'attaque. Contrairement à un jeu de cartes à collectionner classique, le joueur a accès à toutes ses cartes (pas de pile de pioche), ce qui a pour avantage de supprimer la dose de hasard qui accompagne en général ce genre de jeux.

Orions: Legend of Wizards - les villes Orions: Legend of Wizards - les combats

Dans l'ensemble le jeu est sympa, avec de bons graphismes et une musique agréable. Je m'interroge cependant sur l'aspect répétitif à long terme (on est plus exigeant de ce côté-là pour un jeu payant que pour un gratuit, forcément)... pour l'instant je n'ai fait que deux parties, on verra à l'usage.

Bix Lite

Bix Lite

Ce jeu, est un clone de Qix - un jeu d'arcade datant de 1981 - où but est de tracer des lignes sur l'écran jusqu'à colorer 75% de la surface. Jusque-là c'est simple mais tant qu'une ligne n'est pas terminée, il ne faut surtout pas que l'un des billes présente ne la touche. Évidemment, plus on avance, plus il y a de billes à se promener dans la zone et donc plus la difficulté grandit.

Le jeu est sympa même si l'on peut regretter ses graphismes très pauvres (quasiment identiques à ceux de Qix qui ont près de trente ans, donc forcément...). La version gratuite se limite à 6 niveaux, la version payante (0€79) va plus loin.


Bien coder son plugin WordPress

WordPress c'est bien, y a plein de plugins dans le repository qui font un peu tout ce qu'on peut imaginer. Le hic, c'est que bien trop souvent, quand on en installe un, ben ça marche pas ou alors ça marchotte puis ça s'effondre un beau jour suite à l'installation d'un autre plugin ou encore on perd une partie des configuration suite à une mise à jour... Ceci arriverait beaucoup moins souvent, si certaines lignes de conduite étaient plus souvent suivies.

Voici donc quelques recommandations à suivre pour développer un plugin WordPress. C'en sont quelques une parmi d'autres, vos plugins ne seront pas parfaits juste parce que vous aurez suivi ces recommandations, bien entendu, mais ça évitera certains problèmes à vos utilisateurs...

Intégration de jQuery

jQuery permet d'effectuer de nombreuses opérations avec du code synthétique et surtout multi-navigateur, c'est bien, mangez-en. Par contre, dans les plugins WordPress, c'est souvent intégré n'importe comment.

Déjà, WordPress inclut jQuery de base, donc nul besoin de le joindre au plugin.

Ensuite, inclure jQuery "à la main" via une balise script en dur, quand le plugin est tout seul, ça marche bien. Si un autre exploite directement jQuery sans extension, la page est plus lente parce que jQuery est chargé plusieurs fois, mais ça marche aussi. Par contre dès qu'un plugin utilise des extensions de jQuery, là c'est moins cool : en effet, pour peu que ce plugin ne soit pas le dernier à être appelé, l'extension a toutes les chances d'être écrasée lors d'un autre chargement de jQuery... Et cela peut ne se produire que sur certaines pages selon les plugins, donc ça peut être difficile à détecter.

Heureusement, WordPress propose une fonction bien pratique qui permet d'intégrer des javascript sans écrire directement la balise script et surtout en indiquant des dépendances, ce qui évite les scripts inclus dans le mauvais ordre. Cette fonction s'appelle wp_enqueue_script et est définie dans le fichier wp-include/functions.wp-scripts.php.

En particulier, pour inclure jQuery, il suffit d'appeler : wp_enqueue_script('jquery');

Et accessoirement, préférez un appel à l'objet jQuery plutôt qu'un appel à $ dans votre code, car si un autre plugin inclut une bibliothèque qui utilise aussi le $, ben... kaboum !

Ne pas gêner les mises à jour

Lorsqu'on met un plugin à jour, le dossier qui le contient est remplacé par la nouvelle version. En conséquence, si des fichiers ont été ajoutés ou modifiés dans ce dossier, ils seront écrasés par la mise à jour.

Cette pratique donc est à éviter absolument. Préférez une écriture en base de données, là aucun problème en cas de mise à jour :


Corrections pour le plugin "Subscribe to Comments"

Suite à la demande de Nikohk, Je viens d'installer le plugin Subscribe to Comments.

Comme souvent quand on installe un plugin WordPress, il faut mettre la main dans le cambouis si on veut que ça tourne correctement... Là, je me suis limité à faire en sorte que la traduction Française soit correctement prise en compte (et au passage de la compléter avec les quelques clés qui manquaient). L'ensemble est récupérable ici (le fichier de traduction seul est directement téléchargeable ici), avis aux amateurs. J'ai posté mes modifications en commentaire sur le site de l'auteur du plugin, donc avec un peu de chance elles seront prises en compte par la prochaine version...

Sinon, j'ai pas poussé trop loin les tests sur le reste du plugin, espérons qu'il marche bien...

Et au passage, j'ai aussi mis à jour WordPress en version 2.7 et ajouté également le plugin Ajax Edit Comments.