Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

refactor server_export #531

Merged
merged 6 commits into from

2 participants

xmujay Marc Delisle
xmujay

No description provided.

xmujay

Hi Marc,
this pull request is to refactor server_export, including:
1. split functions to server_export.lib.php
2. split long functions to small functions
3. render html at once
4. fix code style

Marc Delisle lem9 was assigned
Marc Delisle
Owner

Hi Bin,
I have started reviewing this code and will continue tomorrow. For now, just a remark. I think that all your new functions should not go to libraries/server_export.lib.php. The reason is that this code can be used for export at the server, database and table level, so a better filename to hold these functions is libraries/display_export.lib.php. You'll notice that this file exists, but it should have been named libraries/display_export.inc.php because it mostly contains non-functional code. I hope I am clear enough.

xmujay

thanks Marc for your careful review.

I have noticed that display_export.lib.php is used by database, server and table.

in the latest commit,
1. I rename display_export.lib.php to display_export.inc.php
2. rename server_export.lib.php to display_export.lib.php
3. also change the include files.

I have tested on database, server and table level export

thanks

Marc Delisle
Owner

Excellent work!

Marc Delisle lem9 merged commit 5c32d0d into from
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Jul 20, 2013
  1. xmujay

    refactor server_export

    xmujay authored
  2. xmujay
  3. xmujay

    fix the undefined error

    xmujay authored
  4. xmujay
  5. xmujay
Commits on Jul 21, 2013
  1. xmujay

    rename server_export.lib.php to display_export.lib.php due to it work…

    xmujay authored
    …s for server and database, table level export
