PlugPdater simplifie la mise à jour manuelle de vos plugins #WordPress

Publié le

par

Crédits Photo Up To Date Ghost Sign by joseph a, on Flickr

Dernièrement, j’ai dû initier 3 environnements WordPress/BuddyPress sur l’Intranet de mon entreprise. Or sur un intranet, il arrive que les firewalls ou autres proxies ne permettent pas de contacter la WordPress.org API pour vérifier si des updates de plugins installés sont disponibles pour le cas échéant automatiser leurs mises à jour. C’est mon cas !

Alors, j’ai étudié un peu la question, et si vous faites face à la même situation, grâce à Plugpdater vous avez désormais trois options.

Option FTP/SFTP

C’est la solution idéale : vous avez la possibilité de directement déposer vos mises à jour de plugin sur le serveur. Pas de chance pour moi : cet accès je l’ai sur mon environnement de développement, mais dés que je vais arriver en production : wallou, macache !

Option Admin WordPress

Comme vous l’avez déjà constaté (ou pourrez le constater), il est possible d’ajouter un plugin manuellement en choisissant l’upload d’une archive zip depuis l’administration des plugins

Interface d’ajout de plugin

Mais si vous souhaitez mettre à jour manuellement ce plugin, l’admin WordPress ne propose pas de solutions. J’ai bien tenté d’utiliser bêtement ce même formulaire d’ajout alors qu’il s’agissait d’un update, la réponse logique de WordPress a été :

Epic Fail!

Plugin install failed because it was an update !! Cependant, il reste possible de mettre à jour le plugin en le désactivant puis en le supprimant pour enfin uploader la nouvelle version.. Un peu relou mais possible !

Supprimer un plugin

Option Plugpdater

Comme la première option n’est pas disponible pour moi et que la deuxième est légèrement prise de tête, un soir j’ai décortiqué les scripts de gestion des plugins pour comprendre un peu plus comment ça marchait avec dans l’idée de me faire « une macro » pour tenter d’automatiser un peu le process. Ce qui a notamment retenu mon attention, c’est le léger débugger que propose WordPress. Vous l’avez sans doute déjà expérimenté, lorsque vous avez une parse error dans votre plugin ou que vous avez appelé une de vos fonctions comme celle d’un autre plugin, et bien votre plugin n’est pas installé et WordPress vous dit où vous avez merdé ! Plutôt cool. En passant wp_redirect() est une fonction clé de ces scripts 😉

Il fallait donc que Plugpdater copie ce comportement. Aussi, si lors de son utilisation, vous vous amusez à glisser des erreurs dans le fichier principal de l’extension, voici l’écran que vous rencontrerez :

OOps, error 🙁

Ok ça peut paraître bizarre de démarrer la présentation de son plugin par la gestion d’une erreur, alors autant continuer !

Lorsque vous uploadez une archive zip pour ensuite utiliser la fonction unzip() de WordPress, on s’aperçoit qu’on ne maîtrise pas forcément le contenu du dossier dézippé. Je m’explique : si j’ai un plugin qui s’appelle ‘plugins-enabler/plugins-enabler.php’ et que pour sa mise à jour j’upload un zip qui me donne ‘je-vais-mettre-le-boxon/je-vais-mettre-le-boxon.php’, pour le coup ça risque d’être légèrement problématique à un moment donné. Il fallait donc que je prévois une confusion de l’utilisateur au moment de choisir son archive zip. Ainsi, si ça ne matche pas Plugpdater ne mettra pas à jour le plugin.

No match!

Maintenant qu’on a évacué les 2 erreurs principales, voici le fonctionnement « normal » de Plugpdater. (Il y a d’autres difficultés qui sont gérés car à un moment donné on va quand même supprimer une version obsolète du plugin ! Il ne s’agirait pas comme ça m’est arrivé au moment du développement de ce plugin de supprimer tout le contenu de votre répertoire /wp-content/plugins !!).
Espérons que cette dernière parenthèse ne vous refroidisse pas dans l’utilisation de ce plugin.. 😉

Sélection du plugin à mettre à jour

Alors, pour mettre un jour un plugin, une fois Plugpdater installé, il s’agit de se rendre sur le menu de l’administration des Plugins, sous menu Plugpdater afin d’afficher une liste de bouton radio et choisir l’extension à mettre à jour.

Téléversement de l’extension à mettre à jour

Ensuite, on upload l’archive zip qui contient la mise à jour afin de déclencher le processus. Lequel prévoit de désactiver le plugin, puis de dézipper la màj dans un répertoire temporaire localisé dans /wp-content/uploads/plugpdater. Ensuite, on vérifie que « pas d’erreur de code » dans cette dernière et que le plugin est bien installé. Après, et c’est le moment le plus critique, on supprime le répertoire de l’extension obsolète pour déplacer la nouvelle version dans /wp-content/plugins. Si tout s’est bien passé, on réactive le plugin !

Tada!

Et voilà ! La description est longue, mais en pratique cela ne prend que quelques secondes 🙂

NB : prudence, je vous invite à tester ce plugin d’abord en environnement de test/Préprod avant de le lâcher sur votre Prod. Il faudra aussi vous assurer que l’utilisateur Apache a les droits nécessaires pour effectuer les manipulations de fichiers au sein des répertoires uploads et plugins.

Comme vous avez pu le constater le plugin est disponible en franglish et en français, il fonctionne sous WP 3.0 à 3.1.1 Multisite ou non, et je serais très heureux de recevoir les feedbacks de celles et ceux d’entre vous qui se seront aventurés à le tester !