drupal_goto

Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

includes/common.inc, строка 304

Версии
5 – 6
drupal_goto($path = '', $query = NULL, $fragment = NULL, $http_response_code = 302)

Перенаправляет пользователя на другую страницу сайта на Друпале.

Эта функция относится к внутрисайтовой HTTP-переадресации. Функция проверяет, является ли указанный для перехода URL корректно сформированным.

Обычно URL для перехода составляется из входных параметров функции. Однако, вы можете изменить подобный ход событий, установив путь назначения или в массиве $_REQUEST (например, использую в строке запроса URI) или в массиве $_REQUEST['edit'] (например, используя скрытое поле формы). Эти способы используются для переадресации пользователя к нужной странице после заполнения формы. Например, после редактирования сообщения на странице 'admin/content/node' или после авторизации, используя блок 'user login' в боковой панели. Для того, чтобы помочь установить URL для переадресации может быть использована функция drupal_get_destination().

Друпал будет удостоверяться, что сообщения, сформированные функцией drupal_set_message() и другие данные сессии записаны в базу данных прежде чем пользователь будет переадресован.

Эта функция заканчивает запрос; лучше использовать её чем выражение print theme('page') в вашем обратном вызове для меню.

Смотрите также

drupal_get_destination()

Параметры

$path Путь Друпала или полный URL.

$query Компонент строки запроса, если есть.

$fragment Идентификатор фрагмента страницы, куда ведется переадресация (именованный якорь).

$http_response_code Допустимые значиния для существующей команды 'goto' по спецификации RFC 2616, секции 10.3:

  • 301 Move Permanently (рекомендуемое значение для большинства переадресаций)
  • 302 Found (используемое по умолчанию в Друпал и PHP, иногда используется для спама поисковых движков)
  • 303 See Other
  • 304 Not Modified
  • 305 Use Proxy
  • 307 Temporary Redirect (альтернатива '503 Site Down for Maintenance')
Замечание: Есть и другие значения по спецификации RFC 2616, но они редко используются и плохо поддерживаются.

▾ 29 функции вызывают drupal_goto()

aggregator_admin_refresh_feed in modules/aggregator/aggregator.admin.inc
Колбэк меню; обновляет фид, затем перенаправляет на страницу обзора фида.
batch_process in includes/form.inc
Process the batch.
comment_admin_overview_validate in modules/comment/comment.admin.inc
Validate comment_admin_overview form submissions.
comment_multiple_delete_confirm in modules/comment/comment.admin.inc
List the selected comments and verify that the admin really wants to delete them.
comment_reply in modules/comment/comment.pages.inc
This function is responsible for generating a comment reply form. There are several cases that have to be handled, including: replies to comments replies to nodes attempts to reply to nodes that can no longer accept comments respecting access...
drupal_redirect_form in includes/form.inc
Перенаправляет пользователя на URL после обработки формы.
filter_admin_delete in modules/filter/filter.admin.inc
Menu callback; confirm deletion of a format. See alsofilter_admin_delete_submit()
locale_languages_delete_form in includes/locale.inc
User interface for the language deletion confirmation screen.
locale_translate_edit_form in includes/locale.inc
User interface for string editing.
openid_authentication in modules/openid/openid.module
Authenticate a user or attempt registration.
openid_authentication_page in modules/openid/openid.pages.inc
Menu callback; Process an OpenID authentication.
search_admin_settings_validate in modules/search/search.admin.inc
Validate callback.
search_view in modules/search/search.pages.inc
Menu callback; presents the search form and/or search results.
system_actions_configure in modules/system/system.module
Menu callback. Create the form for configuration of a single action.
system_actions_remove_orphans in modules/system/system.module
Remove actions that are in the database but not supported by any enabled module.
system_admin_compact_page in modules/system/system.admin.inc
Menu callback; Sets whether the admin menu is in compact mode or not.
system_goto_action in modules/system/system.module
system_modules_uninstall_validate in modules/system/system.admin.inc
Validates the submitted uninstall form.
system_run_cron in modules/system/system.admin.inc
Menu callback: run cron manually.
trigger_assign in modules/trigger/trigger.admin.inc
Build the form that allows users to assign actions to hooks.
trigger_unassign in modules/trigger/trigger.admin.inc
Confirm removal of an assigned action.
trigger_unassign_submit in modules/trigger/trigger.admin.inc
update_manual_status in modules/update/update.fetch.inc
Callback to manually check the update status without cron.
user_admin_role in modules/user/user.admin.inc
Menu callback: administer roles. See alsouser_admin_role_validate()
user_login in modules/user/user.module
Конструктор формы; генерирует форму для входа на сайт.
user_logout in modules/user/user.pages.inc
Menu callback; logs the current user out, and redirects to the home page.
user_pass_reset in modules/user/user.pages.inc
Menu callback; process one time login link and redirects to the user page on success.
user_register in modules/user/user.module
Конструктор формы; Форма регистрации пользователя.
_batch_finished in includes/batch.inc
End the batch processing: Call the 'finished' callbacks to allow custom handling of results, and resolve page redirection.

Код

<?php
function drupal_goto($path = '', $query = NULL, $fragment = NULL, $http_response_code = 302) {

  if (isset($_REQUEST['destination'])) {
    extract(parse_url(urldecode($_REQUEST['destination'])));
  }
  else if (isset($_REQUEST['edit']['destination'])) {
    extract(parse_url(urldecode($_REQUEST['edit']['destination'])));
  }

  $url = url($path, array('query' => $query, 'fragment' => $fragment, 'absolute' => TRUE));
  // Remove newlines from the URL to avoid header injection attacks.
  $url = str_replace(array("\n", "\r"), '', $url);

  // Allow modules to react to the end of the page request before redirecting.
  // We do not want this while running update.php.
  if (!defined('MAINTENANCE_MODE') || MAINTENANCE_MODE != 'update') {
    module_invoke_all('exit', $url);
  }

  // Even though session_write_close() is registered as a shutdown function, we
  // need all session data written to the database before redirecting.
  session_write_close();

  header('Location: '. $url, TRUE, $http_response_code);

  // The "Location" header sends a redirect status code to the HTTP daemon. In
  // some cases this can be wrong, so we make sure none of the code below the
  // drupal_goto() call gets executed upon redirection.
  exit();
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему