From 577fd13514f02804a3b791bb7a632fd5aa1d078c Mon Sep 17 00:00:00 2001 From: xmujay Date: Sat, 20 Jul 2013 22:36:56 +0800 Subject: [PATCH 1/5] refactor server_export --- libraries/display_export.lib.php | 419 +------------------ libraries/server_export.lib.php | 692 +++++++++++++++++++++++++++++++ server_export.php | 53 +-- 3 files changed, 718 insertions(+), 446 deletions(-) create mode 100644 libraries/server_export.lib.php diff --git a/libraries/display_export.lib.php b/libraries/display_export.lib.php index be3c3bc433..3b49597c73 100644 --- a/libraries/display_export.lib.php +++ b/libraries/display_export.lib.php @@ -18,6 +18,7 @@ if (isset($_REQUEST['single_table'])) { require_once './libraries/file_listing.lib.php'; require_once './libraries/plugin_interface.lib.php'; +require_once './libraries/server_export.lib.php'; /** * Outputs appropriate checked statement for checkbox. @@ -51,407 +52,31 @@ if (empty($export_list)) { exit; } -$html = ""; -$html .= '
'; -if ($export_type == 'server') { - $html .= PMA_generate_common_hidden_inputs('', '', 1); -} elseif ($export_type == 'database') { - $html .= PMA_generate_common_hidden_inputs($db, '', 1); -} else { - $html .= PMA_generate_common_hidden_inputs($db, $table, 1); -} - -// just to keep this value for possible next display of this form after saving -// on server -if (isset($single_table)) { - $html .= '' - . "\n"; -} - -$html .= ''; -$html .= "\n"; - -// If the export method was not set, the default is quick -if (isset($_GET['export_method'])) { - $cfg['Export']['method'] = $_GET['export_method']; -} elseif (! isset($cfg['Export']['method'])) { - $cfg['Export']['method'] = 'quick'; -} -// The export method (quick, custom or custom-no-form) -$html .= ''; - - -if (isset($_GET['sql_query'])) { - $html .= '' . "\n"; -} elseif (! empty($sql_query)) { - $html .= '' . "\n"; -} - -$html .= ''; - -if (isset($_GET['quick_or_custom'])) { - $export_method = $_GET['quick_or_custom']; -} else { - $export_method = $cfg['Export']['method']; -} - -$html .= '
'; -$html .= '

' . __('Export Method:') . '

'; -$html .= '
    '; -$html .= '
  • '; -$html .= ''; -} else if ($export_type == 'database') { - $html .= '

    ' . __('Table(s):') . '

    '; -} -if (! empty($multi_values)) { - $html .= $multi_values; -} -$html .= '
'; - -if (strlen($table) && ! isset($num_tables) && ! PMA_Table::isMerge($db, $table)) { - $html .= '
'; - $html .= '

' . __('Rows:') . '

'; - $html .= '
    '; - $html .= '
  • '; - $html .= ''; - $html .= '
      '; - $html .= '
    • '; - $html .= ''; - $html .= ''; - $html .= '
    • '; - $html .= '
    • '; - $html .= ''; - $html .= ''; - $html .= '
    • '; - $html .= '
    '; - $html .= '
  • '; - $html .= '
  • '; - $html .= ''; - $html .= '
  • '; - $html .= '
'; - $html .= '
'; -} - -if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) { - $html .= '
'; - $html .= '

' . __('Output:') . '

'; - $html .= '
    '; - $html .= '
  • '; - $html .= '%s'), - htmlspecialchars(PMA_Util::userDir($cfg['SaveDir'])) - ); - $html .= ''; - $html .= '
  • '; - $html .= '
  • '; - $html .= ''; -$html .= '
      '; -$html .= '
    • '; -$html .= ''; -$html .= '
        '; -if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) { - $html .= '
      • '; - $html .= '%s'), - htmlspecialchars(PMA_Util::userDir($cfg['SaveDir'])) - ); - $html .= ''; - $html .= '
      • '; - $html .= '
      • '; - $html .= 'addMessage(__('@SERVER@ will become the server name')); -if ($export_type == 'database' || $export_type == 'table') { - $trans->addMessage(__(', @DATABASE@ will become the database name')); - if ($export_type == 'table') { - $trans->addMessage(__(', @TABLE@ will become the table name')); - } -} - -$msg = new PMA_Message( - __('This value is interpreted using %1$sstrftime%2$s, so you can use time formatting strings. Additionally the following transformations will happen: %3$s. Other text will be kept as is. See the %4$sFAQ%5$s for details.') -); -$msg->addParam( - '', - false -); -$msg->addParam('', false); -$msg->addParam($trans); -$doc_url = PMA_Util::getDocuLink('faq', 'faq6-27'); -$msg->addParam( - '', - false -); -$msg->addParam('', false); - -$html .= PMA_Util::showHint($msg); -$html .= ''; -$html .= 'getUserValue( - 'pma_db_filename_template', - $GLOBALS['cfg']['Export']['file_template_database'] - ) - ); - } elseif ($export_type == 'table') { - $html .= htmlspecialchars( - $GLOBALS['PMA_Config']->getUserValue( - 'pma_table_filename_template', - $GLOBALS['cfg']['Export']['file_template_table'] - ) - ); - } else { - $html .= htmlspecialchars( - $GLOBALS['PMA_Config']->getUserValue( - 'pma_server_filename_template', - $GLOBALS['cfg']['Export']['file_template_server'] - ) - ); - } -} -$html .= '"'; -$html .= '/>'; -$html .= '' . "\n"; - reset($cfg['AvailableCharsets']); - $html .= '
      • '; -} // end if - -if (isset($_GET['compression'])) { - $selected_compression = $_GET['compression']; -} elseif (isset($cfg['Export']['compression'])) { - $selected_compression = $cfg['Export']['compression']; -} else { - $selected_compression = "none"; -} - -// zip, gzip and bzip2 encode features -$is_zip = ($cfg['ZipDump'] && @function_exists('gzcompress')); -$is_gzip = ($cfg['GZipDump'] && @function_exists('gzencode')); -$is_bzip2 = ($cfg['BZipDump'] && @function_exists('bzcompress')); -if ($is_zip || $is_gzip || $is_bzip2) { - $html .= '
      • '; - $html .= ''; - $html .= ''; - $html .= '
      • '; -} else { - $html .= ''; -} -$html .= '
      '; -$html .= '
    • '; -$html .= '
    • '; -$html .= '
    • '; -$html .= '
    '; -$html .= '
'; - -$html .= '
'; -$html .= '

' . __('Format:') . '

'; -$html .= PMA_pluginGetChoice('Export', 'what', $export_list, 'format'); -$html .= '
'; - -$html .= '
'; -$html .= '

' . __('Format-specific options:') . '

'; -$html .= '

'; -$html .= __('Scroll down to fill in the options for the selected format and ignore the options for other formats.'); -$html .= '

'; -$html .= PMA_pluginGetOptions('Export', $export_list); -$html .= '
'; - -if (function_exists('PMA_Kanji_encodingForm')) { - // Encoding setting form appended by Y.Kawada - // Japanese encoding setting - $html .= '
'; - $html .= '

' . __('Encoding Conversion:') . '

'; - $html .= PMA_Kanji_encodingForm(); - $html .= '
'; -} - -$html .= '
'; - -$html .= PMA_Util::getExternalBug( - __('SQL compatibility mode'), 'mysql', '50027', '14515' +//output Hidden Input +$single_table_str = isset($single_table)? $single_table : ''; +$sql_query_str = isset($single_table)? $sql_query : ''; +$html .= PMA_getHtmlForHiddenInput( + $export_type, + $db, + $table, + $single_table_str, + $sql_query_str +); + +//output Export Options +$num_tables_str = isset($num_tables)? $num_tables : ''; +$html .= PMA_getHtmlForExportOptions( + $export_type, + $db, + $table, + $multi_values, + $num_tables_str, + $export_list ); -$html .= ''; -$html .= '
'; $html .= '
'; $response = PMA_Response::getInstance(); diff --git a/libraries/server_export.lib.php b/libraries/server_export.lib.php new file mode 100644 index 0000000000..98abe4e4a3 --- /dev/null +++ b/libraries/server_export.lib.php @@ -0,0 +1,692 @@ +'; + $multi_values .= ''; + $multi_values .= __('Select All'); + $multi_values .= ''; + $multi_values .= ' / '; + $multi_values .= ''; + $multi_values .= __('Unselect All') . '
'; + + $multi_values .= ''; + + return $multi_values; +} + +/** + * Prints Html For Export Hidden Input + * + * @param String $export_type Selected Export Type + * @param String $db Selected DB + * @param String $table Selected Table + * @param String $single_table Single Table + * @param String $sql_query Sql Query + * + * @return string + */ +function PMA_getHtmlForHiddenInput( + $export_type, $db, $table, $single_table, $sql_query +) { + global $cfg; + $html = ""; + if ($export_type == 'server') { + $html .= PMA_generate_common_hidden_inputs('', '', 1); + } elseif ($export_type == 'database') { + $html .= PMA_generate_common_hidden_inputs($db, '', 1); + } else { + $html .= PMA_generate_common_hidden_inputs($db, $table, 1); + } + + // just to keep this value for possible next display of this form after saving + // on server + if (!empty($single_table)) { + $html .= '' + . "\n"; + } + + $html .= ''; + $html .= "\n"; + + // If the export method was not set, the default is quick + if (isset($_GET['export_method'])) { + $cfg['Export']['method'] = $_GET['export_method']; + } elseif (! isset($cfg['Export']['method'])) { + $cfg['Export']['method'] = 'quick'; + } + // The export method (quick, custom or custom-no-form) + $html .= ''; + + + if (isset($_GET['sql_query'])) { + $html .= '' . "\n"; + } elseif (! empty($sql_query)) { + $html .= '' . "\n"; + } + + return $html; +} + +/** + * Prints Html For Export Options Header + * + * @param String $export_type Selected Export Type + * @param String $db Selected DB + * @param String $table Selected Table + * + * @return string + */ +function PMA_getHtmlForExportOptionHeader($export_type, $db, $table) +{ + $html = ''; + + return $html; +} + +/** + * Prints Html For Export Options Method + * + * @return string + */ +function PMA_getHtmlForExportOptionsMethod() +{ + global $cfg; + if (isset($_GET['quick_or_custom'])) { + $export_method = $_GET['quick_or_custom']; + } else { + $export_method = $cfg['Export']['method']; + } + + $html = '
'; + $html .= '

' . __('Export Method:') . '

'; + $html .= '
'; + + return $html; +} + +/** + * Prints Html For Export Options Format + * + * @param String $export_list Export List + * + * @return string + */ +function PMA_getHtmlForExportOptionsFormat($export_list) +{ + $html = '
'; + $html .= '

' . __('Format:') . '

'; + $html .= PMA_pluginGetChoice('Export', 'what', $export_list, 'format'); + $html .= '
'; + + $html .= '
'; + $html .= '

' . __('Format-specific options:') . '

'; + $html .= '

'; + $html .= __( + 'Scroll down to fill in the options for the selected format ' + . 'and ignore the options for other formats.' + ); + $html .= '

'; + $html .= PMA_pluginGetOptions('Export', $export_list); + $html .= '
'; + + if (function_exists('PMA_Kanji_encodingForm')) { + // Encoding setting form appended by Y.Kawada + // Japanese encoding setting + $html .= '
'; + $html .= '

' . __('Encoding Conversion:') . '

'; + $html .= PMA_Kanji_encodingForm(); + $html .= '
'; + } + + $html .= '
'; + + $html .= PMA_Util::getExternalBug( + __('SQL compatibility mode'), 'mysql', '50027', '14515' + ); + + $html .= ''; + $html .= '
'; + + return $html; +} +/** + * Prints Html For Export Options Rows + * + * @param String $db Selected DB + * @param String $table Selected Table + * + * @return string + */ +function PMA_getHtmlForExportOptionsRows($db, $table) +{ + $html .= '
'; + $html .= '

' . __('Rows:') . '

'; + $html .= ''; + $html .= '
'; + return $html; +} + +/** + * Prints Html For Export Options Quick Export + * + * @return string + */ +function PMA_getHtmlForExportOptionsQuickExport() +{ + global $cfg; + $html = '
'; + $html .= '

' . __('Output:') . '

'; + $html .= '