Les tribulations d’un non développeur: mon premier plugin

Ca y est! J’ai publié mon premier plugin wordpress aujourd’hui. Une aventure très excitante pour un non développeur. Il a fallu toucher à plusieurs technos de bases: Flash, php, Javascript, ActionScript, cookies. Il a également fallu se lancer dans les frameworks specifiques: jQuery, jQuery UI, Worpress Plugins API et WordPress Settings API.  Et bien sûr, un peu de XHTML et CSS. Un peu beaucoup pour un seul homme, mais ce fut très enrichissant.

Comment m’est venu cette idée? Après avoir vu chaque jour la pub s’afficher à l’entrée sur Yahoo.fr ou des messages de bienvenue sur un site comme daniweb.com, je me suis dit, ce serait bien d’avoir une animation flash qui s’affiche à l’entrée sur le site www.ibconsulting.fr. Alors j’ai réalisé une animation flash vite fait, avec swish max. Ensuite, il était question de l’afficher sur le site. Le site étant fait en wordpress, l’interface API des plugins semblait être la bonne solution. J’ai donc bricolé un truc vite fait qui affichait systématiquement l’annonce de bienvenue. Sauf que, me suis-je dit, comme je fais si je veux changer d’animation, changer de mode d’affichage, ou encore installer cette fonctionnalité sur un autre site? Et là je me suis lancé dans le développement d’un plug in grandeur nature.

Au début j’ai  un peu pateaugé pour trouver les infos, mais on y est arrivé. De bonnes infos sur les forums et les blogs, et bien sûr, dans le codex wordpress. Pas toujours toutes à jour, mais on y arrive.- A bien y réfléchir, je me dit que ce serait bien d’avoir un site web qui aggrège les tutoriaux sur les différentes technos et les affiche par ordre de version et de meilleurs votes. Quelqu’un veut travailler sur ce projet avec moi? -.

Un truc sur lequel j’ai pateaugé pendant longtemps: comment rendre le texte de l’animation flash dynamique, en définissant la valeur depuis le serveur ou le javascript? J’ai vraiment pateaugé, d’autant plus qu’il n’y a pas vraiment de direction claire sur le site d’adobe. J’ai d’abord essayé la méthode SetVariable, une méthode censée être spécifique aux objets flash et appelée en Javascript.(les détails). Tout d’abord, je n’ai pas pu trouver un seul exemple d’utilisation de cette fonction sur le net. Après moults essais, j’ai finalement abandonné. J’ai ensuite essayé de charger les variables par script depuis le fichier flash directement. Et là j’ai approché les « joies » de l’ActionScript. Mon éditeur flash est SwishMax 2.0 et ils ont une aide bien faite (sur certains sujets). Donc j’ai fouillé sur le net et j’ai vu qu’il fallait utiliser la méthode loadvariables() en swish. Il fallait avoir les paramètres dans un fichier texte ou serveur (php / asp) et avec loadvariables on pouvait alimenter les paramètres. Ca marchait très bien. Mais voilà, si cette méthode peut théoriquement interpréter un chemin relatif, le chemin relatif est déterminé à partir du dossier temporaire dans lequel le fichier flash est exécuté sur le poste client. En conséquence, il est impossible de donner un chemin relatif sur le serveur ! Grrrr. Et moi, comment je fais pour pouvoir afficher dynamiquement le nom du serveur qui veut installer mon plugin?! Je continue de fouiller sur google et je tombe sur un article qui dit comment communiquer entre javascript et flash. Rien qu’en voyant le titre (« how to communicate between flash and javascript »), je me dis bingo, je suis tombé sur le bon filon. Alors, j’essaie tout ce que le gars dit, mais au final ça marche toujours pas. Il semblerait que dans SwishMax l’instruction import flash.ExternalInterface ne marche pas. What a pity! Au bord de l’abandon, je passe par le plugin kimili qui fait l’integration de fichier flash dans wordpress et je vois qu’il peut passer des paramètres au fichier. J’essaie de voir sur google et là, je vois que parmi les paramètres optionnels lors de l’instanciation d’un fichier flash, il y a, roulement de tambour, FlashVars! Et même, un gentil gars nous a fait un topo détaillé dessus. Un sourire se dessine sur mes lèvres.  Je ne vous dis même pas quelle heure il est. Vite, il faut que je teste. Et là, bingo! Ca fonctionne. Je n’ai plus qu’à envoyer mon texte dynamique via php, et le tour est joué! Ca  rouuule. 

 <PARAM name=FlashVars value="<?php echo $welcome_animation_params; ?>"/>

Tout ça, ça n’était que pour afficher un texte dynamique. Je ne vous raconterais pas ce que ça été pour bien faire fonctionner les cookies à l’intérieur du circuit WordPress, faire zoomer le rectangle de l’animation de façon fluide, de changer la transparence de l’animation avant de commencer à la jouer ou encore de tester dynamiquement l’instanciation de jQuery sur la page. Une aventure très très excitante au final.

Vous avez déjà du voir une annonce de bienvenue quand vous vous êtes connecté sur ce site. Si vous voulez la revoir ou avoir plus de détails, vous pouvez voir la page du plugin ici.

Merci à MB qui a accepté mon « Castorama » pendant tout ce temps et a bien voulu me servir de testeur(testrice?) pour les effets visuels.

Tags: , , , , , ,

One Response to “Les tribulations d’un non développeur: mon premier plugin”

Leave a Reply