array('title' => $title, 'desc' => $description); * @param string Prefix for the SHOW VARIABLES query. * @param int The indentation level * * @global array The global phpMyAdmin configuration. * * @return string The table that was generated based on the given information. */ define('PMA_ENGINE_DETAILS_TYPE_PLAINTEXT', 0); define('PMA_ENGINE_DETAILS_TYPE_SIZE', 1); define('PMA_ENGINE_DETAILS_TYPE_NUMERIC', 2); //Has no effect yet... function PMA_generateEngineDetails($variables, $prefix = NULL, $indent = 0) { global $cfg; if (empty($variables)) return ''; $spaces = ''; for ($i = 0; $i < $indent; $i++) { $spaces .= ' '; } /** * Get the variables! */ $sql_query = 'SHOW ' . (PMA_MYSQL_INT_VERSION >= 40102 ? 'GLOBAL ' : '') . 'VARIABLES' . (empty($prefix) ? '' : ' LIKE \'' . $prefix . '\\_%\'') . ';'; $res = PMA_DBI_query($sql_query); $mysql_vars = array(); while ($row = PMA_DBI_fetch_row($res)) { if (isset($variables[$row[0]])) $mysql_vars[$row[0]] = $row[1]; } PMA_DBI_free_result($res); unset($res, $row, $sql_query); if (empty($mysql_vars)) return ''; $dt_table = $spaces . '' . "\n"; $useBgcolorOne = TRUE; $has_content = FALSE; foreach ($variables as $var => $details) { if (!isset($mysql_vars[$var])) continue; if (!isset($details['type'])) $details['type'] = PMA_ENGINE_DETAILS_TYPE_PLAINTEXT; $is_num = $details['type'] == PMA_ENGINE_DETAILS_TYPE_SIZE || $details['type'] == PMA_ENGINE_DETAILS_TYPE_NUMERIC; $bgcolor = $useBgcolorOne ? $cfg['BgcolorOne'] : $cfg['BgcolorTwo']; $dt_table .= $spaces . ' ' . "\n" . $spaces . ' ' . "\n" . $spaces . ' ' . "\n" . $spaces . ' ' . "\n" . $spaces . ' ' . "\n"; $useBgcolorOne = !$useBgcolorOne; $has_content = TRUE; } if (!$has_content) return ''; return $dt_table; } /** * Did the user request information about a certain storage engine? */ if (empty($engine) || empty($mysql_storage_engines[$engine])) { /** * Displays the sub-page heading */ echo '

' . "\n" . ($cfg['MainPageIconic'] ? '' : '' ) . ' ' . $strStorageEngines . "\n" . '

' . "\n"; /** * Displays the table header */ echo '
' . "\n"; if (!empty($variables[$var])) { $dt_table .= $spaces . ' ' . PMA_showHint($details['desc']) . "\n"; } $dt_table .= $spaces . ' ' . "\n" . $spaces . '  ' . $details['title'] . ' ' . "\n" . $spaces . ' ' . "\n" . $spaces . '  '; switch ($details['type']) { case PMA_ENGINE_DETAILS_TYPE_SIZE: $parsed_size = PMA_formatByteDown($mysql_vars[$var]); $dt_table .= $parsed_size[0] . ' ' . $parsed_size[1]; unset($parsed_size); break; default: $dt_table .= htmlspecialchars($mysql_vars[$var]); } $dt_table .= ' ' . "\n" . $spaces . '
' . "\n" . ' ' . "\n" . ' ' . "\n" . ' ' . "\n"; if (PMA_MYSQL_INT_VERSION >= 40102) { echo ' ' . "\n"; } echo ' ' . "\n" . ' ' . "\n" . ' ' . "\n"; /** * Listing the storage engines */ $useBgcolorOne = TRUE; $common_url = './server_engines.php?' . PMA_generate_common_url() . '&engine='; foreach ($mysql_storage_engines as $engine => $details) { echo ' ' . "\n" . ' ' . "\n"; if (PMA_MYSQL_INT_VERSION >= 40102) { echo ' ' . "\n"; } echo ' ' . "\n"; $useBgcolorOne = !$useBgcolorOne; } unset($useBgcolorOne, $common_url, $engine, $details); echo ' ' . "\n" . '
' . "\n" . ' ' . $strStorageEngine . "\n" . ' ' . "\n" . ' ' . $strDescription . "\n" . '
' . "\n" . ' ' . "\n" . ' ' . htmlspecialchars($details['Engine']) . "\n" . ' ' . "\n" . ' ' . "\n" . ' ' . htmlspecialchars($details['Comment']) . "\n" . '
' . "\n"; } else { /** * Displays details about a given Storage Engine */ echo '

