Remplacer proprement des modules du cœur de Drupal grâce à la magie du multisite

· 2 min de lecture

Publication originale

Cet article a été publié à l'origine le 2 avril 2007 sur The Standard, le blogue de Raincity Studios, sous la signature « Boris Mann ». Cet article reflète le contexte et les outils de l'époque; certains liens et services mentionnés n'existent plus. Article traduit de l'anglais. La version anglaise est le texte original.

Voir l'original dans l'Internet Archive

J'ai récemment reçu un courriel de Mark Shropshire (qui m'écrivait apparemment du fin fond d'un laboratoire de recherche secret de l'UNCC) au sujet d'un article où je donnais mes commentaires sur l'un des articles Developerworks d'IBM et où je parlais un peu de bonnes pratiques concernant le multisite, les liens symboliques, etc.

C'est ce paragraphe qui a piqué son intérêt :

Remplacer un module du cœur ne pose aucun problème. Tout module du cœur que vous placez dans /var/www/html/sites/domain.com/modules remplacera le module du cœur de l'installation principale. C'est une façon sûre d'avoir des modules du cœur corrigés sans vous demander si vous aurez des problèmes en mettant à jour votre installation principale de Drupal.

Oui, c'est vrai. Grâce au formidable balayage des chemins de fichiers du multisite de Drupal, vous pouvez placer un module dans votre répertoire local sites/domain.com/modules et il remplacera les modules situés « plus haut » dans le chemin de recherche. Mais Drupal essaie de vous en empêcher en mettant sournoisement en cache le chemin des modules dans la table system, qui ne se rafraîchit que lorsque vous allez à la page Administration / Modules. Voici comment activer plutôt ce module « local » :

0. Mettez votre site hors ligne
1. Allez à admin/modules (4.7 et versions antérieures) ou admin/build/modules (5.0 et versions ultérieures)
2. *Désactivez* le module du cœur que vous voulez remplacer et soumettez la page (le module de remplacement doit déjà être en place)
3. Réactivez le même module : vous devriez maintenant utiliser la version « remplacée »

Comment connaître l'ordre dans lequel Drupal cherche? Consultez la fonction conf_path sur le site de l'API (ce lien porte sur HEAD; c'est légèrement différent pour 4.7 et les versions antérieures). Pour revenir au module « du cœur », refaites les étapes à l'envers, sauf que vous devez alors déplacer le module local pour que le module « du cœur » puisse de nouveau être reconnu.

Dans Drupal 5, il existe en fait tout un autre endroit où chercher des modules : le répertoire profiles (p. ex. profiles/drupal_wiki/modules). C'est un peu déroutant si vous n'êtes pas au courant, puisqu'on ne peut pas savoir, en regardant le dossier sites local, quels modules « supplémentaires » sont rendus disponibles par le profil d'installation. Ai-je mentionné que les liens symboliques vont être bien utiles?

Votre entreprise mérite d'être trouvée.

Parlez-nous de votre projet. Nous vous répondons en français ou en anglais, et nous nous déplaçons partout dans la MRC de Papineau.

Affichage

Vos choix restent dans ce navigateur. Rien n'est envoyé.

Taille du texte
100 %
Couleurs
Lecture
Autres aides
Accessibilité du site