mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-05 08:17:47 +02:00
Merge remote-tracking branch 'imkingdavid/feature/controller-new' into develop
* imkingdavid/feature/controller-new: (67 commits) [feature/controller] Fix misnamed route for functional test [feature/controller] Fix comments, check against more general HttpException [feature/controller] Check for proper status codes from controllers [feature/controller] Correctly create Symfony object from globals [feature/controller] Add documentation about input being HTML-escaped [feature/controller] Create Symfony Request in new function [feature/controller] Remove unused language strings [feature/controller] Don't use $user->lang() before container compilation [feature/controller] Update routing documentation for using query string [feature/controller] Remove now-unused code [feature/controller] Remove url rewriting until we use pathinfo in controllers [feature/controller] Fix functional tests to use query string for controllers [feature/controller] Allow injecting Symfony Request into controllers [feature/controller] Use query string, not path info, for controller access [feature/controller] Fix line endings and permissions, and check responses [feature/controller] Remove URL rewriting by default [feature/controller] Add controller functional test with template [feature/controller] Use warning instead of echo for copy() and unlink() [feature/controller] Flip method parameters, require $message [feature/controller] Rename $root_path class property to $phpbb_root_path ...
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
@@ -5231,8 +5233,12 @@ function page_header($page_title = '', $display_online_list = true, $item_id = 0
|
||||
|
||||
/**
|
||||
* Generate page footer
|
||||
*
|
||||
* @param bool $run_cron Whether or not to run the cron
|
||||
* @param bool $display_template Whether or not to display the template
|
||||
* @param bool $exit_handler Whether or not to run the exit_handler()
|
||||
*/
|
||||
function page_footer($run_cron = true)
|
||||
function page_footer($run_cron = true, $display_template = true, $exit_handler = true)
|
||||
{
|
||||
global $db, $config, $template, $user, $auth, $cache, $starttime, $phpbb_root_path, $phpEx;
|
||||
global $request, $phpbb_dispatcher;
|
||||
@@ -5327,10 +5333,17 @@ function page_footer($run_cron = true)
|
||||
}
|
||||
}
|
||||
|
||||
$template->display('body');
|
||||
if ($display_template)
|
||||
{
|
||||
$template->display('body');
|
||||
}
|
||||
|
||||
garbage_collection();
|
||||
exit_handler();
|
||||
|
||||
if ($exit_handler)
|
||||
{
|
||||
exit_handler();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -5437,3 +5450,49 @@ function phpbb_to_numeric($input)
|
||||
{
|
||||
return ($input > PHP_INT_MAX) ? (float) $input : (int) $input;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a Symfony Request object from phpbb_request object
|
||||
*
|
||||
* @param phpbb_request $request Request object
|
||||
* @return Request A Symfony Request object
|
||||
*/
|
||||
function phpbb_create_symfony_request(phpbb_request $request)
|
||||
{
|
||||
// This function is meant to sanitize the global input arrays
|
||||
$sanitizer = function(&$value, $key) {
|
||||
$type_cast_helper = new phpbb_request_type_cast_helper();
|
||||
$type_cast_helper->set_var($value, $value, gettype($value), true);
|
||||
};
|
||||
|
||||
// We need to re-enable the super globals so we can access them here
|
||||
$request->enable_super_globals();
|
||||
$get_parameters = $_GET;
|
||||
$post_parameters = $_POST;
|
||||
$server_parameters = $_SERVER;
|
||||
$files_parameters = $_FILES;
|
||||
$cookie_parameters = $_COOKIE;
|
||||
// And now disable them again for security
|
||||
$request->disable_super_globals();
|
||||
|
||||
array_walk_recursive($get_parameters, $sanitizer);
|
||||
array_walk_recursive($post_parameters, $sanitizer);
|
||||
|
||||
// Until we fix the issue with relative paths, we have to fake path info
|
||||
// to allow urls like app.php?controller=foo/bar
|
||||
$controller = $request->variable('controller', '');
|
||||
$path_info = '/' . $controller;
|
||||
$request_uri = $server_parameters['REQUEST_URI'];
|
||||
|
||||
// Remove the query string from REQUEST_URI
|
||||
if ($pos = strpos($request_uri, '?'))
|
||||
{
|
||||
$request_uri = substr($request_uri, 0, $pos);
|
||||
}
|
||||
|
||||
// Add the path info (i.e. controller route) to the REQUEST_URI
|
||||
$server_parameters['REQUEST_URI'] = $request_uri . $path_info;
|
||||
$server_parameters['SCRIPT_NAME'] = '';
|
||||
|
||||
return new Request($get_parameters, $post_parameters, array(), $cookie_parameters, $files_parameters, $server_parameters);
|
||||
}
|
||||
|
Reference in New Issue
Block a user