Sebelum menjawab, ada baiknya memiliki sedikit latar belakang tentang bagaimana Drupal menemukan modul. Drupal menggunakan daftar saran dari root Drupal untuk mencari tahu di mana menemukan modul. Dalam urutan prioritas:
sites/$SITENAME/modules
sites/all/modules
profiles/$INSTALLPROFILE/modules
modules
Jika Drupal tidak menemukan modul dalam (1) , ia memeriksa (2) . Jika tidak ada di sana, ia memeriksa (3) , dan seterusnya.
Untuk (1) , jika Anda hanya menggunakan instalasi Drupal dasar, satu situs, $SITENAME
adalah default
. Jika tidak:
- Dalam Drupal 6,
$SITENAME
adalah nama host situs tersebut. Jika situs Anda berada di example.com
, $SITENAME
akan example.com
.
- Dalam Drupal 7,
$SITENAME
didefinisikan dalam sites/sites.php
. Jika Anda melihat example.sites.php
, Anda dapat melihat cara mendefinisikannya. Penting juga untuk dicatat bahwa modul apa pun yang terdaftar di sana hanya akan dapat digunakan untuk situs tertentu itu, tidak semua situs.
Pada (2) , modul apa pun yang ditemukan akan dapat digunakan di situs mana pun dalam instalasi Drupal. Itu juga akan dibiarkan tak tersentuh ketika Anda meningkatkan instalasi inti. Ini, tentu saja, tempat yang disarankan untuk meletakkan modul dan kemungkinan semua dokumentasi yang Anda baca telah mengatakan kepada Anda untuk meletakkan modul Anda di sini.
(3) digunakan untuk profil instalasi yang memerlukan modul tertentu. Profil instalasi pada dasarnya adalah cara untuk menentukan keadaan awal khusus untuk situs Drupal. Sebagai contoh, Drupal hadir dengan dua profil instalasi bawaan: Standar, yang mencakup fitur-fitur yang paling sering digunakan, dan Minimal, yang hanya mencakup minimum yang diperlukan agar situs Drupal berfungsi.
(4) digunakan oleh inti Drupal. Meskipun Anda secara teknis dapat menambahkan modul di sini dan itu akan tersedia untuk semua situs, Anda tidak harus. Serius. The modules
folder tersentuh ketika inti Drupal diperbarui, dan akan menyebabkan masalah di telepon jika Anda menempel modul yang Anda butuhkan untuk situs Anda untuk fungsi di sana.
Sekarang karena latar belakangnya tidak memungkinkan, Anda dapat menggunakan trik sistem file untuk menempatkan modul Anda di luar tempat Drupal terlihat.
Misalnya, Anda dapat mengatur tautan simbolis dari sites/all/modules
ke direktori lain di luar instalasi Drupal:
- Dalam sistem berbasis Unix / Linux / BSD:
ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
- Pada Windows Vista / Server 2008/7 dan lebih tinggi:
mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder
Sejauh yang saya ketahui, tidak banyak yang dapat Anda lakukan di Windows versi sebelumnya yang tidak memiliki mklink .
Di Drupal 7, direktori tempat Drupal mencari modul adalah sebagai berikut:
$ profile adalah nilai yang dikembalikan dari drupal_get_profile () ; $ config adalah nilai yang dikembalikan dari conf_path () .
Fungsi yang mencari file objek sistem (modul, tema, dll) adalah drupal_system_listing () .
Direktori yang sama dicari, dalam Drupal 6. Satu-satunya perbedaan adalah $ profil adalah variabel global; ketika variabel global tidak disetel, fungsi mendapatkan nilai variabel persisten "install_profile", yang memiliki nilai default "default."
sumber
Anda dapat menempatkannya di situs / semua / modul, maka mereka akan tersedia untuk semua situs (jika Anda memiliki konfigurasi multi-situs), di situs / default / modul untuk situs default atau situs / site.com / modul jika kamu punya itu. Untuk direktori yang terakhir, ini berarti bahwa direktori tersebut hanya akan tersedia untuk situs tertentu.
Selain itu, Anda dapat mengaturnya seperti yang Anda inginkan di bawah folder itu, artinya, Anda dapat membuat sub-folder apa pun di sana. Hal yang biasa dilakukan adalah membuat folder contrib dan kemudian menempatkan modul yang diunduh dari sana sambil menyimpan modul yang ditulis sendiri untuk situs itu dalam folder khusus.
sumber
Tidak yakin apa yang Anda maksud, tetapi kami menggunakan konvensi yang agak umum memisahkan modul in-house dari modul pihak ke-3.
Modul khusus 'Rumahan' akan ada di:
Modul pihak ke-3 ada di:
Jika memiliki subdirektori tidak sesuai dengan kebutuhan Anda, saya yakin Anda dapat dengan mudah menghubungkan direktori / obscure / path / ke / modul Anda ke direktori modul drupal Anda.
sumber