' . "\n" . ($cfg['MainPageIconic'] ? '' : '' ) . ' ' . htmlspecialchars($mysql_storage_engines[$engine]['Engine']) . "\n" . '

' . "\n\n" . '

' . "\n" . ' ' . "\n" . ' ' . htmlspecialchars($mysql_storage_engines[$engine]['Comment']) . "\n" . ' ' . "\n" . '

' . "\n"; switch ($mysql_storage_engines[$engine]['Support']) { case 'DEFAULT': echo '

' . ' ' . sprintf($strDefaultEngine, htmlspecialchars($mysql_storage_engines[$engine]['Engine'])) . "\n" . '

' . "\n"; break; case 'YES': echo '

' . "\n" . ' ' . sprintf($strEngineAvailable, htmlspecialchars($mysql_storage_engines[$engine]['Engine'])) . "\n" . '

' . "\n"; break; case 'NO': echo '

' . "\n" . ' ' . sprintf($strEngineUnsupported, htmlspecialchars($mysql_storage_engines[$engine]['Engine'])) . "\n" . '

' . "\n"; break; case 'DISABLED': echo '

' . "\n" . ' ' . sprintf($strEngineDisabled, htmlspecialchars($mysql_storage_engines[$engine]['Engine'])) . "\n" . '

' . "\n"; break; } switch ($engine) { case 'innodb': case 'innobase': echo '

' . "\n" . ' ' . $strInnodbStat . "\n" . '

' . "\n\n"; $res = PMA_DBI_query('SHOW INNODB STATUS;'); $row = PMA_DBI_fetch_row($res); echo '
' . "\n"
	        . htmlspecialchars($row[0]) . "\n"
	        . '
' . "\n"; PMA_DBI_free_result($res); unset($res, $row); break; case 'myisam': $variables = array( 'myisam_data_pointer_size' => array( 'title' => $strMyISAMDataPointerSize, 'desc' => $strMyISAMDataPointerSizeDesc, 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE ), 'myisam_recover_options' => array( 'title' => $strMyISAMRecoverOptions, 'desc' => $strMyISAMRecoverOptionsDesc ), 'myisam_max_sort_file_size' => array( 'title' => $strMyISAMMaxSortFileSize, 'desc' => $strMyISAMMaxSortFileSizeDesc, 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE ), 'myisam_max_extra_sort_file_size' => array( 'title' => $strMyISAMMaxExtraSortFileSize, 'desc' => $strMyISAMMaxExtraSortFileSizeDesc, 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE ), 'myisam_repair_threads' => array( 'title' => $strMyISAMRepairThreads, 'desc' => $strMyISAMRepairThreadsDesc, 'type' => PMA_ENGINE_DETAILS_TYPE_NUMERIC ), 'myisam_sort_buffer_size' => array( 'title' => $strMyISAMSortBufferSize, 'desc' => $strMyISAMSortBufferSizeDesc, 'type' => PMA_ENGINE_DETAILS_TYPE_SIZE ) ); echo PMA_generateEngineDetails($variables, 'myisam'); break; default: echo '

' . "\n" . ' ' . $strNoDetailsForEngine . "\n" . '

' . "\n"; break; } } /** * Sends the footer */ require_once('./footer.inc.php'); ?>