Domanda

All'interno di un modulo Drupal ho bisogno di ottenere il percorso di base in cui è installato il sito Drupal.

Ad esempio, se il sito Drupal è installato in: www.example.com/mysite/ poi voglio arrivare '/ Var / www / myseite'

Se si è installato in: www.example.com/ poi voglio '/ Var / www'

Qual è il modo corretto di Drupal per ottenere questo? Voglio evitare le variabili del server di PHP, come ho letto che sono inaffidabili.

(Drupal 6 e Drupal 7)

È stato utile?

Soluzione

In Drupal 7, v'è una nuova costante chiamato DRUPAL_ROOT , che è possibile utilizzare per questo.

Altri suggerimenti

Per ottenere la radice documento completo dell'uso file system I:

$_SERVER['DOCUMENT_ROOT'] . base_path()

In un server Linux si otterrà qualcosa di simile:

/var/www/html/www.example.com/mysite/

Se si utilizza solo "base_path ()", si otterrà solo:

/mysite/

Lo stesso su Drupal 6 e 7.

L'aggiunta alla risposta di Scott Reynen:

Nel modello page.tpl.php, è disponibile anche nella variabile $base_path.

In molti casi, non hanno nemmeno bisogno di conoscere il percorso di base, in quanto le funzioni API di Drupal aggiungere se stessi. Per esempio, per stampare un link, si potrebbe fare questo:

<?php print '<a href="' . base_path() . 'foo/bar">Foo Bar</a>'; ?>

Ma la "via Drupal" per farlo è quello di utilizzare la funzione l ():

<?php print l('Foo Bar', 'foo/bar'); ?>

La funzione l () aggiungerà automaticamente il percorso di base al href.

base_path () fa questo sia in D6 e D7.

È possibile utilizzare costante DRUPAL_ROOT per questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top