diff --git a/db_export.php b/db_export.php index 2b2fde41db..1b86a328c1 100644 --- a/db_export.php +++ b/db_export.php @@ -85,6 +85,6 @@ $multi_values .= "\n"; $multi_values .= ''; $export_type = 'database'; -require_once 'libraries/display_export.lib.php'; +require_once 'libraries/display_export.inc.php'; ?> diff --git a/libraries/DisplayResults.class.php b/libraries/DisplayResults.class.php index dbba518ba5..c7eead24be 100644 --- a/libraries/DisplayResults.class.php +++ b/libraries/DisplayResults.class.php @@ -5279,7 +5279,7 @@ class PMA_DisplayResults // Export link // (the url_query has extra parameters that won't be used to export) - // (the single_table parameter is used in display_export.lib.php + // (the single_table parameter is used in display_export.inc.php // to hide the SQL and the structure export dialogs) // If the parser found a PROCEDURE clause // (most probably PROCEDURE ANALYSE()) it makes no sense to diff --git a/libraries/display_export.inc.php b/libraries/display_export.inc.php new file mode 100644 index 0000000000..5f71e68640 --- /dev/null +++ b/libraries/display_export.inc.php @@ -0,0 +1,72 @@ + $export_type, + 'single_table' => isset($single_table) + ) +); + +/* Fail if we didn't find any plugin */ +if (empty($export_list)) { + PMA_Message::error( + __('Could not load export plugins, please check your installation!') + )->display(); + exit; +} + +$html = '
'; + +//output Hidden Inputs +$single_table_str = isset($single_table)? $single_table : ''; +$sql_query_str = isset($sql_query)? $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 : ''; +$unlim_num_rows_str = isset($unlim_num_rows)? $unlim_num_rows : ''; +$multi_values_str = isset($multi_values)? $multi_values : ''; +$html .= PMA_getHtmlForExportOptions( + $export_type, + $db, + $table, + $multi_values_str, + $num_tables_str, + $export_list, + $unlim_num_rows_str +); + +$html .= '
'; + +$response = PMA_Response::getInstance(); +$response->addHTML($html); diff --git a/libraries/display_export.lib.php b/libraries/display_export.lib.php index be3c3bc433..9fd9aa4678 100644 --- a/libraries/display_export.lib.php +++ b/libraries/display_export.lib.php @@ -1,24 +1,17 @@ $export_type, - 'single_table' => isset($single_table) - ) -); +/** + * Prints Html For Export Selection Options + * + * @param String $tmp_select Tmp seleted method of export + * + * @return string + */ +function PMA_getHtmlForExportSelectOptions($tmp_select = '') +{ + $multi_values = '
'; + $multi_values .= ''; + $multi_values .= __('Select All'); + $multi_values .= ''; + $multi_values .= ' / '; + $multi_values .= ''; + $multi_values .= __('Unselect All') . '
'; + + $multi_values .= '
'; -/* Fail if we didn't find any plugin */ -if (empty($export_list)) { - PMA_Message::error( - __('Could not load export plugins, please check your installation!') - )->display(); - exit; + return $multi_values; } -$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); +/** + * 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; } -// just to keep this value for possible next display of this form after saving -// on server -if (isset($single_table)) { - $html .= '' - . "\n"; +/** + * 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; } -$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"; +/** + * 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.' ); -} else { - $html .= sprintf( - __('Exporting rows from "%s" table'), - htmlspecialchars($table) + $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; } -$html .= ''; -$html .= ''; - -if (isset($_GET['quick_or_custom'])) { - $export_method = $_GET['quick_or_custom']; -} else { - $export_method = $cfg['Export']['method']; -} - -$html .= '
'; -$html .= '

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

'; -$html .= '
'; - -if (strlen($table) && ! isset($num_tables) && ! PMA_Table::isMerge($db, $table)) { - $html .= '
'; +/** + * Prints Html For Export Options Rows + * + * @param String $db Selected DB + * @param String $table Selected Table + * @param String $unlim_num_rows Num of Rows + * + * @return string + */ +function PMA_getHtmlForExportOptionsRows($db, $table, $unlim_num_rows) +{ + $html = '
'; $html .= '

' . __('Rows:') . '

'; $html .= '
    '; $html .= '
  • '; @@ -176,7 +323,7 @@ if (strlen($table) && ! isset($num_tables) && ! PMA_Table::isMerge($db, $table)) $html .= ''; +/** + * Prints Html For Export Options Quick Export + * + * @return string + */ +function PMA_getHtmlForExportOptionsQuickExport() +{ + global $cfg; + $html = '
    '; $html .= '

    ' . __('Output:') . '

    '; $html .= '
      '; $html .= '
    • '; @@ -234,23 +389,19 @@ if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) { $html .= '
    • '; $html .= '
    '; $html .= '
    '; + + return $html; } -$html .= '
    '; -$html .= '

    ' . __('Output:') . '

    '; -$html .= '
      '; -$html .= '
    • '; -$html .= ''; -$html .= '
        '; -if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) { - $html .= '
      • '; +/** + * Prints Html For Export Options Save Dir + * + * @return string + */ +function PMA_getHtmlForExportOptionsOuputSaveDir() +{ + global $cfg; + $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')); + + +/** + * Prints Html For Export Options + * + * @param String $export_type Selected Export Type + * + * @return string + */ +function PMA_getHtmlForExportOptionsOuputFormat($export_type) +{ + $html = '
      • '; + $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'] - ) - ); + + $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_server_filename_template', - $GLOBALS['cfg']['Export']['file_template_server'] - ) - ); + if ($export_type == 'database') { + $html .= htmlspecialchars( + $GLOBALS['PMA_Config']->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 + $html .= ''; + + return $html; +} -if (isset($_GET['compression'])) { - $selected_compression = $_GET['compression']; -} elseif (isset($cfg['Export']['compression'])) { - $selected_compression = $cfg['Export']['compression']; -} else { - $selected_compression = "none"; +/** + * Prints Html For Export Options Compression + * + * @return string + */ +function PMA_getHtmlForExportOptionsOuputCompression() +{ + global $cfg; + if (isset($_GET['compression'])) { + $selected_compression = $_GET['compression']; + } elseif (isset($cfg['Export']['compression'])) { + $selected_compression = $cfg['Export']['compression']; + } else { + $selected_compression = "none"; + } + + $html = ""; + // 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 .= ''; + } + + return $html; } -// 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) { +/** + * Prints Html For Export Options Radio + * + * @return string + */ +function PMA_getHtmlForExportOptionsOuputRadio() +{ + $html = '
      • '; + $html .= '
      • '; + return $html; +} + +/** + * Prints Html For Export Options + * + * @param String $export_type Selected Export Type + * + * @return string + */ +function PMA_getHtmlForExportOptionsOuput($export_type) +{ + global $cfg; + $html = '
        '; + $html .= '

        ' . __('Output:') . '

        '; + $html .= '
          '; $html .= '
        • '; - $html .= ''; - $html .= ''; + $html .= '/>'; + $html .= ''; + $html .= '
            '; + if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) { + $html .= PMA_getHtmlForExportOptionsOuputSaveDir(); } - if ($is_bzip2) { - $html .= '
          '; $html .= '
        • '; -} else { - $html .= ''; -} -$html .= '
        '; -$html .= ''; -$html .= '
      • '; -$html .= '
      • '; -$html .= '
      '; -$html .= '
    '; + + $html .= PMA_getHtmlForExportOptionsOuputRadio(); -$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 .= '
'; + + return $html; } -$html .= '
'; +/** + * Prints Html For Export Options + * + * @param String $export_type Selected Export Type + * @param String $db Selected DB + * @param String $table Selected Table + * @param String $multi_values Export selection + * @param String $num_tables number of tables + * @param String $export_list Export List + * @param String $unlim_num_rows Number of Rows + * + * @return string + */ +function PMA_getHtmlForExportOptions( + $export_type, $db, $table, $multi_values, + $num_tables, $export_list, $unlim_num_rows +) { + global $cfg; + $html = PMA_getHtmlForExportOptionHeader($export_type, $db, $table); + $html .= PMA_getHtmlForExportOptionsMethod(); + $html .= PMA_getHtmlForExportOptionsSelection($export_type, $multi_values); + + if (strlen($table) && empty($num_tables) && ! PMA_Table::isMerge($db, $table)) { + $html .= PMA_getHtmlForExportOptionsRows($db, $table, $unlim_num_rows); + } + + if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) { + $html .= PMA_getHtmlForExportOptionsQuickExport(); + } -$html .= PMA_Util::getExternalBug( - __('SQL compatibility mode'), 'mysql', '50027', '14515' -); - -$html .= ''; -$html .= '
'; -$html .= ''; - -$response = PMA_Response::getInstance(); -$response->addHTML($html); + $html .= PMA_getHtmlForExportOptionsOuput($export_type); + + $html .= PMA_getHtmlForExportOptionsFormat($export_list); + return $html; +} +?> + + + \ No newline at end of file diff --git a/server_export.php b/server_export.php index 001abf2a93..c0bffdb3e1 100644 --- a/server_export.php +++ b/server_export.php @@ -1,6 +1,7 @@ getHeader(); $scripts = $header->getScripts(); $scripts->addFile('export.js'); -require 'libraries/server_common.inc.php'; - $export_page_title = __('View dump (schema) of databases') . "\n"; -$multi_values = '
'; -$multi_values .= ''; -$multi_values .= __('Select All'); -$multi_values .= ''; -$multi_values .= ' / '; -$multi_values .= ''; -$multi_values .= __('Unselect All') . '
'; - -$multi_values .= '
'; +$select_item = isset($tmp_select)? $tmp_select : ''; +$multi_values = PMA_getHtmlForExportSelectOptions($select_item); $export_type = 'server'; -require_once 'libraries/display_export.lib.php'; +require_once 'libraries/display_export.inc.php'; ?> diff --git a/server_plugins.php b/server_plugins.php index cde4878f7b..2a77f0dcd1 100644 --- a/server_plugins.php +++ b/server_plugins.php @@ -1,6 +1,7 @@