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

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 !