Avant de répondre, il est utile d'avoir un peu d'histoire sur la façon dont Drupal trouve les modules. Drupal utilise une liste de suggestions de la racine Drupal pour déterminer où trouver les modules. Par ordre de priorité:
sites/$SITENAME/modules
sites/all/modules
profiles/$INSTALLPROFILE/modules
modules
Si Drupal ne trouve pas de module dans (1) , il vérifie (2) . S'il n'est pas là, il vérifie (3) , et ainsi de suite.
Pour (1) , si vous utilisez simplement une installation de base de Drupal sur un seul site, $SITENAME
c'est default
. Autrement:
- Dans Drupal 6,
$SITENAME
est le nom d'hôte du site. Si votre site est situé à example.com
, le $SITENAME
serait example.com
.
- Dans Drupal 7,
$SITENAME
est défini dans sites/sites.php
. Si vous regardez example.sites.php
, vous pouvez voir comment le définir. Il est également important de noter que tout module répertorié ne sera utilisable que pour ces sites spécifiques, pas pour tous les sites.
Dans (2) , tout module qui s'y trouve sera utilisable sur n'importe quel site de l'installation Drupal. Il restera également intact lors de la mise à niveau de l'installation principale. C'est, bien sûr, l'endroit recommandé pour placer les modules et probablement toute la documentation que vous avez lue vous a dit de placer vos modules ici.
(3) est utilisé pour les profils d'installation qui nécessitent un module spécifique. Les profils d'installation sont essentiellement un moyen de définir un état initial personnalisé pour un site Drupal. Par exemple, Drupal est livré avec deux profils d'installation intégrés: Standard, qui inclut les fonctionnalités les plus utilisées, et Minimal, qui ne comprend que le strict minimum nécessaire pour qu'un site Drupal fonctionne.
(4) est utilisé par le noyau Drupal. Bien que vous puissiez techniquement ajouter des modules ici et qu'ils seront disponibles pour tous les sites, vous ne devriez pas. Sérieusement. Le modules
dossier est touché lorsque Drupal core est mis à jour, et posera des problèmes sur toute la ligne si vous collez les modules dont vous avez besoin pour que votre site fonctionne là-bas.
Maintenant que l'arrière-plan est à l'écart, vous pouvez utiliser des astuces de système de fichiers pour que vos modules soient hébergés à l'extérieur de l'endroit où Drupal se trouve.
Par exemple, vous pouvez configurer un lien symbolique de sites/all/modules
vers un autre répertoire en dehors de l'installation Drupal:
- Dans les systèmes basés sur Unix / Linux / BSD:
ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
- Sur Windows Vista / Server 2008/7 et supérieur:
mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder
Pour autant que je sache, vous ne pouvez pas faire grand-chose dans les versions antérieures de Windows qui n'ont pas mklink .