diff --git a/libraries/server_common.lib.php b/libraries/server_common.lib.php
index 540a14982b..07f1bb2a1e 100644
--- a/libraries/server_common.lib.php
+++ b/libraries/server_common.lib.php
@@ -13,14 +13,18 @@ if (! defined('PHPMYADMIN')) {
* Returns the html for the sub-page heading
*
* @param string $type Sub page type
+ * @param string $link Link to the official MySQL documentation
*
* @return string
*/
-function PMA_getSubPageHeader($type)
+function PMA_getHtmlForSubPageHeader($type, $link='')
{
//array contains Sub page icon and text
$header = array();
+ $header['variables']['icon'] = 's_vars.png';
+ $header['variables']['text'] = __('Server variables and settings');
+
$header['engines']['icon'] = 'b_engine.png';
$header['engines']['text'] = __('Storage Engines');
@@ -45,7 +49,7 @@ function PMA_getSubPageHeader($type)
$html = '
'
+ . '';
+
+ $output .= PMA_getHtmlForServerVariablesItems();
+
+ $output .= '
';
+
+ return $output;
+}
+
+
+/**
+ * Prints Html for Server Variables Items
+ *
+ * @return string
+ */
+function PMA_getHtmlForServerVariablesItems()
+{
+ global $VARIABLE_DOC_LINKS;
+ /**
+ * Sends the queries and buffers the results
+ */
+ $serverVarsSession
+ = $GLOBALS['dbi']->fetchResult('SHOW SESSION VARIABLES;', 0, 1);
+ $serverVars = $GLOBALS['dbi']->fetchResult('SHOW GLOBAL VARIABLES;', 0, 1);
+
+ $output = '';
+ $odd_row = true;
+ foreach ($serverVars as $name => $value) {
+ $has_session_value = isset($serverVarsSession[$name])
+ && $serverVarsSession[$name] != $value;
+ $row_class = ($odd_row ? ' odd' : ' even')
+ . ($has_session_value ? ' diffSession' : '');
+
+ $output .= ''
+ . '
';
+
+ // To display variable documentation link
+ if (isset($VARIABLE_DOC_LINKS[$name])) {
+ $output .= '';
+ $output .= PMA_Util::showMySQLDocu(
+ $VARIABLE_DOC_LINKS[$name][1],
+ $VARIABLE_DOC_LINKS[$name][1],
+ false,
+ $VARIABLE_DOC_LINKS[$name][2] . '_' . $VARIABLE_DOC_LINKS[$name][0],
+ true
+ );
+ $output .= htmlspecialchars(str_replace('_', ' ', $name));
+ $output .= '';
+ $output .= '';
+ } else {
+ $output .= htmlspecialchars(str_replace('_', ' ', $name));
+ }
+ $output .= '
'
+ . '
'
+ . PMA_formatVariable($name, $value)
+ . '
'
+ . '
'
+ . '
';
+
+ if ($has_session_value) {
+ $output .= '');
-$response->addHTML(PMA_getSubPageHeader('replication'));
+$response->addHTML(PMA_getHtmlForSubPageHeader('replication'));
// Display error messages
$response->addHTML(PMA_getHtmlForErrorMessage());
diff --git a/server_variables.php b/server_variables.php
index 50356392ac..b796c1b064 100644
--- a/server_variables.php
+++ b/server_variables.php
@@ -7,6 +7,7 @@
*/
require_once 'libraries/common.inc.php';
+require_once 'libraries/server_variables.lib.php';
$response = PMA_Response::getInstance();
$header = $response->getHeader();
@@ -28,85 +29,11 @@ require 'libraries/server_variables_doc.php';
*/
if (isset($_REQUEST['ajax_request']) && $_REQUEST['ajax_request'] == true) {
- $response = PMA_Response::getInstance();
-
if (isset($_REQUEST['type'])) {
if ($_REQUEST['type'] === 'getval') {
- // Send with correct charset
- header('Content-Type: text/html; charset=UTF-8');
- $varValue = $GLOBALS['dbi']->fetchSingleRow(
- 'SHOW GLOBAL VARIABLES WHERE Variable_name="'
- . PMA_Util::sqlAddSlashes($_REQUEST['varName']) . '";',
- 'NUM'
- );
- if (isset($VARIABLE_DOC_LINKS[$_REQUEST['varName']][3])
- && $VARIABLE_DOC_LINKS[$_REQUEST['varName']][3] == 'byte'
- ) {
- $response->addJSON(
- 'message',
- implode(
- ' ', PMA_Util::formatByteDown($varValue[1], 3, 3)
- )
- );
- } else {
- $response->addJSON(
- 'message',
- $varValue[1]
- );
- }
+ PMA_getAjaxReturnForGetVal();
} else if ($_REQUEST['type'] === 'setval') {
- $value = $_REQUEST['varValue'];
-
- if (isset($VARIABLE_DOC_LINKS[$_REQUEST['varName']][3])
- && $VARIABLE_DOC_LINKS[$_REQUEST['varName']][3] == 'byte'
- && preg_match(
- '/^\s*(\d+(\.\d+)?)\s*(mb|kb|mib|kib|gb|gib)\s*$/i',
- $value,
- $matches
- )
- ) {
- $exp = array(
- 'kb' => 1,
- 'kib' => 1,
- 'mb' => 2,
- 'mib' => 2,
- 'gb' => 3,
- 'gib' => 3
- );
- $value = floatval($matches[1]) * PMA_Util::pow(
- 1024,
- $exp[strtolower($matches[3])]
- );
- } else {
- $value = PMA_Util::sqlAddSlashes($value);
- }
-
- if (! is_numeric($value)) {
- $value="'" . $value . "'";
- }
-
- if (! preg_match("/[^a-zA-Z0-9_]+/", $_REQUEST['varName'])
- && $GLOBALS['dbi']->query(
- 'SET GLOBAL ' . $_REQUEST['varName'] . ' = ' . $value
- )
- ) {
- // Some values are rounded down etc.
- $varValue = $GLOBALS['dbi']->fetchSingleRow(
- 'SHOW GLOBAL VARIABLES WHERE Variable_name="'
- . PMA_Util::sqlAddSlashes($_REQUEST['varName'])
- . '";', 'NUM'
- );
- $response->addJSON(
- 'variable',
- PMA_formatVariable($_REQUEST['varName'], $varValue[1])
- );
- } else {
- $response->isSuccess(false);
- $response->addJSON(
- 'error',
- __('Setting variable failed')
- );
- }
+ PMA_getAjaxReturnForSetVal();
}
exit;
}
@@ -115,134 +42,21 @@ if (isset($_REQUEST['ajax_request']) && $_REQUEST['ajax_request'] == true) {
/**
* Displays the sub-page heading
*/
-$output = '
' . PMA_Util::getImage('s_vars.png')
- . '' . __('Server variables and settings') . "\n"
- . PMA_Util::showMySQLDocu(
- 'server_system_variables', 'server_system_variables'
- )
- . '
' . "\n";
+$doc_link = PMA_Util::showMySQLDocu(
+ 'server_system_variables', 'server_system_variables'
+);
+$response->addHtml(PMA_getHtmlForSubPageHeader('variables', $doc_link));
/**
* Link templates
*/
-$url = htmlspecialchars('server_variables.php?' . PMA_generate_common_url());
-$output .= '
';
-$output .= PMA_Util::getIcon('b_edit.png', __('Edit')) . '';
-$output .= '
';
-$output .= PMA_Util::getIcon('b_save.png', __('Save')) . ' ';
-$output .= '
';
-$output .= PMA_Util::getIcon('b_close.png', __('Cancel')) . ' ';
-$output .= PMA_Util::getImage(
- 'b_help.png',
- __('Documentation'),
- array(
- 'style' => 'display:none',
- 'id' => 'docImage'
- )
-);
-
-/**
- * Sends the queries and buffers the results
- */
-$serverVarsSession = $GLOBALS['dbi']->fetchResult('SHOW SESSION VARIABLES;', 0, 1);
-$serverVars = $GLOBALS['dbi']->fetchResult('SHOW GLOBAL VARIABLES;', 0, 1);
-
+$response->addHtml(PMA_getHtmlForLinkTemplates());
/**
* Displays the page
*/
-$value = ! empty($_REQUEST['filter']) ? htmlspecialchars($_REQUEST['filter']) : '';
-$output .= '
';
+$response->addHtml(PMA_getHtmlForServerVariables());
-$output .= '
'
- . '';
-
-$odd_row = true;
-foreach ($serverVars as $name => $value) {
- $has_session_value = isset($serverVarsSession[$name])
- && $serverVarsSession[$name] != $value;
- $row_class = ($odd_row ? ' odd' : ' even')
- . ($has_session_value ? ' diffSession' : '');
-
- $output .= '
'
- . '
';
-
- // To display variable documentation link
- if (isset($VARIABLE_DOC_LINKS[$name])) {
- $output .= '';
- $output .= PMA_Util::showMySQLDocu(
- $VARIABLE_DOC_LINKS[$name][1],
- $VARIABLE_DOC_LINKS[$name][1],
- false,
- $VARIABLE_DOC_LINKS[$name][2] . '_' . $VARIABLE_DOC_LINKS[$name][0],
- true
- );
- $output .= htmlspecialchars(str_replace('_', ' ', $name));
- $output .= '';
- $output .= '';
- } else {
- $output .= htmlspecialchars(str_replace('_', ' ', $name));
- }
- $output .= '
'
- . '
'
- . PMA_formatVariable($name, $value)
- . '
'
- . '
'
- . '
';
-
- if ($has_session_value) {
- $output .= '
'
- . '
(' . __('Session value') . ')
'
- . '
'
- . PMA_formatVariable($name, $serverVarsSession[$name]) . '
'
- . '
'
- . '
';
- }
-
- $odd_row = ! $odd_row;
-}
-$output .= '
';
-
-$response->addHtml($output);
-
-/**
- * Format Variable
- *
- * @param string $name variable name
- * @param numeric $value variable value
- *
- * @return formatted string
- */
-function PMA_formatVariable($name, $value)
-{
- global $VARIABLE_DOC_LINKS;
-
- if (is_numeric($value)) {
- if (isset($VARIABLE_DOC_LINKS[$name][3])
- && $VARIABLE_DOC_LINKS[$name][3]=='byte'
- ) {
- return '
'
- . implode(' ', PMA_Util::formatByteDown($value, 3, 3))
- . '';
- } else {
- return PMA_Util::formatNumber($value, 0);
- }
- }
- return htmlspecialchars($value);
-}
+exit;
?>
diff --git a/test/libraries/PMA_server_common_test.php b/test/libraries/PMA_server_common_test.php
index 1c39b31dca..3dc47b83a3 100644
--- a/test/libraries/PMA_server_common_test.php
+++ b/test/libraries/PMA_server_common_test.php
@@ -35,14 +35,14 @@ class PMA_ServerCommon_Test extends PHPUnit_Framework_TestCase
}
/**
- * Test for PMA_getSubPageHeader
+ * Test for PMA_getHtmlForSubPageHeader
*
* @return void
*/
public function testPMAGetSubPageHeader()
{
//server_engines
- $html = PMA_getSubPageHeader("engines");
+ $html = PMA_getHtmlForSubPageHeader("engines");
$this->assertContains(
'

',
$html
@@ -53,7 +53,7 @@ class PMA_ServerCommon_Test extends PHPUnit_Framework_TestCase
);
//server_databases
- $html = PMA_getSubPageHeader("databases");
+ $html = PMA_getHtmlForSubPageHeader("databases");
$this->assertContains(
'

',
$html
@@ -64,7 +64,7 @@ class PMA_ServerCommon_Test extends PHPUnit_Framework_TestCase
);
//server_replication
- $html = PMA_getSubPageHeader("replication");
+ $html = PMA_getHtmlForSubPageHeader("replication");
$replication_img = '

';
$this->assertContains(