it-swarm-eu.dev

Lze Drupal) nakonfigurovat tak, aby vyhledával moduly na jiných místech?

Vložil jsem své moduly na weby/všechny/moduly. Existuje způsob, jak nakonfigurovat Drupal tak, aby bylo možné najít i další moduly na jiných místech?


Upraveno

Virtuální hostitele často používám, ale ne způsobem, který jste popsali. Formát, který jsem obeznámen, vypadá takto a pomáhá mi to umístit celý pracovní projekt někde jinde, ne uvnitř www.

<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>

Myslím, že to, co popisujete, je něco jiného, ​​že? Snažím se opustit složku drupal) uvnitř www jako obvykle, ale přesouvám pouze weby/všechny/moduly na jiné místo, ale stále nemůžu přijít na to, jak bude vypadat položka VHost jako v tomto případě. Řekněme, že to chci přesunout do C:/proj/testdrupal. Doufám, že jsem vás úplně nepochopil.

14
sameold

Před odpovědí je užitečné mít trochu pozadí o tom, jak Drupal najde moduly. Drupal používá seznam návrhů z kořene Drupal, aby zjistil, kde najít moduly. V pořadí podle priority:

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

Pokud Drupal nenajde modul v (1) , zkontroluje (2 ) . Pokud tam není, zkontroluje (3) atd.

Pro (1) , pokud používáte pouze základní instalaci Drupalu na jednom webu, $SITENAME Je default. V opačném případě:

  • V Drupal 6 je $SITENAME Název hostitele webu. Pokud je váš web umístěn na example.com, Bude $SITENAMEexample.com.
  • V Drupal 7 je $SITENAME Definován v sites/sites.php. Když se podíváte na example.sites.php , uvidíte, jak je definovat. Je také důležité si uvědomit, že jakýkoli zde uvedený modul bude použitelný pouze pro konkrétní weby, nikoli pro všechny weby.

V (2) bude jakýkoli nalezený modul použitelný na jakémkoli místě instalace Drupal. Při upgradu základní instalace zůstane nedotčeno. Toto je samozřejmě doporučené místo pro vložení modulů a pravděpodobně veškerá dokumentace, kterou jste si přečetli, řekla, abyste své moduly vložili sem.

(3) se používá pro instalační profily , které vyžadují konkrétní modul. Instalační profily jsou v podstatě způsob, jak definovat vlastní počáteční stav pro web Drupal. Například Drupal je dodáván se dvěma vestavěnými instalačními profily: Standard, který obsahuje nejpoužívanější funkce, a Minimal, který zahrnuje pouze holé minimum potřebné pro fungování Drupal webu.

(4) je používáno jádrem Drupal. I když zde můžete technicky přidat moduly, které budou dostupné pro všechny weby, byste to neměli. Vážně. Složka modules se dotkne, když je aktualizováno jádro Drupal, a způsobí problémy v řadě, pokud nalepujete moduly, které potřebujete pro svůj místo tam fungovat.


Nyní, když je pozadí mimo dosah, můžete pomocí triků systému souborů nechat své moduly umístěny mimo místo, kde vypadá Drupal.

Například můžete nastavit symbolický odkaz z sites/all/modules Do jiného adresáře mimo instalaci Drupal:

  • V systémech založených na Unix/Linux/BSD: ln -s /path/to/modules/folder /path/to/drupal/sites/all/modules
  • V systému Windows Vista/Server 2008/7 a vyšší: mklink C:\path\to\drupal\sites\all\modules C:\path\to\custom\modules\folder

Pokud vím, v dřívějších verzích systému Windows, které nemají mklink , není toho moc.

14
user7

V Drupal 7) jsou adresáře, kde Drupal hledá moduly, následující):

  • moduly
  • profily/$ profil/moduly
  • $ config/modules

$ profile je hodnota vrácená z drupal_get_profile () ; $ config je hodnota vrácená z conf_path () .
Funkce, která hledá soubory systémových objektů (moduly, témata atd.), Je drupal_system_listing () .

Hledají se stejné adresáře v Drupal 6.) Jediným rozdílem je, že $ profil je globální proměnná; když globální proměnná není nastavena, funkce získá hodnotu "install_profile" perzistentní proměnná, která má výchozí hodnotu „default“.

3
kiamlaluno

Můžete je umístit buď na weby/všechny/moduly, pak budou dostupné všem webům (pokud máte konfiguraci pro více webů), do webů/výchozí/moduly pro výchozí web nebo weby/site.com/moduly, pokud máš to. U posledně jmenovaných adresářů to znamená, že budou k dispozici pouze pro tento konkrétní web.

Navíc je můžete uspořádat podle potřeby pod těmito složkami, což znamená, že v nich můžete vytvořit libovolné podsložky. Typickou věcí je vytvoření složky s přispěním a umístění modulů stažených z d.o do této složky, přičemž se vlastní moduly pro daný web ponechají ve vlastní složce.

2
Berdir

Nejste si jisti, co máte na mysli, ale používáme poněkud běžnou konvenci oddělování interních modulů od modulů třetích stran.

„Vlastní“ vlastní moduly by byly v:

weby/všechny/moduly/vlastní

Moduly třetích stran by byly v:

weby/všechny/moduly/prodejce

Pokud mít podadresáře neodpovídá vašim potřebám, věřím, že byste mohli snadno zkomplikovat adresář/temný/cesta/k/modulu do adresáře modulu vašeho drupalu.

1
stefgosselin