summaryrefslogtreecommitdiff
path: root/hugo/prefs_forms.php
diff options
context:
space:
mode:
authorTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
committerTristan Zur <tzur@web.web.ccwn.org>2014-03-27 22:27:47 +0100
commitb62676ca5d3d6f6ba3f019ea3f99722e165a98d8 (patch)
tree86722cb80f07d4569f90088eeaea2fc2f6e2ef94 /hugo/prefs_forms.php
Initial commit of intern.ccwn.org contentsHEADmaster
Diffstat (limited to 'hugo/prefs_forms.php')
-rw-r--r--hugo/prefs_forms.php91
1 files changed, 91 insertions, 0 deletions
diff --git a/hugo/prefs_forms.php b/hugo/prefs_forms.php
new file mode 100644
index 0000000..52d25d9
--- /dev/null
+++ b/hugo/prefs_forms.php
@@ -0,0 +1,91 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * User preferences page
+ *
+ * @package PhpMyAdmin
+ */
+
+/**
+ * Gets some core libraries and displays a top message if required
+ */
+require_once 'libraries/common.inc.php';
+require_once 'libraries/user_preferences.lib.php';
+require_once 'libraries/config/config_functions.lib.php';
+require_once 'libraries/config/messages.inc.php';
+require_once 'libraries/config/ConfigFile.class.php';
+require_once 'libraries/config/Form.class.php';
+require_once 'libraries/config/FormDisplay.class.php';
+require 'libraries/config/user_preferences.forms.php';
+
+PMA_userprefsPageInit();
+
+// handle form processing
+
+$form_param = filter_input(INPUT_GET, 'form');
+if (! isset($forms[$form_param])) {
+ $forms_keys = array_keys($forms);
+ $form_param = array_shift($forms_keys);
+}
+
+$form_display = new FormDisplay();
+foreach ($forms[$form_param] as $form_name => $form) {
+ // skip Developer form if no setting is available
+ if ($form_name == 'Developer' && !$GLOBALS['cfg']['UserprefsDeveloperTab']) {
+ continue;
+ }
+ $form_display->registerForm($form_name, $form, 1);
+}
+
+if (isset($_POST['revert'])) {
+ // revert erroneous fields to their default values
+ $form_display->fixErrors();
+ // redirect
+ $url_params = array('form' => $form_param);
+ PMA_sendHeaderLocation(
+ $cfg['PmaAbsoluteUri'] . 'prefs_forms.php'
+ . PMA_generate_common_url($url_params, '&')
+ );
+ exit;
+}
+
+$error = null;
+if ($form_display->process(false) && !$form_display->hasErrors()) {
+ // save settings
+ $result = PMA_saveUserprefs(ConfigFile::getInstance()->getConfigArray());
+ if ($result === true) {
+ // reload config
+ $GLOBALS['PMA_Config']->loadUserPreferences();
+ $hash = ltrim(filter_input(INPUT_POST, 'tab_hash'), '#');
+ PMA_userprefsRedirect(
+ 'prefs_forms.php',
+ array('form' => $form_param),
+ $hash
+ );
+ exit;
+ } else {
+ $error = $result;
+ }
+}
+
+// display forms
+$response = PMA_Response::getInstance();
+$header = $response->getHeader();
+$scripts = $header->getScripts();
+$scripts->addFile('config.js');
+
+require 'libraries/user_preferences.inc.php';
+if ($error) {
+ $error->display();
+}
+if ($form_display->hasErrors()) {
+ // form has errors
+ ?>
+ <div class="error config-form">
+ <b><?php echo __('Cannot save settings, submitted form contains errors') ?></b>
+ <?php $form_display->displayErrors(); ?>
+ </div>
+ <?php
+}
+$form_display->display(true, true);
+?>