diff --git a/core/includes/ajax.inc b/core/includes/ajax.inc index a94f068cc78f5d6f14846bb3fe5c36b793cd2abe..8e024a8d3afc00789cdb017b197fa435b4b83edb 100644 --- a/core/includes/ajax.inc +++ b/core/includes/ajax.inc @@ -235,14 +235,12 @@ function ajax_render($commands = array()) { // during this request to be loaded by the page. We only want to send back // files that the page hasn't already loaded, so we implement simple diffing // logic using array_diff_key(). - $request = Drupal::request(); foreach (array('css', 'js') as $type) { // It is highly suspicious if $_POST['ajax_page_state'][$type] is empty, // since the base page ought to have at least one JS file and one CSS file // loaded. It probably indicates an error, and rather than making the page // reload all of the files, instead we return no new files. - $state = $request->request->get('ajax_page_state[' . $type . ']', FALSE, TRUE); - if ($state) { + if (empty($_POST['ajax_page_state'][$type])) { $items[$type] = array(); } else { @@ -261,7 +259,7 @@ function ajax_render($commands = array()) { } } // Ensure that the page doesn't reload what it already has. - $items[$type] = array_diff_key($items[$type], $state); + $items[$type] = array_diff_key($items[$type], $_POST['ajax_page_state'][$type]); } } @@ -319,8 +317,7 @@ function ajax_render($commands = array()) { function ajax_get_form() { $form_state = form_state_defaults(); - $request = Drupal::request(); - $form_build_id = $request->request->get('form_build_id'); + $form_build_id = $_POST['form_build_id']; // Get the form from the cache. $form = form_get_cache($form_build_id, $form_state); @@ -345,7 +342,7 @@ function ajax_get_form() { // The form needs to be processed; prepare for that by setting a few internal // variables. - $form_state['input'] = $request->request->all(); + $form_state['input'] = $_POST; $form_id = $form['#form_id']; return array($form, $form_state, $form_id, $form_build_id); @@ -407,10 +404,10 @@ function ajax_form_callback() { * @see file_menu() */ function ajax_base_page_theme() { - $request = Drupal::request(); - $theme = $request->request->get('ajax_page_state[theme]', NULL, TRUE); - $token = $request->request->get('ajax_page_state[theme_token]', NULL, TRUE); - if (!empty($theme) && !empty($token)) { + if (!empty($_POST['ajax_page_state']['theme']) && !empty($_POST['ajax_page_state']['theme_token'])) { + $theme = $_POST['ajax_page_state']['theme']; + $token = $_POST['ajax_page_state']['theme_token']; + // Prevent a request forgery from giving a person access to a theme they // shouldn't be otherwise allowed to see. However, since everyone is allowed // to see the default theme, token validation isn't required for that, and diff --git a/core/includes/common.inc b/core/includes/common.inc index 03eaa399953131e2478c9fc5310bcfa79b4790fa..a518afd882d0df3f3e90a0fe910d5501521ed977 100644 --- a/core/includes/common.inc +++ b/core/includes/common.inc @@ -3989,8 +3989,7 @@ function show(&$element) { * @see drupal_render_cache_set() */ function drupal_render_cache_get($elements) { - $request = Drupal::request(); - if (!$request->isMethodSafe() || !$cid = drupal_render_cid_create($elements)) { + if (!in_array($_SERVER['REQUEST_METHOD'], array('GET', 'HEAD')) || !$cid = drupal_render_cid_create($elements)) { return FALSE; } $bin = isset($elements['#cache']['bin']) ? $elements['#cache']['bin'] : 'cache'; @@ -4022,8 +4021,7 @@ function drupal_render_cache_get($elements) { */ function drupal_render_cache_set(&$markup, $elements) { // Create the cache ID for the element. - $request = Drupal::request(); - if (!$request->isMethodSafe() || !$cid = drupal_render_cid_create($elements)) { + if (!in_array($_SERVER['REQUEST_METHOD'], array('GET', 'HEAD')) || !$cid = drupal_render_cid_create($elements)) { return FALSE; } diff --git a/core/includes/errors.inc b/core/includes/errors.inc index f44162db231b5ac8ed5de3c9192f7722da7011bf..3fe23b727cc564192bdd5dc8614d4e9164393b94 100644 --- a/core/includes/errors.inc +++ b/core/includes/errors.inc @@ -222,8 +222,7 @@ function _drupal_log_error($error, $fatal = FALSE) { } } - $request = Drupal::request(); - if ($request->isXmlHttpRequest()) { + if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { if ($fatal) { if (error_displayable($error)) { // When called from JavaScript, simply output the error message. diff --git a/core/includes/pager.inc b/core/includes/pager.inc index cb97b401b8037b04773c04e23473bc635a780840..cef12ac4c3a432698fc5fc29213514b343bac746 100644 --- a/core/includes/pager.inc +++ b/core/includes/pager.inc @@ -26,7 +26,7 @@ * @see pager_default_initialize() */ function pager_find_page($element = 0) { - $page = Drupal::request()->query->get('page', ''); + $page = isset($_GET['page']) ? $_GET['page'] : ''; $page_array = explode(',', $page); if (!isset($page_array[$element])) { $page_array[$element] = 0; @@ -136,7 +136,7 @@ function pager_default_initialize($total, $limit, $element = 0) { function pager_get_query_parameters() { $query = &drupal_static(__FUNCTION__); if (!isset($query)) { - $query = drupal_get_query_parameters(Drupal::request()->query->all(), array('page')); + $query = drupal_get_query_parameters($_GET, array('page')); } return $query; } @@ -425,7 +425,7 @@ function pager_query_add_page(array $query, $element, $index) { // Determine the first result to display on the linked page. $page_new = pager_load_array($index, $element, $pager_page_array); - $page = Drupal::request()->query->get('page', ''); + $page = isset($_GET['page']) ? $_GET['page'] : ''; if ($new_page = implode(',', pager_load_array($page_new[$element], $element, explode(',', $page)))) { $query['page'] = $new_page; } diff --git a/core/includes/tablesort.inc b/core/includes/tablesort.inc index 82201e20f05751a8348900c8b29bd8861991dcc4..c42b1f4ea1203eb27e52f479b19b210a018ed8b5 100644 --- a/core/includes/tablesort.inc +++ b/core/includes/tablesort.inc @@ -100,7 +100,7 @@ function tablesort_cell($cell, $header, $ts, $i) { * page request except for those pertaining to table sorting. */ function tablesort_get_query_parameters() { - return drupal_get_query_parameters(Drupal::request()->query->all(), array('sort', 'order')); + return drupal_get_query_parameters($_GET, array('sort', 'order')); } /** @@ -115,7 +115,7 @@ function tablesort_get_query_parameters() { * - "sql": The name of the database field to sort on. */ function tablesort_get_order($headers) { - $order = Drupal::request()->query->get('order', ''); + $order = isset($_GET['order']) ? $_GET['order'] : ''; foreach ($headers as $header) { if (is_array($header)) { if (isset($header['data']) && $order == $header['data']) { @@ -150,9 +150,8 @@ function tablesort_get_order($headers) { * The current sort direction ("asc" or "desc"). */ function tablesort_get_sort($headers) { - $sort = Drupal::request()->query->get('sort'); - if (isset($sort)) { - return (strtolower($sort) == 'desc') ? 'desc' : 'asc'; + if (isset($_GET['sort'])) { + return (strtolower($_GET['sort']) == 'desc') ? 'desc' : 'asc'; } // The user has not specified a sort. Use the default for the currently sorted // header if specified; otherwise use "asc". diff --git a/core/modules/system/lib/Drupal/system/Tests/Common/TableSortExtenderUnitTest.php b/core/modules/system/lib/Drupal/system/Tests/Common/TableSortExtenderUnitTest.php index 241949fce4a4c30b449bd00386ed8cd10daafd21..c7cc2a9b8e60f35bfce2c5c34e86e14b941fcf31 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Common/TableSortExtenderUnitTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Common/TableSortExtenderUnitTest.php @@ -8,7 +8,6 @@ namespace Drupal\system\Tests\Common; use Drupal\simpletest\UnitTestBase; -use Symfony\Component\HttpFoundation\Request; /** * Tests unicode handling features implemented in unicode.inc. @@ -54,42 +53,38 @@ function testTableSortInit() { $headers = array('foo', 'bar', 'baz'); // Reset $_GET to prevent parameters from Simpletest and Batch API ending // up in $ts['query']. + $_GET = array(); $expected_ts = array( 'name' => 'foo', 'sql' => '', 'sort' => 'asc', 'query' => array(), ); - $request = Request::createFromGlobals(); - $request->query->replace(array()); - \Drupal::getContainer()->set('request', $request); $ts = tablesort_init($headers); $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE))))); $this->assertEqual($ts, $expected_ts, 'Simple table headers sorted correctly.'); // Test with simple table headers plus $_GET parameters that should _not_ // override the default. - $request = Request::createFromGlobals(); - $request->query->replace(array( + + $_GET = array( // This should not override the table order because only complex // headers are overridable. 'order' => 'bar', - )); - \Drupal::getContainer()->set('request', $request); + ); $ts = tablesort_init($headers); $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE))))); $this->assertEqual($ts, $expected_ts, 'Simple table headers plus non-overriding $_GET parameters sorted correctly.'); // Test with simple table headers plus $_GET parameters that _should_ // override the default. - $request = Request::createFromGlobals(); - $request->query->replace(array( + + $_GET = array( 'sort' => 'DESC', // Add an unrelated parameter to ensure that tablesort will include // it in the links that it creates. 'alpha' => 'beta', - )); - \Drupal::getContainer()->set('request', $request); + ); $expected_ts['sort'] = 'desc'; $expected_ts['query'] = array('alpha' => 'beta'); $ts = tablesort_init($headers); @@ -113,11 +108,9 @@ function testTableSortInit() { ), ); // Reset $_GET from previous assertion. - $request = Request::createFromGlobals(); - $request->query->replace(array( + $_GET = array( 'order' => '2', - )); - \Drupal::getContainer()->set('request', $request); + ); $ts = tablesort_init($headers); $expected_ts = array( 'name' => '2', @@ -130,13 +123,12 @@ function testTableSortInit() { // Test complex table headers plus $_GET parameters that should _not_ // override the default. - $request = Request::createFromGlobals(); - $request->query->replace(array( + + $_GET = array( // This should not override the table order because this header does not // exist. 'order' => 'bar', - )); - \Drupal::getContainer()->set('request', $request); + ); $ts = tablesort_init($headers); $expected_ts = array( 'name' => '1', @@ -146,18 +138,18 @@ function testTableSortInit() { ); $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE))))); $this->assertEqual($ts, $expected_ts, 'Complex table headers plus non-overriding $_GET parameters sorted correctly.'); + unset($_GET['sort'], $_GET['order'], $_GET['alpha']); // Test complex table headers plus $_GET parameters that _should_ // override the default. - $request = Request::createFromGlobals(); - $request->query->replace(array( + + $_GET = array( 'order' => '1', 'sort' => 'ASC', // Add an unrelated parameter to ensure that tablesort will include // it in the links that it creates. 'alpha' => 'beta', - )); - \Drupal::getContainer()->set('request', $request); + ); $expected_ts = array( 'name' => '1', 'sql' => 'one', @@ -167,5 +159,7 @@ function testTableSortInit() { $ts = tablesort_init($headers); $this->verbose(strtr('$ts: <pre>!ts</pre>', array('!ts' => check_plain(var_export($ts, TRUE))))); $this->assertEqual($ts, $expected_ts, 'Complex table headers plus $_GET parameters sorted correctly.'); + unset($_GET['sort'], $_GET['order'], $_GET['alpha']); + } } diff --git a/core/modules/system/lib/Drupal/system/Tests/Database/SelectPagerDefaultTest.php b/core/modules/system/lib/Drupal/system/Tests/Database/SelectPagerDefaultTest.php index 79c93d210ab93bb2e9864f3a5b97fe217c922805..83f0640bf016d88a3219ac0e521279142478f482 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Database/SelectPagerDefaultTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Database/SelectPagerDefaultTest.php @@ -6,7 +6,6 @@ */ namespace Drupal\system\Tests\Database; -use Symfony\Component\HttpFoundation\Request; /** * Tests the pager query select extender. @@ -136,12 +135,7 @@ function testHavingPagerQuery() { * Confirms that every pager gets a valid, non-overlaping element ID. */ function testElementNumbers() { - - $request = Request::createFromGlobals(); - $request->query->replace(array( - 'page' => '3, 2, 1, 0', - )); - \Drupal::getContainer()->set('request', $request); + $_GET['page'] = '3, 2, 1, 0'; $name = db_select('test', 't') ->extend('Drupal\Core\Database\Query\PagerSelectExtender') @@ -174,5 +168,6 @@ function testElementNumbers() { ->fetchField(); $this->assertEqual($name, 'John', 'Pager query #3 with a generated element ID returned the correct results.'); + unset($_GET['page']); } } diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryTest.php index 69851f9c87385c4bc74a69a7cd1b92e9fd64ed61..284526fe337bb55c70b2269e57e3015bf8d4b127 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityQueryTest.php @@ -8,7 +8,6 @@ namespace Drupal\system\Tests\Entity; use Drupal\Core\Language\Language; -use Symfony\Component\HttpFoundation\Request; /** * Tests the basic Entity API. @@ -349,11 +348,7 @@ function testSort() { // Test the pager by setting element #1 to page 2 with a page size of 4. // Results will be #8-12 from above. - $request = Request::createFromGlobals(); - $request->query->replace(array( - 'page' => '0,2', - )); - \Drupal::getContainer()->set('request', $request); + $_GET['page'] = '0,2'; $this->queryResults = $this->factory->get('entity_test_mulrev') ->sort("$figures.color") ->sort("$greetings.format") @@ -380,13 +375,8 @@ protected function testTableSort() { // While ordering on bundles do not give us a definite order, we can still // assert that all entities from one bundle are after the other as the // order dictates. - $request = Request::createFromGlobals(); - $request->query->replace(array( - 'sort' => 'asc', - 'order' => 'Type', - )); - \Drupal::getContainer()->set('request', $request); - + $_GET['sort'] = 'asc'; + $_GET['order'] = 'Type'; $header = array( 'id' => array('data' => 'Id', 'specifier' => 'id'), 'type' => array('data' => 'Type', 'specifier' => 'type'), @@ -396,12 +386,7 @@ protected function testTableSort() { ->tableSort($header) ->execute()); $this->assertBundleOrder('asc'); - - $request->query->add(array( - 'sort' => 'desc', - )); - \Drupal::getContainer()->set('request', $request); - + $_GET['sort'] = 'desc'; $header = array( 'id' => array('data' => 'Id', 'specifier' => 'id'), 'type' => array('data' => 'Type', 'specifier' => 'type'), @@ -410,12 +395,8 @@ protected function testTableSort() { ->tableSort($header) ->execute()); $this->assertBundleOrder('desc'); - // Ordering on ID is definite, however. - $request->query->add(array( - 'order' => 'Id', - )); - \Drupal::getContainer()->set('request', $request); + $_GET['order'] = 'Id'; $this->queryResults = $this->factory->get('entity_test_mulrev') ->tableSort($header) ->execute();