diff options
author | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-08-07 04:25:32 +0300 |
---|---|---|
committer | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-08-07 04:25:32 +0300 |
commit | 87d695f2c85b0f9c9bd83d91c26df5c5b3c1d61e (patch) | |
tree | 913a97e7144d8bda8b5acafb29fd99de7f347a4f /libraries | |
parent | 2d41333104b9d1f07c11b9adab4d12a22a99ee0b (diff) |
Extract js/messages.php entry point into a route
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/classes/Common.php | 15 | ||||
-rw-r--r-- | libraries/classes/Header.php | 2 | ||||
-rw-r--r-- | libraries/classes/Scripts.php | 2 | ||||
-rw-r--r-- | libraries/routes.php | 2 |
4 files changed, 18 insertions, 3 deletions
diff --git a/libraries/classes/Common.php b/libraries/classes/Common.php index 706074dc33..1670cf572c 100644 --- a/libraries/classes/Common.php +++ b/libraries/classes/Common.php @@ -25,7 +25,9 @@ use function defined; use function explode; use function extension_loaded; use function function_exists; +use function gmdate; use function hash_equals; +use function header; use function htmlspecialchars; use function implode; use function ini_get; @@ -41,6 +43,7 @@ use function mb_substr; use function register_shutdown_function; use function session_id; use function strlen; +use function time; use function trigger_error; use function urldecode; @@ -95,10 +98,20 @@ final class Common $request = self::getRequest(); $route = $request->getRoute(); - if ($route === '/import-status' || $route === '/url') { + if ($route === '/import-status' || $route === '/url' || $route === '/messages') { $GLOBALS['isMinimumCommon'] = true; } + if ($route === '/messages') { + // Send correct type. + header('Content-Type: text/javascript; charset=UTF-8'); + // Cache output in client + // the nocache query parameter makes sure that this file is reloaded when config changes. + header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT'); + + define('PMA_NO_SESSION', true); + } + $GLOBALS['containerBuilder'] = Core::getContainerBuilder(); $GLOBALS['errorHandler'] = $GLOBALS['containerBuilder']->get('error_handler'); diff --git a/libraries/classes/Header.php b/libraries/classes/Header.php index 85bc1dcd10..c9217a4dea 100644 --- a/libraries/classes/Header.php +++ b/libraries/classes/Header.php @@ -141,7 +141,7 @@ class Header $this->scripts->addFile('vendor/jquery/jquery-ui-timepicker-addon.js'); $this->scripts->addFile('menu_resizer.js'); $this->scripts->addFile('cross_framing_protection.js'); - $this->scripts->addFile('messages.php', ['l' => $GLOBALS['lang']]); + $this->scripts->addFile('index.php', ['route' => '/messages', 'l' => $GLOBALS['lang']]); $this->scripts->addFile('config.js'); $this->scripts->addFile('functions.js'); $this->scripts->addFile('navigation.js'); diff --git a/libraries/classes/Scripts.php b/libraries/classes/Scripts.php index 4ccfc1a4a6..66e86729ed 100644 --- a/libraries/classes/Scripts.php +++ b/libraries/classes/Scripts.php @@ -88,7 +88,7 @@ class Scripts { return ! str_contains($filename, 'jquery') && ! str_contains($filename, 'codemirror') - && ! str_contains($filename, 'messages.php') + && ! str_contains($filename, 'index.php') && ! str_contains($filename, 'ajax.js') && ! str_contains($filename, 'datetimepicker.js') && ! str_contains($filename, 'validator-messages.js') diff --git a/libraries/routes.php b/libraries/routes.php index 44f1062780..5e95d0a2ac 100644 --- a/libraries/routes.php +++ b/libraries/routes.php @@ -17,6 +17,7 @@ use PhpMyAdmin\Controllers\GisDataEditorController; use PhpMyAdmin\Controllers\GitInfoController; use PhpMyAdmin\Controllers\HomeController; use PhpMyAdmin\Controllers\Import; +use PhpMyAdmin\Controllers\JavaScriptMessagesController; use PhpMyAdmin\Controllers\LicenseController; use PhpMyAdmin\Controllers\LintController; use PhpMyAdmin\Controllers\LogoutController; @@ -128,6 +129,7 @@ return static function (RouteCollector $routes): void { $routes->get('/license', LicenseController::class); $routes->addRoute(['GET', 'POST'], '/lint', LintController::class); $routes->addRoute(['GET', 'POST'], '/logout', LogoutController::class); + $routes->get('/messages', JavaScriptMessagesController::class); $routes->addRoute(['GET', 'POST'], '/navigation', NavigationController::class); $routes->addGroup('/normalization', static function (RouteCollector $routes): void { $routes->addRoute(['GET', 'POST'], '', Normalization\MainController::class); |