Drupal, başka konumlardaki modülleri bulmak için yapılandırılabilir mi?


13

Modüllerimi sitelere / all / modüllerine koydum. Drupal'ı diğer konumlarda da daha fazla modül bulacak şekilde yapılandırmanın bir yolu var mı?


Düzenlenen

Sanal Ana Bilgisayarları sık sık kullanıyorum, ancak tarif ettiğiniz şekilde kullanmıyorum. Bildiğim biçim şu şekildedir ve tüm çalışma projesini www içinde olmayan başka bir yere koymamı sağlar.

<VirtualHost *:80>
    ServerName testdrupal.com
    DocumentRoot "C:/proj/testdrupal"
    ServerAlias testdrupal.com

   <Directory "C:/proj/testdrupal/">
       Options Indexes MultiViews FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

Açıkladığınız şeyin farklı bir şey olduğunu düşünüyorum, değil mi? Drupal klasörünü her zamanki gibi www içinde bırakmaya çalışıyorum, ancak yalnızca siteleri / tüm / modülleri başka bir konuma taşıyorum, ancak yine de bu durumda VHost girdisinin nasıl görüneceğini anlayamıyorum. Diyelim ki C: / proj / testdrupal'a taşımak istiyorum. Umarım seni tamamen yanlış anlamadım.

Yanıtlar:


14

Yanıtlamadan önce, Drupal'ın modülleri nasıl bulduğuyla ilgili biraz bilgi sahibi olmak faydalıdır. Drupal, modüllerin nerede bulunacağını bulmak için Drupal kökünden bir öneri listesi kullanır. Öncelik sırasına göre:

  1. sites/$SITENAME/modules
  2. sites/all/modules
  3. profiles/$INSTALLPROFILE/modules
  4. modules

Drupal (1) 'de bir modül bulamazsa (2)' yi kontrol eder . Orada değilse, kontrol eder (3) , vb.

İçin (1) Eğer sadece bir temel, tek sitesi Drupal kurulumu kullanıyorsanız, $SITENAMEolduğunu default. Aksi takdirde:

  • Drupal 6'da $SITENAMEsitenin ana bilgisayar adıdır. Siteniz adresinde yer alıyorsa example.com, $SITENAMEolur example.com.
  • Siteye 7'de, $SITENAMEtanımlanır sites/sites.php. Eğer bakarsanız example.sites.php, onu nasıl tanımlayacağınızı görebilirsiniz. Burada listelenen herhangi bir modülün tüm siteler için değil, yalnızca söz konusu siteler için kullanılabileceğini unutmayın.

In (2) , herhangi bir modül Drupal kurulum herhangi bir sitede kullanılabilir olacak bulundu. Çekirdek kurulumu yükselttiğinizde de dokunulmadan bırakılacaktır. Bu, elbette, modül koymak için önerilen yerdir ve okuduğunuz tüm belgeler muhtemelen modüllerinizi buraya koymanızı söylemiştir.

(3) belirli bir modül gerektiren kurulum profilleri için kullanılır . Kurulum profilleri esasen Drupal sitesi için özel bir başlangıç ​​durumu tanımlamanın bir yoludur. Örneğin, Drupal yerleşik iki kurulum profili ile birlikte gelir: En çok kullanılan özellikleri içeren Standart ve yalnızca Drupal sitesinin çalışması için gereken minimum değeri içeren Minimal.

(4) Drupal çekirdeği tarafından kullanılır. Teknik olarak buraya modüller ekleyebilmenize rağmen tüm siteler için kullanılabilir olacak olsa da, kullanmamalısınız. Ciddi anlamda. modulesKlasör Drupal çekirdek güncellendiğinde dokunulduğunda ve işleve siteniz için ihtiyaç modülleri orada yapışmasını eğer satır aşağı sorunlara neden olur.


Artık arka plan yoldan çıktığı için, modüllerinizin Drupal'ın göründüğü yerlerin dışına yerleştirilmesi için dosya sistemi hilelerini kullanabilirsiniz.

Örneğin, bir kurabilirler sembolik bağlantıyı gelen sites/all/modulesDrupal kurulum başka dizin dışına:

  • Unix / Linux / BSD tabanlı sistemlerde: ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
  • Windows Vista / Server 2008/7 ve sonraki sürümlerde: mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder

Bildiğim kadarıyla, Windows'un önceki sürümlerinde mklink içermeyen yapabileceğiniz çok şey yok .


Çok teşekkürler, bu gerçekten bunu açıklıyor, ama hala işe koymakta zorlanıyorum. Yazımdaki Düzenle bölümüne bakabilir misiniz? Buraya sığmayacak kadar çok. Teşekkürler.
sameold

@sameold Sembolik bağlantılar hakkındaki bölümü düzelttim ve netleştirdim. Windows'da sembolik bağlantılar biraz kabataslak, ancak sağladığım komutun çalışması gerektiğine inanıyorum.

3

Drupal 7'de, Drupal'ın modül aradığı dizinler şunlardır:

  • modüller
  • profilleri / $ profili / modüller
  • $ Config / modüller

$ profili drupal_get_profile () öğesinden döndürülen değerdir ; $ config, conf_path () öğesinden döndürülen değerdir .
Sistem nesne dosyalarını (modüller, temalar, vb.) Arayan işlev drupal_system_listing () şeklindedir .

Drupal 6'da aynı dizinler aranır. Tek fark $ profilinin global bir değişken olması; genel değişken ayarlanmadığında, işlev varsayılan değeri "varsayılan" olan "install_profile" kalıcı değişkeninin değerini alır.


2

Bunları sitelere / all / modüllerine yerleştirebilir, ardından tüm siteler (birden çok site yapılandırmanız varsa), varsayılan site için sites / default / modülleri veya varsa site / site.com / modüllerine yerleştirebilirsiniz sende var. İkinci dizinler için bu, yalnızca söz konusu site tarafından kullanılabilecekleri anlamına gelir.

Ayrıca, onları bu klasörlerin altında istediğiniz gibi düzenleyebilirsiniz, yani orada hangi alt klasörleri oluşturabilirsiniz. Yapılacak tipik bir katkıda bir klasör oluşturmak ve daha sonra o site için kendinden yazılan modülleri özel bir klasörde tutarak indirilen modülleri oraya yerleştirin.


1

Ne demek istediğinizden emin değilim, ancak kurum içi modülleri 3. taraf modüllerinden ayırmak için biraz ortak bir kural kullanıyoruz.

'Ev yapımı' özel modüller:

siteler / all / modules / özel

3. taraf modülleri:

siteler / all / modules / satıcı

Alt dizinlere sahip olmak ihtiyaçlarınızı karşılamıyorsa, / obscure / path / to / module dizininizi drupal'ın modül dizinine kolayca bağlayabileceğinize inanıyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.