2 /* vim: set expandtab sw=4 ts=4 sts=4: */
4 * User preferences page
8 declare(strict_types
=1);
10 use PhpMyAdmin\Config\ConfigFile
;
11 use PhpMyAdmin\Config\Forms\BaseForm
;
12 use PhpMyAdmin\Config\Forms\User\UserFormList
;
14 use PhpMyAdmin\Relation
;
15 use PhpMyAdmin\Response
;
16 use PhpMyAdmin\Template
;
18 use PhpMyAdmin\UserPreferences
;
19 use PhpMyAdmin\UserPreferencesHeader
;
21 if (! defined('ROOT_PATH')) {
22 define('ROOT_PATH', __DIR__
. DIRECTORY_SEPARATOR
);
26 * Gets some core libraries and displays a top message if required
28 require_once ROOT_PATH
. 'libraries/common.inc.php';
30 /** @var Template $template */
31 $template = $containerBuilder->get('template');
32 $userPreferences = new UserPreferences();
34 $cf = new ConfigFile($GLOBALS['PMA_Config']->base_settings
);
35 $userPreferences->pageInit($cf);
37 // handle form processing
39 $form_param = isset($_GET['form']) ?
$_GET['form'] : null;
40 $form_class = UserFormList
::get($form_param);
41 if (is_null($form_class)) {
42 Core
::fatalError(__('Incorrect form specified!'));
45 /** @var BaseForm $form_display */
46 $form_display = new $form_class($cf, 1);
48 if (isset($_POST['revert'])) {
49 // revert erroneous fields to their default values
50 $form_display->fixErrors();
52 $url_params = ['form' => $form_param];
53 Core
::sendHeaderLocation(
55 . Url
::getCommonRaw($url_params)
61 if ($form_display->process(false) && ! $form_display->hasErrors()) {
63 $result = $userPreferences->save($cf->getConfigArray());
64 if ($result === true) {
66 $GLOBALS['PMA_Config']->loadUserPreferences();
67 $tabHash = isset($_POST['tab_hash']) ?
$_POST['tab_hash'] : null;
68 $hash = ltrim($tabHash, '#');
69 $userPreferences->redirect(
71 ['form' => $form_param],
81 $response = Response
::getInstance();
82 $header = $response->getHeader();
83 $scripts = $header->getScripts();
84 $scripts->addFile('config.js');
86 /** @var Relation $relation */
87 $relation = $containerBuilder->get('relation');
88 echo UserPreferencesHeader
::getContent($template, $relation);
90 if ($form_display->hasErrors()) {
91 $formErrors = $form_display->displayErrors();
94 echo $template->render('preferences/forms/main', [
95 'error' => $error ?
$error->getDisplay() : '',
96 'has_errors' => $form_display->hasErrors(),
97 'errors' => $formErrors ??
null,
98 'form' => $form_display->getDisplay(true, true, true, 'prefs_forms.php?form=' . $form_param, [
99 'server' => $GLOBALS['server'],
103 if ($response->isAjax()) {
104 $response->addJSON('disableNaviSettings', true);
106 define('PMA_DISABLE_NAVI_SETTINGS', true);