Revert "Convert more path utility functions to just wrap the request object."
We're not ready for this yet.
This reverts commit a2f83000b4
.
8.0.x
parent
674dae32c7
commit
a764bd3fbb
|
@ -551,6 +551,13 @@ function drupal_environment_initialize() {
|
|||
$_SERVER['HTTP_HOST'] = '';
|
||||
}
|
||||
|
||||
// When clean URLs are enabled, emulate ?q=foo/bar using REQUEST_URI. It is
|
||||
// not possible to append the query string using mod_rewrite without the B
|
||||
// flag (this was added in Apache 2.2.8), because mod_rewrite unescapes the
|
||||
// path before passing it on to PHP. This is a problem when the path contains
|
||||
// e.g. "&" or "%" that have special meanings in URLs and must be encoded.
|
||||
$_GET['q'] = request_path();
|
||||
|
||||
// Enforce E_STRICT, but allow users to set levels not part of E_STRICT.
|
||||
error_reporting(E_STRICT | E_ALL | error_reporting());
|
||||
|
||||
|
@ -1512,7 +1519,7 @@ function request_uri() {
|
|||
* @param Request $new_request
|
||||
* The new request object to store. If you are not index.php, you probably
|
||||
* should not be using this parameter.
|
||||
* @return Symfony\Component\HttpFoundation\Request
|
||||
* @return Request
|
||||
* The current request object.
|
||||
*/
|
||||
function request(Request $new_request = NULL) {
|
||||
|
@ -2610,9 +2617,6 @@ function language_default() {
|
|||
/**
|
||||
* Returns the requested URL path of the page being viewed.
|
||||
*
|
||||
* @todo Eliminate this function in favor of direct access to the request
|
||||
* object.
|
||||
*
|
||||
* Examples:
|
||||
* - http://example.com/node/306 returns "node/306".
|
||||
* - http://example.com/drupalfolder/node/306 returns "node/306" while
|
||||
|
@ -2628,7 +2632,45 @@ function language_default() {
|
|||
* @see current_path()
|
||||
*/
|
||||
function request_path() {
|
||||
return request()->getPathInfo();
|
||||
static $path;
|
||||
|
||||
if (isset($path)) {
|
||||
return $path;
|
||||
}
|
||||
|
||||
if (isset($_GET['q'])) {
|
||||
// This is a request with a ?q=foo/bar query string. $_GET['q'] is
|
||||
// overwritten in drupal_path_initialize(), but request_path() is called
|
||||
// very early in the bootstrap process, so the original value is saved in
|
||||
// $path and returned in later calls.
|
||||
$path = $_GET['q'];
|
||||
}
|
||||
elseif (isset($_SERVER['REQUEST_URI'])) {
|
||||
// This request is either a clean URL, or 'index.php', or nonsense.
|
||||
// Extract the path from REQUEST_URI.
|
||||
$request_path = strtok($_SERVER['REQUEST_URI'], '?');
|
||||
$base_path_len = strlen(rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/'));
|
||||
// Unescape and strip $base_path prefix, leaving q without a leading slash.
|
||||
$path = substr(urldecode($request_path), $base_path_len + 1);
|
||||
// If the path equals the script filename, either because 'index.php' was
|
||||
// explicitly provided in the URL, or because the server added it to
|
||||
// $_SERVER['REQUEST_URI'] even when it wasn't provided in the URL (some
|
||||
// versions of Microsoft IIS do this), the front page should be served.
|
||||
if ($path == basename($_SERVER['PHP_SELF'])) {
|
||||
$path = '';
|
||||
}
|
||||
}
|
||||
else {
|
||||
// This is the front page.
|
||||
$path = '';
|
||||
}
|
||||
|
||||
// Under certain conditions Apache's RewriteRule directive prepends the value
|
||||
// assigned to $_GET['q'] with a slash. Moreover we can always have a trailing
|
||||
// slash in place, hence we need to normalize $_GET['q'].
|
||||
$path = trim($path, '/');
|
||||
|
||||
return $path;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -2735,10 +2735,6 @@ function drupal_get_path($type, $name) {
|
|||
/**
|
||||
* Returns the base URL path (i.e., directory) of the Drupal installation.
|
||||
*
|
||||
* @todo Eliminate this function in favor of direct access to the request. Or,
|
||||
* better yet, eliminate the need for this function outside of the
|
||||
* URL Generator.
|
||||
*
|
||||
* base_path() adds a "/" to the beginning and end of the returned path if the
|
||||
* path is not empty. At the very least, this will return "/".
|
||||
*
|
||||
|
@ -2747,7 +2743,7 @@ function drupal_get_path($type, $name) {
|
|||
* - http://example.com/drupal/folder returns "/drupal/folder/".
|
||||
*/
|
||||
function base_path() {
|
||||
return request()->getBasePath() . '/';
|
||||
return $GLOBALS['base_path'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -334,9 +334,6 @@ function drupal_match_path($path, $patterns) {
|
|||
/**
|
||||
* Return the current URL path of the page being viewed.
|
||||
*
|
||||
* @todo Eliminate this function in favor of direct access to the request
|
||||
* object.
|
||||
*
|
||||
* Examples:
|
||||
* - http://example.com/node/306 returns "node/306".
|
||||
* - http://example.com/drupalfolder/node/306 returns "node/306" while
|
||||
|
|
Loading…
Reference in New Issue