prefs_forms.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * User preferences page
  5. *
  6. * @package PhpMyAdmin
  7. */
  8. /**
  9. * Gets some core libraries and displays a top message if required
  10. */
  11. require_once 'libraries/common.inc.php';
  12. require_once 'libraries/user_preferences.lib.php';
  13. require_once 'libraries/config/config_functions.lib.php';
  14. require_once 'libraries/config/messages.inc.php';
  15. require_once 'libraries/config/ConfigFile.class.php';
  16. require_once 'libraries/config/Form.class.php';
  17. require_once 'libraries/config/FormDisplay.class.php';
  18. require 'libraries/config/user_preferences.forms.php';
  19. $cf = new ConfigFile($GLOBALS['PMA_Config']->base_settings);
  20. PMA_userprefsPageInit($cf);
  21. // handle form processing
  22. $form_param = filter_input(INPUT_GET, 'form');
  23. if (! isset($forms[$form_param])) {
  24. $forms_keys = array_keys($forms);
  25. $form_param = array_shift($forms_keys);
  26. }
  27. $form_display = new FormDisplay($cf);
  28. foreach ($forms[$form_param] as $form_name => $form) {
  29. // skip Developer form if no setting is available
  30. if ($form_name == 'Developer' && !$GLOBALS['cfg']['UserprefsDeveloperTab']) {
  31. continue;
  32. }
  33. $form_display->registerForm($form_name, $form, 1);
  34. }
  35. if (isset($_POST['revert'])) {
  36. // revert erroneous fields to their default values
  37. $form_display->fixErrors();
  38. // redirect
  39. $url_params = array('form' => $form_param);
  40. PMA_sendHeaderLocation(
  41. $cfg['PmaAbsoluteUri'] . 'prefs_forms.php'
  42. . PMA_URL_getCommon($url_params, '&')
  43. );
  44. exit;
  45. }
  46. $error = null;
  47. if ($form_display->process(false) && !$form_display->hasErrors()) {
  48. // save settings
  49. $result = PMA_saveUserprefs($cf->getConfigArray());
  50. if ($result === true) {
  51. // reload config
  52. $GLOBALS['PMA_Config']->loadUserPreferences();
  53. $hash = ltrim(filter_input(INPUT_POST, 'tab_hash'), '#');
  54. PMA_userprefsRedirect(
  55. 'prefs_forms.php',
  56. array('form' => $form_param),
  57. $hash
  58. );
  59. exit;
  60. } else {
  61. $error = $result;
  62. }
  63. }
  64. // display forms
  65. $response = PMA_Response::getInstance();
  66. $header = $response->getHeader();
  67. $scripts = $header->getScripts();
  68. $scripts->addFile('config.js');
  69. require 'libraries/user_preferences.inc.php';
  70. if ($error) {
  71. $error->display();
  72. }
  73. if ($form_display->hasErrors()) {
  74. // form has errors
  75. ?>
  76. <div class="error config-form">
  77. <b><?php echo __('Cannot save settings, submitted form contains errors!') ?></b>
  78. <?php $form_display->displayErrors(); ?>
  79. </div>
  80. <?php
  81. }
  82. $form_display->display(true, true);
  83. ?>