Как правильно получить установленный корень документа Drupal? - PullRequest
6 голосов
/ 18 октября 2010

Внутри модуля Drupal мне нужно получить базовый путь, где установлен сайт Drupal.

Например, если сайт drupal установлен по адресу: www.example.com/mysite/, тогда я хочуполучить '/ var / www / myseite'

Если он установлен в: www.example.com/, тогда я хочу '/ var / www'

Какой правильный путь для Drupalвзять это?Я хочу избежать серверных переменных PHP, поскольку я читаю, что они ненадежны.

(Drupal 6 и Drupal 7)

Ответы [ 5 ]

11 голосов
/ 26 января 2011

В Drupal 7 есть новая константа с именем DRUPAL_ROOT , которую вы можете использовать для этого.

5 голосов
/ 18 октября 2010

Для получения полного корня документа файловой системы я использую:

$_SERVER['DOCUMENT_ROOT'] . base_path()

На сервере Linux вы получите что-то вроде:

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

Если вы используете только «base_path ()», вы получите только:

/mysite/

То же на Drupal 6 и 7.

2 голосов
/ 18 октября 2010

Дополнение к ответу Скотта Рейнена:

В шаблоне page.tpl.php он также доступен в переменной $base_path.

Во многих случаях вам даже не нужнознать базовый путь, потому что функции API Drupal добавляют его сами.Например, чтобы напечатать ссылку, вы можете сделать это:

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

Но «способ Drupal» сделать это - использовать функцию l ():

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

Функция l () автоматически добавит базовый путь к href.

1 голос
/ 18 октября 2010

base_path () делает это как в D6, так и в D7.

0 голосов
/ 31 декабря 2013

Для этого можно использовать константу DRUPAL_ROOT.

...