Antes de responder, é útil ter um pouco de conhecimento sobre como o Drupal encontra os módulos. O Drupal usa uma lista de sugestões da raiz do Drupal para descobrir onde encontrar os módulos. Em ordem de prioridade:
sites/$SITENAME/modules
sites/all/modules
profiles/$INSTALLPROFILE/modules
modules
Se o Drupal não encontrar um módulo em (1) , ele verifica (2) . Se não estiver lá, verifica (3) e assim por diante.
Para (1) , se você está apenas usando uma instalação básica de site único do Drupal, $SITENAME
é default
. De outra forma:
- No Drupal 6,
$SITENAME
é o nome do host do site. Se o seu site estiver localizado em example.com
, $SITENAME
seria example.com
.
- No Drupal 7,
$SITENAME
é definido em sites/sites.php
. Se você olhar example.sites.php
, poderá ver como defini-lo. Também é importante observar que qualquer módulo listado lá será utilizável apenas para sites específicos, nem todos os sites.
Em (2) , qualquer módulo encontrado lá será utilizável em qualquer site na instalação do Drupal. Também ficará intocado quando você atualizar a instalação principal. Este é, obviamente, o local recomendado para colocar módulos e provavelmente toda a documentação que você leu disse para você colocar seus módulos aqui.
(3) é usado para perfis de instalação que requerem um módulo específico. Os perfis de instalação são essencialmente uma maneira de definir um estado inicial personalizado para um site Drupal. Por exemplo, o Drupal vem com dois perfis de instalação embutidos: Padrão, que inclui os recursos mais usados, e Mínimo, que inclui apenas o mínimo necessário para o funcionamento de um site Drupal.
(4) é usado pelo núcleo Drupal. Embora você possa tecnicamente adicionar módulos aqui e eles estarão disponíveis para todos os sites, você não deveria. Seriamente. A modules
pasta é tocada quando o núcleo do Drupal é atualizado e causará problemas na linha se você estiver instalando os módulos necessários para que o site funcione lá.
Agora que o plano de fundo está fora do caminho, você pode usar truques do sistema de arquivos para abrigar seus módulos fora do local onde o Drupal está.
Por exemplo, você pode configurar um link simbólico de sites/all/modules
para outro diretório fora da instalação do Drupal:
- Em sistemas baseados em Unix / Linux / BSD:
ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
- No Windows Vista / Server 2008/7 e superior:
mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder
Tanto quanto sei, não há muito que você possa fazer nas versões anteriores do Windows que não tenham o mklink .
No Drupal 7, os diretórios em que o Drupal procura por módulos são os seguintes:
$ profile é o valor retornado de drupal_get_profile () ; $ config é o valor retornado de conf_path () .
A função que procura por arquivos de objetos do sistema (módulos, temas etc.) é drupal_system_listing () .
Os mesmos diretórios são procurados no Drupal 6. A única diferença é que $ profile é uma variável global; quando a variável global não está definida, a função obtém o valor da variável persistente "install_profile", que possui o valor padrão de "padrão".
fonte
Você pode colocá-los em sites / all / modules, e eles estarão disponíveis para todos os sites (se você tiver uma configuração de vários sites), em sites / default / modules para o site padrão ou sites / site.com / modules se Você tem isso. Para os últimos diretórios, isso significa que eles estarão disponíveis apenas para esse site específico.
Além disso, você pode organizá-los como quiser abaixo dessas pastas, ou seja, pode criar quaisquer subpastas lá. Uma coisa típica a se fazer é criar uma pasta contrib e, em seguida, colocar os módulos baixados de lá, mantendo os módulos escritos automaticamente para esse site em uma pasta personalizada.
fonte
Não sabemos o que você quer dizer, mas usamos uma convenção bastante comum de separar módulos internos de módulos de terceiros.
Os módulos personalizados 'caseiros' estariam em:
Os módulos de terceiros estariam em:
Se ter subdiretórios não corresponder às suas necessidades, acredito que você poderia facilmente vincular seu diretório / obscure / path / to / module ao diretório de módulos do drupal.
fonte