Табличка с результатами функций при открытой странице http://example.com/drupal/documentation?page=1
, где drupal
— это папка в которой располагается Drupal, а documentation
— синоним к адресу node/123
:
$GLOBALS['base_root'] | → | http://example.com |
$GLOBALS['base_url'] | → | http://example.com/drupal |
$GLOBALS['base_path'] или base_path() | → | /drupal/ |
request_uri() | → | /drupal/documentation?page=1 |
request_path() | → | documentation |
current_path() или $_GET['q'] | → | node/123 |
arg(0), arg(1) | → | node, 123 |
Замечания:
- значение в
$GLOBALS['base_url']
никогда не содержит завершающий слэш, в отличии от$GLOBALS['base_path']
иbase_path()
. current_path()
не работает вhook_boot()
.
Оригинал заметки — URI, path, aliases, oh my!.
Написанное актуально для
Drupal 7
Комментарии
Думаю, что стоит добавить arg(), без аргументов
И drupal_get_path_alias для коллекции )
$_GET['q'] и $GLOBALS['base_path'] туда же.
$_GET['q'] меняет значение в процессе бутстрапа, не рекомендуется его использовать
К словам андеда ещё могу добавить вот такие строки, найденные в модуле приватных сообщений:
Тогда и current_path() надо из списка убрать...
http://api.drupal.org/api/drupal/includes--path.inc/function/current_pa…
:D
drupal_get_query_parameters() для получения GET параметров запроса. Для указаного примера, чтобы получить page=1
Добрый день.
Скажите, а для версии 8 не планируете написать аналогичную статью ?
Используйте
\Drupal::service('current_route_match')->getRouteName();
А якорь как получить? Добавить бы неплохо про него - забыли может?
Якорь на сервер не передаётся
А как кроме $_GET['q'] получить аргументы для urlencode строк?
Добавить комментарий