function drupal_current_script_url

Same name in other branches
  1. 7.x includes/install.inc \drupal_current_script_url()
  2. 9 core/includes/install.inc \drupal_current_script_url()
  3. 10 core/includes/install.inc \drupal_current_script_url()
  4. 11.x 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 984

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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.