prefs_forms.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. PMA_userprefsPageInit();
  20. // handle form processing
  21. $form_param = filter_input(INPUT_GET, 'form');
  22. if (! isset($forms[$form_param])) {
  23. $forms_keys = array_keys($forms);
  24. $form_param = array_shift($forms_keys);
  25. }
  26. $form_display = new FormDisplay();
  27. foreach ($forms[$form_param] as $form_name => $form) {
  28. // skip Developer form if no setting is available
  29. if ($form_name == 'Developer' && !$GLOBALS['cfg']['UserprefsDeveloperTab']) {
  30. continue;
  31. }
  32. $form_display->registerForm($form_name, $form, 1);
  33. }
  34. if (isset($_POST['revert'])) {
  35. // revert erroneous fields to their default values
  36. $form_display->fixErrors();
  37. // redirect
  38. $url_params = array('form' => $form_param);
  39. PMA_sendHeaderLocation(
  40. $cfg['PmaAbsoluteUri'] . 'prefs_forms.php'
  41. . PMA_generate_common_url($url_params, '&')
  42. );
  43. exit;
  44. }
  45. $error = null;
  46. if ($form_display->process(false) && !$form_display->hasErrors()) {
  47. // save settings
  48. $result = PMA_saveUserprefs(ConfigFile::getInstance()->getConfigArray());
  49. if ($result === true) {
  50. // reload config
  51. $GLOBALS['PMA_Config']->loadUserPreferences();
  52. $hash = ltrim(filter_input(INPUT_POST, 'tab_hash'), '#');
  53. PMA_userprefsRedirect(
  54. 'prefs_forms.php',
  55. array('form' => $form_param),
  56. $hash
  57. );
  58. exit;
  59. } else {
  60. $error = $result;
  61. }
  62. }
  63. // display forms
  64. $response = PMA_Response::getInstance();
  65. $header = $response->getHeader();
  66. $scripts = $header->getScripts();
  67. $scripts->addFile('config.js');
  68. require 'libraries/user_preferences.inc.php';
  69. if ($error) {
  70. $error->display();
  71. }
  72. if ($form_display->hasErrors()) {
  73. // form has errors
  74. ?>
  75. <div class="error config-form">
  76. <b><?php echo __('Cannot save settings, submitted form contains errors') ?></b>
  77. <?php $form_display->displayErrors(); ?>
  78. </div>
  79. <?php
  80. }
  81. $form_display->display(true, true);
  82. ?>