La vie des modules

Version imprimableEnvoyer à un amiversion PDF

Observons le module dans son environnement naturel ...

Drupal me signale qu'une mise à jour est disponible

Si vous avez activé le module "Update Status" du coeur de Drupal, et que votre cron tourne régulièrement, vous verrez en effet un avertissement de cet ordre de temps en temps. Il suffit de mettre le module concerné à jour.

Pour mettre un module à jour, sauvegardez d'abord votre base de données [le module Backup & Migrate pourra vous être utile]. Téléchargez le nouveau fichier .tar.gz et décompressez-le. Dans le répertoire sites/all/modules, supprimez le répertoire du module et chargez le nouveau à la place. Revenez dans votre site et lancez le script update.php, en suivant la procédure indiquée. Cela met votre base de données à jour, ce qui est important si le fonctionnement du module a été modifié par le développeur.

Vous pouvez mettre plusieurs modules à jour et lancer (une seule fois pour l'ensemble) le script update.php.

La première fois que vous mettez un module à jour, relisez le fichier README ou INSTALL (voire, un fichier UPDATE ou UPGRADE) pour vérifier s'il y a des recommandations particulières au module.

Mais si je supprime les fichiers, je vais devoir tout reconfigurer !?

Non ! Les fichiers ne conservent que les commandes du module ; vos paramètres sont conservés dans la base de données (en général dans la table "variable" quand il s'agit d'un petit module, ou dans des tables spécifiques pour les plus importants). Ainsi, lorsque les nouveaux fichiers sont chargés, les scripts qu'ils contiennent sont "capables" de retrouver les données nécessaires. Et vos paramètres n'ont pas bougé.

Faut-il désactiver les modules / repasser en thème par défaut (Garland) ?

Non, pas pour une mise à jour de module, si vous êtes toujours dans la même branche de Drupal (D5, D6, D7...). La désactivation des modules et thèmes additionnels n'est requise (ou recommandée) que dans le cas d'une montée en version du core lui-même. Pour que le fichier update.php exécute la mise à jour d'un module, il faut même qu'il soit activé. Pour la mise à jour de Drupal ou d'un thème, référez-vous à la documentation existant par ailleurs (sur Lektum, arNuméral, ou KolossalDrupal, par exemple).

J'ai mis à jour un module, et j'ai un gros message tout rouge !

D'abord, ne vous affolez pas. Ça ne sert à rien !

Pensez toujours à lancer update.php. Par exemple si le message dit "TABLE ... DOESNT EXIST", c'est probablement que dans sa nouvelle version, le module a besoin d'une nouvelle table ; pour qu'il puisse la créer, il faut que update.php tourne.

Si le problème ne vient pas de là, prenez le message dans votre presse-papier (CTRL+C) et partez tranquillement à la pêche aux informations. Première direction à prendre : les issues du module (voir la page "ça marche pas !") : quelqu'un a sans doute eu le même problème. Sinon, envoyez le message d'erreur dans le champ de recherche des forums, ou même de Google. Si vous n'avez toujours pas trouvé, envoyez un message dans les forums ou (mieux) dans les issues du module. Le développeur, ou un autre utilisateur du module, pourra sans doute vous aider.

Et désinstaller un module, c'est quoi ?

Dans la page d'administration des modules, vous voyez un onglet "uninstall" ou "désinstaller".


Quand vous désactivez un module, Drupal conserve toutes les données qui le font fonctionner sur votre site (les paramètres que vous lui avez fixé). De sorte que si, plus tard, vous réactivez le module, vous retrouvez le fonctionnement que vous aviez déterminé.

Désinstaller un module supprime toutes ces données personnelles ; si vous réactivez un module que vous avez désinstallé, vous le retrouvez "comme neuf", comme si vous veniez de le télécharger. Il faudra donc le paramétrer de nouveau.

Autrement dit, ne désinstallez un module que lorsque vous êtes sûr de ne plus en avoir besoin. Inversement, quand vous souhaitez supprimer un module, ne vous contentez pas de le désactiver puis de supprimer les fichiers. Entre ces deux étapes, désinstallez le module pour débarrasser votre base de données devenues inutiles.

Tous les modules désactivés n'apparaissent pas dans la liste des modules à désinstaller : si vous n'avez rien eu à paramétrer, par exemple, il n'y a rien à supprimer. Ou le développeur n'a pas prévu la fonction (parce que les données du module occupent peu d'espace dans la base).