You are here

function drupal_current_script_url in Drupal 9

Same name and namespace in other branches
  1. 8 core/includes/install.inc \drupal_current_script_url()
  2. 7 includes/install.inc \drupal_current_script_url()
  3. 10 core/includes/install.inc \drupal_current_script_url()

Returns the URL of the current script, with modified query parameters.

This function can be called by low-level scripts (such as install.php and update.php) and returns the URL of the current script. Existing query parameters are preserved by default, but new ones can optionally be merged in.

This function is used when the script must maintain certain query parameters over multiple page requests in order to work correctly. In such cases (for example, update.php, which requires the 'continue=1' parameter to remain in the URL throughout the update process if there are any requirement warnings that need to be bypassed), using this function to generate the URL for links to the next steps of the script ensures that the links will work correctly.

Parameters

$query: (optional) An array of query parameters to merge in to the existing ones.

Return value

The URL of the current script, with query parameters modified by the passed-in $query. The URL is not sanitized, so it still needs to be run through \Drupal\Component\Utility\UrlHelper::filterBadProtocol() if it will be used as an HTML attribute value.

See also

drupal_requirements_url()

Drupal\Component\Utility\UrlHelper::filterBadProtocol()

1 call to drupal_current_script_url()
drupal_requirements_url in core/includes/install.inc
Returns a URL for proceeding to the next page after a requirements problem.

File

core/includes/install.inc, line 912
API functions for installing modules and themes.

Code

function drupal_current_script_url($query = []) {
  $uri = $_SERVER['SCRIPT_NAME'];
  $query = array_merge(UrlHelper::filterQueryParameters(\Drupal::request()->query
    ->all()), $query);
  if (!empty($query)) {
    $uri .= '?' . UrlHelper::buildQuery($query);
  }
  return $uri;
}