From 7481cf9ffee5e4c3ed7e055fdf084d1538dc6dd4 Mon Sep 17 00:00:00 2001 From: rxu Date: Wed, 27 May 2020 15:49:07 +0700 Subject: [PATCH 1/3] [ticket/16435] Restore calling page_footer() events in controllers PHPBB3-16435 --- phpBB/phpbb/controller/helper.php | 53 +++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index 1b07ab9f7d..93a243d66a 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -143,11 +143,58 @@ class helper 'body' => $template_file, )); - $this->display_footer(); + $run_cron = true; + $page_footer_override = false; - $headers = !empty($this->user->data['is_bot']) ? array('X-PHPBB-IS-BOT' => 'yes') : array(); + /** + * Execute code and/or overwrite page_footer() + * + * @event core.page_footer + * @var bool run_cron Shall we run cron tasks + * @var bool page_footer_override Shall we skip displaying the page footer + * @since 3.1.0-a1 + * @changed 3.3.1-RC1 Added to controller helper render() method for backwards compatibility + */ + $vars = ['run_cron', 'page_footer_override']; + extract($this->dispatcher->trigger_event('core.page_footer', compact($vars))); - return new Response($this->template->assign_display('body'), $status_code, $headers); + if (!$page_footer_override) + { + $this->display_footer($run_cron); + } + + $headers = !empty($this->user->data['is_bot']) ? ['X-PHPBB-IS-BOT' => 'yes'] : []; + + $display_template = true; + $exit_handler = true; // not used + + /** + * Execute code and/or modify output before displaying the template. + * + * @event core.page_footer_after + * @var bool display_template Whether or not to display the template + * @var bool exit_handler Whether or not to run the exit_handler() (no effect on controller pages) + * + * @since 3.1.0-RC5 + * @changed 3.3.1-RC1 Added to controller helper render() method for backwards compatibility + */ + $vars = ['display_template', 'exit_handler']; + extract($this->dispatcher->trigger_event('core.page_footer_after', compact($vars))); + + $response = new Response($display_template ? $this->template->assign_display('body') : '', $status_code, $headers); + + /** + * Modify response before output + * + * @event core.controller_helper_render_response + * @var Response response Symfony response object + * + * @since 3.3.1-RC1 + */ + $vars = ['response']; + extract($this->dispatcher->trigger_event('core.controller_helper_render_response', compact($vars))); + + return $response; } /** From 5afda415d154220190bbdf55d6e9658a8929cfe9 Mon Sep 17 00:00:00 2001 From: rxu Date: Wed, 27 May 2020 16:06:19 +0700 Subject: [PATCH 2/3] [ticket/16435] Fix test_session_gc() test PHPBB3-16435 --- tests/test_framework/phpbb_session_test_case.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_framework/phpbb_session_test_case.php b/tests/test_framework/phpbb_session_test_case.php index 530d8c6b48..7eeaa3d2dc 100644 --- a/tests/test_framework/phpbb_session_test_case.php +++ b/tests/test_framework/phpbb_session_test_case.php @@ -65,7 +65,7 @@ abstract class phpbb_session_test_case extends phpbb_database_test_case FROM ' . SESSIONS_TABLE . ' WHERE session_time < ' . ($time_now - (int) $config['session_length']) . ' AND session_user_id <> ' . ANONYMOUS . ' - GROUP BY session_user_id'; + GROUP BY session_user_id ORDER BY session_user_id ASC'; $this->assertSqlResultEquals($expected_sessions, $sql, $message); } From 3b3dfebd8292232fc14e82bf0a8cdd9c1bd4f936 Mon Sep 17 00:00:00 2001 From: rxu Date: Wed, 27 May 2020 16:28:07 +0700 Subject: [PATCH 3/3] [ticket/16435] Fix Lint test for nightly build PHPBB3-16435 --- phpBB/develop/create_variable_overview.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/develop/create_variable_overview.php b/phpBB/develop/create_variable_overview.php index da9a4fe683..3aebebcd94 100644 --- a/phpBB/develop/create_variable_overview.php +++ b/phpBB/develop/create_variable_overview.php @@ -464,7 +464,7 @@ $old_char = ''; foreach ($lang_references as $lang_var => $filenames) { $var = preg_replace('#^L_(.*?)#', '\1', $lang_var); - $char = $var{0}; + $char = $var[0]; if ($old_char != $char) { $old_char = $char; @@ -480,7 +480,7 @@ foreach ($lang_references as $lang_var => $filenames) echo '.'; flush(); $var = preg_replace('#^L_(.*?)#', '\1', $lang_var); - $char = $var{0}; + $char = $var[0]; if ($old_char != $char) { $old_char = $char;