This page is out of date. Refresh to see the latest.
2  db_export.php
View
@@ -85,6 +85,6 @@
$multi_values .= '</select></div>';
$export_type = 'database';
-require_once 'libraries/display_export.lib.php';
+require_once 'libraries/display_export.inc.php';
?>
2  libraries/DisplayResults.class.php
View
@@ -5279,7 +5279,7 @@ private function _getResultsOperations(
// 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
72 libraries/display_export.inc.php
View
@@ -0,0 +1,72 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Displays export tab.
+ *
+ * @package PhpMyAdmin
+ */
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+// Get relations & co. status
+$cfgRelation = PMA_getRelationsParam();
+
+if (isset($_REQUEST['single_table'])) {
+ $GLOBALS['single_table'] = $_REQUEST['single_table'];
+}
+
+require_once './libraries/file_listing.lib.php';
+require_once './libraries/plugin_interface.lib.php';
+require_once './libraries/display_export.lib.php';
+
+/* Scan for plugins */
+$export_list = PMA_getPlugins(
+ "export",
+ 'libraries/plugins/export/',
+ array(
+ 'export_type' => $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 = '<form method="post" action="export.php" '
+ . ' name="dump" class="disableAjax">';
+
+//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 .= '</form>';
+
+$response = PMA_Response::getInstance();
+$response->addHTML($html);
836 libraries/display_export.lib.php
View
@@ -1,24 +1,17 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
+
/**
- * Displays export tab.
+ * functions for displaying server export
*
+ * @usedby server_export.php and display_export.inc.php
+ *
* @package PhpMyAdmin
*/
if (! defined('PHPMYADMIN')) {
exit;
}
-// Get relations & co. status
-$cfgRelation = PMA_getRelationsParam();
-
-if (isset($_REQUEST['single_table'])) {
- $GLOBALS['single_table'] = $_REQUEST['single_table'];
-}
-
-require_once './libraries/file_listing.lib.php';
-require_once './libraries/plugin_interface.lib.php';
-
/**
* Outputs appropriate checked statement for checkbox.
*
@@ -33,134 +26,288 @@ function PMA_exportCheckboxCheck($str)
}
}
-/* Scan for plugins */
-$export_list = PMA_getPlugins(
- "export",
- 'libraries/plugins/export/',
- array(
- 'export_type' => $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;
+/**
+ * Prints Html For Export Selection Options
+ *
+ * @param String $tmp_select Tmp seleted method of export
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportSelectOptions($tmp_select = '')
+{
+ $multi_values = '<div style="text-align: left">';
+ $multi_values .= '<a href="#"';
+ $multi_values .= ' onclick="setSelectOptions'
+ . '(\'dump\', \'db_select[]\', true); return false;">';
+ $multi_values .= __('Select All');
+ $multi_values .= '</a>';
+ $multi_values .= ' / ';
+ $multi_values .= '<a href="#"';
+ $multi_values .= ' onclick="setSelectOptions'
+ . '(\'dump\', \'db_select[]\', false); return false;">';
+ $multi_values .= __('Unselect All') . '</a><br />';
+
+ $multi_values .= '<select name="db_select[]" '
+ . 'id="db_select" size="10" multiple="multiple">';
+ $multi_values .= "\n";
+
+ // Check if the selected databases are defined in $_GET
+ // (from clicking Back button on export.php)
+ if (isset($_GET['db_select'])) {
+ $_GET['db_select'] = urldecode($_GET['db_select']);
+ $_GET['db_select'] = explode(",", $_GET['db_select']);
+ }
+
+ foreach ($GLOBALS['pma']->databases as $current_db) {
+ if ($current_db == 'information_schema'
+ || $current_db == 'performance_schema'
+ || $current_db == 'mysql'
+ ) {
+ continue;
+ }
+ if (isset($_GET['db_select'])) {
+ if (in_array($current_db, $_GET['db_select'])) {
+ $is_selected = ' selected="selected"';
+ } else {
+ $is_selected = '';
+ }
+ } elseif (!empty($tmp_select)) {
+ if (strpos(' ' . $tmp_select, '|' . $current_db . '|')) {
+ $is_selected = ' selected="selected"';
+ } else {
+ $is_selected = '';
+ }
+ } else {
+ $is_selected = ' selected="selected"';
+ }
+ $current_db = htmlspecialchars($current_db);
+ $multi_values .= ' <option value="' . $current_db . '"'
+ . $is_selected . '>' . $current_db . '</option>' . "\n";
+ } // end while
+ $multi_values .= "\n";
+ $multi_values .= '</select></div>';
+
+ return $multi_values;
}
-$html = "";
-$html .= '<form method="post" action="export.php" '
- . ' name="dump" class="disableAjax">';
-
-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 .= '<input type="hidden" name="single_table" value="TRUE" />'
+ . "\n";
+ }
+
+ $html .= '<input type="hidden" name="export_type" value="'
+ . $export_type . '" />';
+ $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 .= '<input type="hidden" name="export_method" value="'
+ . htmlspecialchars($cfg['Export']['method']) . '" />';
+
+
+ if (isset($_GET['sql_query'])) {
+ $html .= '<input type="hidden" name="sql_query" value="'
+ . htmlspecialchars($_GET['sql_query']) . '" />' . "\n";
+ } elseif (! empty($sql_query)) {
+ $html .= '<input type="hidden" name="sql_query" value="'
+ . htmlspecialchars($sql_query) . '" />' . "\n";
+ }
+
+ return $html;
}
-// just to keep this value for possible next display of this form after saving
-// on server
-if (isset($single_table)) {
- $html .= '<input type="hidden" name="single_table" value="TRUE" />'
- . "\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 = '<div class="exportoptions" id="header">';
+ $html .= '<h2>';
+ $html .= PMA_Util::getImage('b_export.png', __('Export'));
+ if ($export_type == 'server') {
+ $html .= __('Exporting databases from the current server');
+ } elseif ($export_type == 'database') {
+ $html .= sprintf(
+ __('Exporting tables from "%s" database'),
+ htmlspecialchars($db)
+ );
+ } else {
+ $html .= sprintf(
+ __('Exporting rows from "%s" table'),
+ htmlspecialchars($table)
+ );
+ }
+ $html .= '</h2>';
+ $html .= '</div>';
+
+ return $html;
}
-$html .= '<input type="hidden" name="export_type" value="'
- . $export_type . '" />';
-$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';
+/**
+ * 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 = '<div class="exportoptions" id="quick_or_custom">';
+ $html .= '<h3>' . __('Export Method:') . '</h3>';
+ $html .= '<ul>';
+ $html .= '<li>';
+ $html .= '<input type="radio" name="quick_or_custom" value="quick" '
+ . ' id="radio_quick_export"';
+ if ($export_method == 'quick' || $export_method == 'quick_no_form') {
+ $html .= ' checked="checked"';
+ }
+ $html .= ' />';
+ $html .= '<label for ="radio_quick_export">';
+ $html .= __('Quick - display only the minimal options');
+ $html .= '</label>';
+ $html .= '</li>';
+
+ $html .= '<li>';
+ $html .= '<input type="radio" name="quick_or_custom" value="custom" '
+ . ' id="radio_custom_export"';
+ if ($export_method == 'custom' || $export_method == 'custom_no_form') {
+ $html .= ' checked="checked"';
+ }
+ $html .= ' />';
+ $html .= '<label for="radio_custom_export">';
+ $html .= __('Custom - display all possible options');
+ $html .= '</label>';
+ $html .= '</li>';
+
+ $html .= '</ul>';
+ $html .= '</div>';
+
+ return $html;
}
-// The export method (quick, custom or custom-no-form)
-$html .= '<input type="hidden" name="export_method" value="'
- . htmlspecialchars($cfg['Export']['method']) . '" />';
-
-if (isset($_GET['sql_query'])) {
- $html .= '<input type="hidden" name="sql_query" value="'
- . htmlspecialchars($_GET['sql_query']) . '" />' . "\n";
-} elseif (! empty($sql_query)) {
- $html .= '<input type="hidden" name="sql_query" value="'
- . htmlspecialchars($sql_query) . '" />' . "\n";
+/**
+ * Prints Html For Export Options Selection
+ *
+ * @param String $export_type Selected Export Type
+ * @param String $multi_values Export Options
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportOptionsSelection($export_type, $multi_values)
+{
+ $html = '<div class="exportoptions" id="databases_and_tables">';
+ if ($export_type == 'server') {
+ $html .= '<h3>' . __('Database(s):') . '</h3>';
+ } else if ($export_type == 'database') {
+ $html .= '<h3>' . __('Table(s):') . '</h3>';
+ }
+ if (! empty($multi_values)) {
+ $html .= $multi_values;
+ }
+ $html .= '</div>';
+
+ return $html;
}
-$html .= '<div class="exportoptions" id="header">';
-$html .= '<h2>';
-$html .= PMA_Util::getImage('b_export.png', __('Export'));
-if ($export_type == 'server') {
- $html .= __('Exporting databases from the current server');
-} elseif ($export_type == 'database') {
- $html .= sprintf(
- __('Exporting tables from "%s" database'),
- htmlspecialchars($db)
+/**
+ * Prints Html For Export Options Format
+ *
+ * @param String $export_list Export List
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportOptionsFormat($export_list)
+{
+ $html = '<div class="exportoptions" id="format">';
+ $html .= '<h3>' . __('Format:') . '</h3>';
+ $html .= PMA_pluginGetChoice('Export', 'what', $export_list, 'format');
+ $html .= '</div>';
+
+ $html .= '<div class="exportoptions" id="format_specific_opts">';
+ $html .= '<h3>' . __('Format-specific options:') . '</h3>';
+ $html .= '<p class="no_js_msg" id="scroll_to_options_msg">';
+ $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 .= '</p>';
+ $html .= PMA_pluginGetOptions('Export', $export_list);
+ $html .= '</div>';
+
+ if (function_exists('PMA_Kanji_encodingForm')) {
+ // Encoding setting form appended by Y.Kawada
+ // Japanese encoding setting
+ $html .= '<div class="exportoptions" id="kanji_encoding">';
+ $html .= '<h3>' . __('Encoding Conversion:') . '</h3>';
+ $html .= PMA_Kanji_encodingForm();
+ $html .= '</div>';
+ }
+
+ $html .= '<div class="exportoptions" id="submit">';
+
+ $html .= PMA_Util::getExternalBug(
+ __('SQL compatibility mode'), 'mysql', '50027', '14515'
);
+
+ $html .= '<input type="submit" value="' . __('Go') . '" id="buttonGo" />';
+ $html .= '</div>';
+
+ return $html;
}
-$html .= '</h2>';
-$html .= '</div>';
-
-if (isset($_GET['quick_or_custom'])) {
- $export_method = $_GET['quick_or_custom'];
-} else {
- $export_method = $cfg['Export']['method'];
-}
-
-$html .= '<div class="exportoptions" id="quick_or_custom">';
-$html .= '<h3>' . __('Export Method:') . '</h3>';
-$html .= '<ul>';
-$html .= '<li>';
-$html .= '<input type="radio" name="quick_or_custom" value="quick" '
- . ' id="radio_quick_export"';
-if ($export_method == 'quick' || $export_method == 'quick_no_form') {
- $html .= ' checked="checked"';
-}
-$html .= ' />';
-$html .= '<label for ="radio_quick_export">';
-$html .= __('Quick - display only the minimal options');
-$html .= '</label>';
-$html .= '</li>';
-
-$html .= '<li>';
-$html .= '<input type="radio" name="quick_or_custom" value="custom" '
- . ' id="radio_custom_export"';
-if ($export_method == 'custom' || $export_method == 'custom_no_form') {
- $html .= ' checked="checked"';
-}
-$html .= ' />';
-$html .= '<label for="radio_custom_export">';
-$html .= __('Custom - display all possible options');
-$html .= '</label>';
-$html .= '</li>';
-
-$html .= '</ul>';
-$html .= '</div>';
-
-$html .= '<div class="exportoptions" id="databases_and_tables">';
-if ($export_type == 'server') {
- $html .= '<h3>' . __('Database(s):') . '</h3>';
-} else if ($export_type == 'database') {
- $html .= '<h3>' . __('Table(s):') . '</h3>';
-}
-if (! empty($multi_values)) {
- $html .= $multi_values;
-}
-$html .= '</div>';
-
-if (strlen($table) && ! isset($num_tables) && ! PMA_Table::isMerge($db, $table)) {
- $html .= '<div class="exportoptions" id="rows">';
+/**
+ * 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 = '<div class="exportoptions" id="rows">';
$html .= '<h3>' . __('Rows:') . '</h3>';
$html .= '<ul>';
$html .= '<li>';
@@ -176,7 +323,7 @@ function PMA_exportCheckboxCheck($str)
$html .= '<input type="text" id="limit_to" name="limit_to" size="5" value="';
if (isset($_GET['limit_to'])) {
$html .= htmlspecialchars($_GET['limit_to']);
- } elseif (isset($unlim_num_rows)) {
+ } elseif (!empty($unlim_num_rows)) {
$html .= $unlim_num_rows;
} else {
$html .= PMA_Table::countRecords($db, $table);
@@ -205,10 +352,18 @@ function PMA_exportCheckboxCheck($str)
$html .= '</li>';
$html .= '</ul>';
$html .= '</div>';
+ return $html;
}
-if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) {
- $html .= '<div class="exportoptions" id="output_quick_export">';
+/**
+ * Prints Html For Export Options Quick Export
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportOptionsQuickExport()
+{
+ global $cfg;
+ $html = '<div class="exportoptions" id="output_quick_export">';
$html .= '<h3>' . __('Output:') . '</h3>';
$html .= '<ul>';
$html .= '<li>';
@@ -234,23 +389,19 @@ function PMA_exportCheckboxCheck($str)
$html .= '</li>';
$html .= '</ul>';
$html .= '</div>';
+
+ return $html;
}
-$html .= '<div class="exportoptions" id="output">';
-$html .= '<h3>' . __('Output:') . '</h3>';
-$html .= '<ul id="ul_output">';
-$html .= '<li>';
-$html .= '<input type="radio" name="output_format" value="sendit" ';
-$html .= 'id="radio_dump_asfile" ';
-if (!isset($_GET['repopulate'])) {
- $html .= PMA_exportCheckboxCheck('asfile');
-}
-$html .= '/>';
-$html .= '<label for="radio_dump_asfile">'
- . __('Save output to a file') . '</label>';
-$html .= '<ul id="ul_save_asfile">';
-if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) {
- $html .= '<li>';
+/**
+ * Prints Html For Export Options Save Dir
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportOptionsOuputSaveDir()
+{
+ global $cfg;
+ $html = '<li>';
$html .= '<input type="checkbox" name="onserver" value="saveit" ';
$html .= 'id="checkbox_dump_onserver" ';
$html .= PMA_exportCheckboxCheck('onserver');
@@ -271,79 +422,106 @@ function PMA_exportCheckboxCheck($str)
$html .= __('Overwrite existing file(s)');
$html .= '</label>';
$html .= '</li>';
-}
-$html .= '<li>';
-$html .= '<label for="filename_template" class="desc">';
-$html .= __('File name template:');
-$trans = new PMA_Message;
-$trans->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'));
- }
+
+ return $html;
}
-$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(
- '<a href="' . PMA_linkURL(PMA_getPHPDocLink('function.strftime.php'))
- . '" target="documentation" title="' . __('Documentation') . '">',
- false
-);
-$msg->addParam('</a>', false);
-$msg->addParam($trans);
-$doc_url = PMA_Util::getDocuLink('faq', 'faq6-27');
-$msg->addParam(
- '<a href="'. $doc_url . '" target="documentation">',
- false
-);
-$msg->addParam('</a>', false);
-$html .= PMA_Util::showHint($msg);
-$html .= '</label>';
-$html .= '<input type="text" name="filename_template" id="filename_template" ';
-$html .= ' value="';
-if (isset($_GET['filename_template'])) {
- $html .= htmlspecialchars($_GET['filename_template']);
-} else {
- 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']
- )
- );
+/**
+ * Prints Html For Export Options
+ *
+ * @param String $export_type Selected Export Type
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportOptionsOuputFormat($export_type)
+{
+ $html = '<li>';
+ $html .= '<label for="filename_template" class="desc">';
+ $html .= __('File name template:');
+ $trans = new PMA_Message;
+ $trans->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(
+ '<a href="' . PMA_linkURL(PMA_getPHPDocLink('function.strftime.php'))
+ . '" target="documentation" title="' . __('Documentation') . '">',
+ false
+ );
+ $msg->addParam('</a>', false);
+ $msg->addParam($trans);
+ $doc_url = PMA_Util::getDocuLink('faq', 'faq6-27');
+ $msg->addParam(
+ '<a href="'. $doc_url . '" target="documentation">',
+ false
+ );
+ $msg->addParam('</a>', false);
+
+ $html .= PMA_Util::showHint($msg);
+ $html .= '</label>';
+ $html .= '<input type="text" name="filename_template" id="filename_template" ';
+ $html .= ' value="';
+ if (isset($_GET['filename_template'])) {
+ $html .= htmlspecialchars($_GET['filename_template']);
} else {
- $html .= htmlspecialchars(
- $GLOBALS['PMA_Config']->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 .= '<input type="checkbox" name="remember_template" ';
+ $html .= 'id="checkbox_remember_template" ';
+ $html .= PMA_exportCheckboxCheck('remember_file_template');
+ $html .= '/>';
+ $html .= '<label for="checkbox_remember_template">';
+ $html .= __('use this for future exports');
+ $html .= '</label>';
+ $html .= '</li>';
+ return $html;
}
-$html .= '"';
-$html .= '/>';
-$html .= '<input type="checkbox" name="remember_template" ';
-$html .= 'id="checkbox_remember_template" ';
-$html .= PMA_exportCheckboxCheck('remember_file_template');
-$html .= '/>';
-$html .= '<label for="checkbox_remember_template">';
-$html .= __('use this for future exports');
-$html .= '</label>';
-$html .= '</li>';
-// charset of file
-if ($GLOBALS['PMA_recoding_engine'] != PMA_CHARSET_NONE) {
- $html .= ' <li><label for="select_charset_of_file" class="desc">'
+
+/**
+ * Prints Html For Export Options Charset
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportOptionsOuputCharset()
+{
+ global $cfg;
+ $html = ' <li><label for="select_charset_of_file" class="desc">'
. __('Character set of the file:') . '</label>' . "\n";
reset($cfg['AvailableCharsets']);
$html .= '<select id="select_charset_of_file" name="charset_of_file" size="1">';
@@ -360,99 +538,171 @@ function PMA_exportCheckboxCheck($str)
}
$html .= '>' . $temp_charset . '</option>';
} // end foreach
- $html .= '</select></li>';
-} // end if
+ $html .= '</select></li>';
+
+ return $html;
+}
-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 .= '<li>';
- $html .= '<label for="compression" class="desc">'
- . __('Compression:') . '</label>';
- $html .= '<select id="compression" name="compression">';
- $html .= '<option value="none">' . __('None') . '</option>';
- if ($is_zip) {
- $html .= '<option value="zip" ';
- if ($selected_compression == "zip") {
- $html .= 'selected="selected"';
- }
- $html .= '>' . __('zipped') . '</option>';
+/**
+ * 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";
}
- if ($is_gzip) {
- $html .= '<option value="gzip" ';
- if ($selected_compression == "gzip") {
- $html .= 'selected="selected"';
+
+ $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 .= '<li>';
+ $html .= '<label for="compression" class="desc">'
+ . __('Compression:') . '</label>';
+ $html .= '<select id="compression" name="compression">';
+ $html .= '<option value="none">' . __('None') . '</option>';
+ if ($is_zip) {
+ $html .= '<option value="zip" ';
+ if ($selected_compression == "zip") {
+ $html .= 'selected="selected"';
+ }
+ $html .= '>' . __('zipped') . '</option>';
}
- $html .= '>' . __('gzipped') . '</option>';
- }
- if ($is_bzip2) {
- $html .= '<option value="bzip2" ';
- if ($selected_compression == "bzip2") {
- $html .= 'selected="selected"';
+ if ($is_gzip) {
+ $html .= '<option value="gzip" ';
+ if ($selected_compression == "gzip") {
+ $html .= 'selected="selected"';
+ }
+ $html .= '>' . __('gzipped') . '</option>';
+ }
+ if ($is_bzip2) {
+ $html .= '<option value="bzip2" ';
+ if ($selected_compression == "bzip2") {
+ $html .= 'selected="selected"';
+ }
+ $html .= '>' . __('bzipped') . '</option>';
}
- $html .= '>' . __('bzipped') . '</option>';
+ $html .= '</select>';
+ $html .= '</li>';
+ } else {
+ $html .= '<input type="hidden" name="compression" value="'
+ . htmlspecialchars($selected_compression) . '" />';
}
- $html .= '</select>';
- $html .= '</li>';
-} else {
- $html .= '<input type="hidden" name="compression" value="'
- . htmlspecialchars($selected_compression) . '" />';
+
+ return $html;
}
-$html .= '</ul>';
-$html .= '</li>';
-$html .= '<li>';
-$html .= '<input type="radio" id="radio_view_as_text" '
- . ' name="output_format" value="astext" ';
-if (isset($_GET['repopulate']) || $GLOBALS['cfg']['Export']['asfile'] == false) {
- $html .= 'checked="checked"';
+
+/**
+ * Prints Html For Export Options Radio
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportOptionsOuputRadio()
+{
+ $html = '<li>';
+ $html .= '<input type="radio" id="radio_view_as_text" '
+ . ' name="output_format" value="astext" ';
+ if (isset($_GET['repopulate']) || $GLOBALS['cfg']['Export']['asfile'] == false) {
+ $html .= 'checked="checked"';
+ }
+ $html .= '/>';
+ $html .= '<label for="radio_view_as_text">'
+ . __('View output as text') . '</label></li>';
+ return $html;
}
-$html .= '/>';
-$html .= '<label for="radio_view_as_text">'
- . __('View output as text') . '</label></li>';
-$html .= '</ul>';
-$html .= '</div>';
-$html .= '<div class="exportoptions" id="format">';
-$html .= '<h3>' . __('Format:') . '</h3>';
-$html .= PMA_pluginGetChoice('Export', 'what', $export_list, 'format');
-$html .= '</div>';
+/**
+ * Prints Html For Export Options
+ *
+ * @param String $export_type Selected Export Type
+ *
+ * @return string
+ */
+function PMA_getHtmlForExportOptionsOuput($export_type)
+{
+ global $cfg;
+ $html = '<div class="exportoptions" id="output">';
+ $html .= '<h3>' . __('Output:') . '</h3>';
+ $html .= '<ul id="ul_output">';
+ $html .= '<li>';
+ $html .= '<input type="radio" name="output_format" value="sendit" ';
+ $html .= 'id="radio_dump_asfile" ';
+ if (!isset($_GET['repopulate'])) {
+ $html .= PMA_exportCheckboxCheck('asfile');
+ }
+ $html .= '/>';
+ $html .= '<label for="radio_dump_asfile">'
+ . __('Save output to a file') . '</label>';
+ $html .= '<ul id="ul_save_asfile">';
+ if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) {
+ $html .= PMA_getHtmlForExportOptionsOuputSaveDir();
+ }
-$html .= '<div class="exportoptions" id="format_specific_opts">';
-$html .= '<h3>' . __('Format-specific options:') . '</h3>';
-$html .= '<p class="no_js_msg" id="scroll_to_options_msg">';
-$html .= __('Scroll down to fill in the options for the selected format and ignore the options for other formats.');
-$html .= '</p>';
-$html .= PMA_pluginGetOptions('Export', $export_list);
-$html .= '</div>';
+ $html .= PMA_getHtmlForExportOptionsOuputFormat($export_type);
+
+ // charset of file
+ if ($GLOBALS['PMA_recoding_engine'] != PMA_CHARSET_NONE) {
+ $html .= PMA_getHtmlForExportOptionsOuputCharset();
+ } // end if
+
+ $html .= PMA_getHtmlForExportOptionsOuputCompression();
+
+ $html .= '</ul>';
+ $html .= '</li>';
+
+ $html .= PMA_getHtmlForExportOptionsOuputRadio();
-if (function_exists('PMA_Kanji_encodingForm')) {
- // Encoding setting form appended by Y.Kawada
- // Japanese encoding setting
- $html .= '<div class="exportoptions" id="kanji_encoding">';
- $html .= '<h3>' . __('Encoding Conversion:') . '</h3>';
- $html .= PMA_Kanji_encodingForm();
+ $html .= '</ul>';
$html .= '</div>';
+
+ return $html;
}
-$html .= '<div class="exportoptions" id="submit">';
-
-$html .= PMA_Util::getExternalBug(
- __('SQL compatibility mode'), 'mysql', '50027', '14515'
-);
-
-$html .= '<input type="submit" value="' . __('Go') . '" id="buttonGo" />';
-$html .= '</div>';
-$html .= '</form>';
+/**
+ * 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();
+ }
-$response = PMA_Response::getInstance();
-$response->addHTML($html);
+ $html .= PMA_getHtmlForExportOptionsOuput($export_type);
+
+ $html .= PMA_getHtmlForExportOptionsFormat($export_list);
+ return $html;
+}
+?>
+
+
+
56 server_export.php
View
@@ -1,6 +1,7 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
+ * object the server export page
*
* @package PhpMyAdmin
*/
@@ -9,65 +10,20 @@
* Does the common work
*/
require_once 'libraries/common.inc.php';
+require_once 'libraries/server_common.inc.php';
+require_once 'libraries/display_export.lib.php';
$response = PMA_Response::getInstance();
$header = $response->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 = '<div style="text-align: left">';
-$multi_values .= '<a href="#"';
-$multi_values .= ' onclick="setSelectOptions(\'dump\', \'db_select[]\', true); return false;">';
-$multi_values .= __('Select All');
-$multi_values .= '</a>';
-$multi_values .= ' / ';
-$multi_values .= '<a href="#"';
-$multi_values .= ' onclick="setSelectOptions(\'dump\', \'db_select[]\', false); return false;">';
-$multi_values .= __('Unselect All') . '</a><br />';
-
-$multi_values .= '<select name="db_select[]" id="db_select" size="10" multiple="multiple">';
-$multi_values .= "\n";
-
-// Check if the selected databases are defined in $_GET (from clicking Back button on export.php)
-if (isset($_GET['db_select'])) {
- $_GET['db_select'] = urldecode($_GET['db_select']);
- $_GET['db_select'] = explode(",", $_GET['db_select']);
-}
-
-foreach ($GLOBALS['pma']->databases as $current_db) {
- if ($current_db == 'information_schema'
- || $current_db == 'performance_schema'
- || $current_db == 'mysql'
- ) {
- continue;
- }
- if (isset($_GET['db_select'])) {
- if (in_array($current_db, $_GET['db_select'])) {
- $is_selected = ' selected="selected"';
- } else {
- $is_selected = '';
- }
- } elseif (isset($tmp_select)) {
- if (strpos(' ' . $tmp_select, '|' . $current_db . '|')) {
- $is_selected = ' selected="selected"';
- } else {
- $is_selected = '';
- }
- } else {
- $is_selected = ' selected="selected"';
- }
- $current_db = htmlspecialchars($current_db);
- $multi_values .= ' <option value="' . $current_db . '"'
- . $is_selected . '>' . $current_db . '</option>' . "\n";
-} // end while
-$multi_values .= "\n";
-$multi_values .= '</select></div>';
+$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';
?>
1  server_plugins.php
View
@@ -1,6 +1,7 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
+ * object the server plugin page
*
* @package PhpMyAdmin
*/
2  tbl_export.php
View
@@ -82,5 +82,5 @@
}
$export_type = 'table';
-require_once 'libraries/display_export.lib.php';
+require_once 'libraries/display_export.inc.php';
?>
Something went wrong with that request. Please try again.