diff options
author | Crack <piotrprz@gmail.com> | 2010-07-08 14:36:09 +0400 |
---|---|---|
committer | Crack <piotrprz@gmail.com> | 2010-07-08 14:36:09 +0400 |
commit | 104b40cb11ff09d3cf65e2848c61606863448a34 (patch) | |
tree | c2cd1fd64d4da6c9621fd9939bdb6b63236482fb /prefs_forms.php | |
parent | 54c322544cbd774ff7858cdff0644f6f7b3250f1 (diff) |
rename file
Diffstat (limited to 'prefs_forms.php')
-rw-r--r-- | prefs_forms.php | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/prefs_forms.php b/prefs_forms.php new file mode 100644 index 0000000000..a964e5147c --- /dev/null +++ b/prefs_forms.php @@ -0,0 +1,153 @@ +<?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'; + +$GLOBALS['js_include'][] = 'config.js'; + +require_once './libraries/header.inc.php'; + +// show server tabs +require './libraries/server_links.inc.php'; + +// build user preferences menu +$form_param = filter_input(INPUT_GET, 'form'); +if (!isset($forms[$form_param])) { + $forms_keys = array_keys($forms); + $form_param = array_shift($forms_keys); +} +$tabs_icons = array( + 'Features' => 'b_tblops.png', + 'Sql_queries' => 'b_sql.png', + 'Left_frame' => 'b_select.png', + 'Main_frame' => 'b_props.png', + 'Import' => 'b_import.png', + 'Export' => 'b_export.png'); +echo '<ul id="topmenu2">'; +foreach (array_keys($forms) as $formset) { + $tab = array( + 'link' => 'prefs_forms.php', + 'text' => PMA_lang('Form_' . $formset), + 'icon' => $tabs_icons[$formset], + 'active' => $formset == $form_param); + echo PMA_generate_html_tab($tab, array('form' => $formset)); +} +echo '</ul>'; + +// show "configuration saved" message and reload navigation frame if needed +if (!empty($_GET['saved'])) { + $message = PMA_Message::rawSuccess(__('Configuration has been saved')); + $message->display(); + if (isset($_GET['refresh_left_frame']) && $_GET['refresh_left_frame'] == '1') { +?> +<script type="text/javascript"> +if (window.parent && window.parent.frame_navigation) { + window.parent.frame_navigation.location.reload(); +} +</script> +<?php + } +} + +// handle form display and processing + +$forms_all_keys = PMA_read_userprefs_fieldnames($forms); +$cf = ConfigFile::getInstance(); +$cf->setAllowedKeys($forms_all_keys); +$cf->updateWithGlobalConfig($GLOBALS['PMA_Config']); + +// todo: debug - remove +$arr = $cf->getConfigArray(); +$arr2 = array(); +foreach ($arr as $k => $v) { + $arr2[] = "<b>$k</b> " . var_export($v, true); +} +$arr2 = implode(', ', $arr2); +$arr2 .= '<br />Blacklist: ' . (empty($cfg['UserprefsDisallow']) + ? '<i>empty</i>' + : implode(', ', $cfg['UserprefsDisallow'])); +$msg = PMA_Message::notice('Debug: ' . $arr2); +$msg->display(); + +$form_display = new FormDisplay(); +foreach ($forms[$form_param] as $form_name => $form) { + $form_display->registerForm($form_name, $form); +} + +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; +} +if (!$form_display->process(false)) { + // handle form view and failed POST + $form_display->display(true, true); +} else { + // check for form errors + if ($form_display->hasErrors()) { + // form has errors + ?> + <fieldset> + <b><?php echo __('Submitted form contains errors') ?></b> + <?php $form_display->displayErrors(); ?> + </fieldset> + <?php + $form_display->display(true, true); + } else { + // save settings + $old_settings = PMA_load_userprefs(); + $result = PMA_save_userprefs($cf->getConfigArray()); + if ($result === true) { + // compute differences and check whether left frame should be refreshed + $old_settings = isset($old_settings['config_data']) + ? $old_settings['config_data'] + : array(); + $new_settings = ConfigFile::getInstance()->getConfigArray(); + $diff_keys = array_keys(array_diff_assoc($old_settings, $new_settings) + + array_diff_assoc($new_settings, $old_settings)); + $check_keys = array('NaturalOrder', 'MainPageIconic', 'DefaultTabDatabase'); + $check_keys = array_merge($check_keys, $forms['Left_frame']['Left_frame'], + $forms['Left_frame']['Left_servers'], $forms['Left_frame']['Left_databases']); + $diff = array_intersect($check_keys, $diff_keys); + $refresh_left_frame = !empty($diff); + + // redirect + $url_params = array( + 'form' => $form_param, + 'saved' => 1, + 'refresh_left_frame' => $refresh_left_frame); + PMA_sendHeaderLocation($cfg['PmaAbsoluteUri'] . 'prefs_forms.php' + . PMA_generate_common_url($url_params, '&')); + exit; + } else { + $result->display(); + } + $form_display->display(true, true); + } +} +$GLOBALS['error_handler']->dispAllErrors(); + +/** + * Displays the footer + */ +require_once './libraries/footer.inc.php'; +?>
\ No newline at end of file |