Прежде чем ответить, полезно немного рассказать о том, как Drupal находит модули. Drupal использует список предложений от корня Drupal, чтобы выяснить, где найти модули. В порядке приоритета:
sites/$SITENAME/modules
sites/all/modules
profiles/$INSTALLPROFILE/modules
modules
Если Drupal не находит модуль в (1) , он проверяет (2) . Если его там нет, он проверяет (3) и так далее.
Для (1) , если вы просто используете базовую установку Drupal для одного сайта, $SITENAME
есть default
. В противном случае:
- В Drupal 6
$SITENAME
- это имя хоста сайта. Если ваш сайт находится по адресу example.com
, $SITENAME
будет example.com
.
- В Drupal 7,
$SITENAME
определяется в sites/sites.php
. Если вы посмотрите example.sites.php
, вы можете увидеть, как это определить. Также важно отметить, что любой модуль, указанный там, будет использоваться только для этих конкретных сайтов, а не для всех сайтов.
В (2) любой найденный там модуль можно будет использовать на любом сайте установки Drupal. Он также останется нетронутым при обновлении основной установки. Это, конечно, рекомендуемое место для размещения модулей и, вероятно, вся документация, которую вы прочитали, предложила вам разместить свои модули здесь.
(3) используется для профилей установки, которые требуют определенного модуля. Инсталляционные профили - это, по сути, способ определения пользовательского начального состояния для сайта Drupal. Например, Drupal поставляется с двумя встроенными профилями установки: Стандартный, который включает в себя наиболее часто используемые функции, и Минимальный, который включает в себя только минимальный минимум, необходимый для работы сайта Drupal.
(4) используется ядром Drupal. Хотя вы можете технически добавлять модули здесь, и они будут доступны для всех сайтов, вы не должны. Шутки в сторону. К modules
папке тронут, когда обновится ядро Drupal, и это вызовет проблемы в дальнейшем, если вы вставляете модули, необходимые для работы вашего сайта.
Теперь, когда фон исчез, вы можете использовать хитрости файловой системы, чтобы разместить ваши модули вне того места, куда смотрит Drupal.
Например, вы можете установить символическую ссылку из sites/all/modules
другого каталога вне установки Drupal:
- В системах на основе Unix / Linux / BSD:
ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
- В Windows Vista / Server 2008/7 и выше:
mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder
Насколько я знаю, вы не можете многое сделать в более ранних версиях Windows, в которых нет mklink .