Przed odpowiedzią warto zapoznać się z tym, jak Drupal znajduje moduły. Drupal korzysta z listy sugestii z katalogu głównego Drupal, aby dowiedzieć się, gdzie znaleźć moduły. W kolejności pierwszeństwa:
sites/$SITENAME/modules
sites/all/modules
profiles/$INSTALLPROFILE/modules
modules
Jeśli Drupal nie znajdzie modułu w (1) , sprawdza (2) . Jeśli go nie ma, sprawdza (3) i tak dalej.
Dla (1) , jeśli używasz tylko podstawowej instalacji Drupal w jednym miejscu, $SITENAME
jest default
. Inaczej:
- W Drupal 6
$SITENAME
to nazwa hosta witryny. Jeśli Twoja witryna znajduje się w example.com
, $SITENAME
będzie example.com
.
- W Drupal 7
$SITENAME
zdefiniowano w sites/sites.php
. Jeśli spojrzysz na to example.sites.php
, możesz zobaczyć, jak to zdefiniować. Ważne jest również, aby pamiętać, że każdy wymieniony tam moduł będzie użyteczny tylko dla określonych stron, a nie dla wszystkich stron.
W (2) każdy znaleziony moduł będzie użyteczny w dowolnym miejscu instalacji Drupal. Pozostanie to również nietknięte podczas aktualizacji podstawowej instalacji. Jest to oczywiście zalecane miejsce do umieszczenia modułów i prawdopodobnie cała dokumentacja, którą przeczytałeś, kazała Ci umieścić tutaj swoje moduły.
(3) jest używany do profili instalacyjnych, które wymagają określonego modułu. Profile instalacyjne są zasadniczo sposobem na zdefiniowanie niestandardowego stanu początkowego dla witryny Drupal. Na przykład, Drupal ma wbudowane dwa profile instalacyjne: Standard, który zawiera najczęściej używane funkcje, i Minimalny, który zawiera tylko absolutne minimum potrzebne do funkcjonowania witryny Drupal.
(4) jest używany przez rdzeń Drupala. Chociaż możesz tutaj technicznie dodać moduły i będą one dostępne dla wszystkich witryn, nie powinieneś. Poważnie. modules
Folder jest wzruszony, gdy Drupal rdzeń jest aktualizowana i będzie powodować problemy wzdłuż linii jeśli trzymać moduły potrzebne do witryny do funkcji tam.
Teraz, gdy tło jest już na uboczu, możesz użyć sztuczek systemu plików, aby umieścić moduły poza miejscem, w którym wygląda Drupal.
Na przykład możesz skonfigurować dowiązanie symboliczne z sites/all/modules
innego katalogu poza instalacją Drupal:
- W systemach opartych na Unix / Linux / BSD:
ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
- W systemie Windows Vista / Server 2008/7 i nowszym:
mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder
O ile mi wiadomo, nie ma wiele można zrobić w starszych wersjach systemu Windows, które nie mają mklink .
W Drupal 7 katalogi, w których Drupal szuka modułów, są następujące:
$ profil to wartość zwracana przez drupal_get_profile () ; $ config to wartość zwracana z conf_path () .
Funkcja wyszukująca pliki obiektów systemowych (moduły, kompozycje itp.) To drupal_system_listing () .
Te same katalogi są wyszukiwane w Drupal 6. Jedyna różnica polega na tym, że $ profil jest zmienną globalną; gdy zmienna globalna nie jest ustawiona, funkcja otrzymuje wartość trwałej zmiennej „install_profile”, która ma domyślną wartość „default”.
źródło
Możesz umieścić je w witrynach / wszystkich / modułach, wówczas będą one dostępne dla wszystkich witryn (jeśli masz konfigurację obejmującą wiele witryn), w witrynach / domyślnych / modułach dla domyślnej witryny lub witryn / witryny.com / modułów, jeśli masz to. W przypadku tych ostatnich katalogów oznacza to, że będą one dostępne tylko dla tej konkretnej witryny.
Dodatkowo możesz je porządkować pod tymi folderami, co oznacza, że możesz tworzyć tam wszystkie podfoldery. Typową rzeczą do zrobienia jest utworzenie folderu contrib, a następnie umieszczenie pobranych z niego modułów przy jednoczesnym zachowaniu samodzielnie napisanych modułów dla tej witryny w folderze niestandardowym.
źródło
Nie jestem pewien, co masz na myśli, ale używamy dość powszechnej konwencji oddzielania modułów wewnętrznych od modułów innych firm.
Moduły niestandardowe „domowej roboty” byłyby w:
Zewnętrzne moduły będą w:
Jeśli posiadanie podkatalogów nie odpowiada twoim potrzebom, uważam, że możesz łatwo dowiązać swój katalog / obscure / path / to / module do katalogu modułów twojego drupala.
źródło