Translated using Weblate (French)
[phpmyadmin.git] / prefs_forms.php
blob192d0fa4578f32acccf5fec325b4cd9e6fa50bfe
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * User preferences page
6 * @package PhpMyAdmin
7 */
8 declare(strict_types=1);
10 use PhpMyAdmin\Config\ConfigFile;
11 use PhpMyAdmin\Config\Forms\BaseForm;
12 use PhpMyAdmin\Config\Forms\User\UserFormList;
13 use PhpMyAdmin\Core;
14 use PhpMyAdmin\Relation;
15 use PhpMyAdmin\Response;
16 use PhpMyAdmin\Template;
17 use PhpMyAdmin\Url;
18 use PhpMyAdmin\UserPreferences;
19 use PhpMyAdmin\UserPreferencesHeader;
21 if (! defined('ROOT_PATH')) {
22 define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
25 /**
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 ($form_class === null) {
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();
51 // redirect
52 $url_params = ['form' => $form_param];
53 Core::sendHeaderLocation(
54 './prefs_forms.php'
55 . Url::getCommonRaw($url_params)
57 exit;
60 $error = null;
61 if ($form_display->process(false) && ! $form_display->hasErrors()) {
62 // save settings
63 $result = $userPreferences->save($cf->getConfigArray());
64 if ($result === true) {
65 // reload config
66 $GLOBALS['PMA_Config']->loadUserPreferences();
67 $tabHash = isset($_POST['tab_hash']) ? $_POST['tab_hash'] : null;
68 $hash = ltrim($tabHash, '#');
69 $userPreferences->redirect(
70 'prefs_forms.php',
71 ['form' => $form_param],
72 $hash
74 exit;
75 } else {
76 $error = $result;
80 // display forms
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);
105 } else {
106 define('PMA_DISABLE_NAVI_SETTINGS', true);