| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * Page-related settings
- *
- * @package PhpMyAdmin
- */
- 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';
- require 'libraries/config/page_settings.forms.php';
- /**
- * Page-related settings
- *
- * @package PhpMyAdmin
- */
- class PMA_PageSettings
- {
- /**
- * Contains id of the form element
- * @var string
- */
- private $_elemId = 'page_settings_modal';
- /**
- * Name of the group to show
- * @var string
- */
- private $_groupName = '';
- /**
- * Contains HTML of errors
- * @var string
- */
- private $_errorHTML = '';
- /**
- * Contains HTML of settings
- * @var string
- */
- private $_HTML = '';
- /**
- * Constructor
- *
- * @param string $formGroupName The name of config form group to display
- * @param string $elemId Id of the div containing settings
- */
- public function __construct($formGroupName, $elemId = null)
- {
- global $forms;
- if (empty($forms[$formGroupName])) {
- return;
- }
- if (isset($_REQUEST['printview']) && $_REQUEST['printview'] == '1') {
- return;
- }
- if (!empty($elemId)) {
- $this->_elemId = $elemId;
- }
- $this->_groupName = $formGroupName;
- $cf = new ConfigFile($GLOBALS['PMA_Config']->base_settings);
- PMA_userprefsPageInit($cf);
- $form_display = new FormDisplay($cf);
- foreach ($forms[$formGroupName] 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);
- }
- // Process form
- $error = null;
- if (isset($_POST['submit_save'])
- && $_POST['submit_save'] == $formGroupName
- ) {
- $this->_processPageSettings($form_display, $cf, $error);
- }
- // Display forms
- $this->_HTML = $this->_getPageSettingsDisplay($form_display, $error);
- }
- /**
- * Process response to form
- *
- * @param FormDisplay &$form_display Form
- * @param ConfigFile &$cf Configuration file
- * @param PMA_Message|null &$error Error message
- *
- * @return void
- */
- private function _processPageSettings(&$form_display, &$cf, &$error)
- {
- if ($form_display->process(false) && !$form_display->hasErrors()) {
- // save settings
- $result = PMA_saveUserprefs($cf->getConfigArray());
- if ($result === true) {
- // reload page
- header('Location: ' . $_SERVER['REQUEST_URI']);
- exit();
- } else {
- $error = $result;
- }
- }
- }
- /**
- * Store errors in _errorHTML
- *
- * @param FormDisplay &$form_display Form
- * @param PMA_Message|null &$error Error message
- *
- * @return void
- */
- private function _storeError(&$form_display, &$error)
- {
- $retval = '';
- if ($error) {
- $retval .= $error->getDisplay();
- }
- if ($form_display->hasErrors()) {
- // form has errors
- $retval .= '<div class="error config-form">'
- . '<b>' . __(
- 'Cannot save settings, submitted configuration form contains '
- . 'errors!'
- ) . '</b>'
- . $form_display->displayErrors()
- . '</div>';
- }
- $this->_errorHTML = $retval;
- }
- /**
- * Display page-related settings
- *
- * @param FormDisplay &$form_display Form
- * @param PMA_Message &$error Error message
- *
- * @return string
- */
- private function _getPageSettingsDisplay(&$form_display, &$error)
- {
- $response = PMA_Response::getInstance();
- $retval = '';
- $this->_storeError($form_display, $error);
- $retval .= '<div id="' . $this->_elemId . '">';
- $retval .= '<div class="page_settings">';
- $retval .= $form_display->getDisplay(
- true,
- true,
- false,
- $response->getFooter()->getSelfUrl('unencoded'),
- array(
- 'submit_save' => $this->_groupName
- )
- );
- $retval .= '</div>';
- $retval .= '</div>';
- return $retval;
- }
- /**
- * Get HTML output
- *
- * @return string
- */
- public function getHTML()
- {
- return $this->_HTML;
- }
- /**
- * Get error HTML output
- *
- * @return string
- */
- public function getErrorHTML()
- {
- return $this->_errorHTML;
- }
- /**
- * Group to show for Page-related settings
- * @param string $formGroupName The name of config form group to display
- * @return PMA_PageSettings
- */
- public static function showGroup($formGroupName)
- {
- $object = new PMA_PageSettings($formGroupName);
- $response = PMA_Response::getInstance();
- $response->addHTML($object->getErrorHTML());
- $response->addHTML($object->getHTML());
- return $object;
- }
- /**
- * Get HTML for navigation settings
- * @return string
- */
- public static function getNaviSettings()
- {
- $object = new PMA_PageSettings('Navi_panel', 'pma_navigation_settings');
- $response = PMA_Response::getInstance();
- $response->addHTML($object->getErrorHTML());
- return $object->getHTML();
- }
- }
|