xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Функции для получения текущего адреса

Опубликовано в

Табличка с результатами функций при открытой странице 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
Похожие записи

Комментарии RSS

Думаю, что стоит добавить arg(), без аргументов

И drupal_get_path_alias для коллекции )

$_GET['q'] и $GLOBALS['base_path'] туда же.

$_GET['q'] меняет значение в процессе бутстрапа, не рекомендуется его использовать

К словам андеда ещё могу добавить вот такие строки, найденные в модуле приватных сообщений:

  // If this is an AJAX request, update $_GET['q'] so that table sorting and
  // similar links are using the correct base path.
  if ($_GET['q'] == 'system/ajax') {
    $q = 'messages';
    if (!empty($argument)) {
      $q .= '/' . $argument;
    }
    $_GET['q'] = $q;
  }

Тогда и current_path() надо из списка убрать...
http://api.drupal.org/api/drupal/includes--path.inc/function/current_path/7

:D

drupal_get_query_parameters() для получения GET параметров запроса. Для указаного примера, чтобы получить page=1

Добрый день.

Скажите, а для версии 8 не планируете написать аналогичную статью ?

Скажите, а для версии 8 не планируете написать аналогичную статью ?

Используйте \Drupal::service('current_route_match')->getRouteName();

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании