Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorninadsp <ninadsp16289@gmail.com>2010-08-22 11:12:54 +0400
committerninadsp <ninadsp16289@gmail.com>2010-08-22 11:12:54 +0400
commitc9253c0a0ed223ebeba21b25a16391a4acd611cf (patch)
tree5f593a7e32b38540ba4c5493637b95689702e964 /export.php
parente1f319eef175d23474ca82455c761f8ecffca741 (diff)
parent7be82362080f862de054c85646fb54b3bf6402b9 (diff)
Merge conflict resolved for Lori's tree merge to main
Diffstat (limited to 'export.php')
-rwxr-xr-xexport.php82
1 files changed, 64 insertions, 18 deletions
diff --git a/export.php b/export.php
index 00639e22a3..1a5d6e6451 100755
--- a/export.php
+++ b/export.php
@@ -41,7 +41,15 @@ $compression = false;
$onserver = false;
$save_on_server = false;
$buffer_needed = false;
-if (empty($_REQUEST['asfile'])) {
+
+// Is it a quick or custom export?
+if($_REQUEST['quick_or_custom'] == 'quick') {
+ $quick_export = true;
+} else {
+ $quick_export = false;
+}
+
+if ($_REQUEST['output_format'] == 'astext') {
$asfile = false;
} else {
$asfile = true;
@@ -49,8 +57,12 @@ if (empty($_REQUEST['asfile'])) {
$compression = $_REQUEST['compression'];
$buffer_needed = true;
}
- if (!empty($_REQUEST['onserver'])) {
- $onserver = $_REQUEST['onserver'];
+ if (($quick_export && !empty($_REQUEST['quick_export_onserver'])) || (!$quick_export && !empty($_REQUEST['onserver']))) {
+ if($quick_export) {
+ $onserver = $_REQUEST['quick_export_onserver'];
+ } else {
+ $onserver = $_REQUEST['onserver'];
+ }
// Will we save dump on server?
$save_on_server = ! empty($cfg['SaveDir']) && $onserver;
}
@@ -261,7 +273,13 @@ if ($asfile) {
$filename = PMA_convert_string($charset, 'iso-8859-1', $filename);
// Grab basic dump extension and mime type
- $filename .= '.' . $export_list[$type]['extension'];
+ // Check if the user already added extension; get the substring where the extension would be if it was included
+ $extension_start_pos = strlen($filename) - strlen($export_list[$type]['extension']) - 1;
+ $user_extension = substr($filename, $extension_start_pos, strlen($filename));
+ $required_extension = "." . $export_list[$type]['extension'];
+ if(strtolower($user_extension) != $required_extension) {
+ $filename .= $required_extension;
+ }
$mime_type = $export_list[$type]['mime_type'];
// If dump is going to be compressed, set correct mime_type and add
@@ -282,7 +300,7 @@ if ($asfile) {
if ($save_on_server) {
$save_filename = PMA_userDir($cfg['SaveDir']) . preg_replace('@[/\\\\]@', '_', $filename);
unset($message);
- if (file_exists($save_filename) && empty($onserverover)) {
+ if (file_exists($save_filename) && ((!$quick_export && empty($onserverover)) || ($quick_export && $_REQUEST['quick_export_onserverover'] != 'saveitover'))) {
$message = PMA_Message::error(__('File %s already exists on server, change filename or check overwrite option.'));
$message->addParam($save_filename);
} else {
@@ -360,6 +378,32 @@ if (!$save_on_server) {
unset($backup_cfgServer);
echo "\n" . '<div align="' . $cell_align_left . '">' . "\n";
//echo ' <pre>' . "\n";
+
+ /**
+ * Displays a back button with all the $_REQUEST data in the URL (store in a variable to also display after the textarea)
+ */
+ $back_button = '<p>[ <a href="';
+ if ($export_type == 'server') {
+ $back_button .= 'server_export.php?' . PMA_generate_common_url();
+ } elseif ($export_type == 'database') {
+ $back_button .= 'db_export.php?' . PMA_generate_common_url($db);
+ } else {
+ $back_button .= 'tbl_export.php?' . PMA_generate_common_url($db, $table);
+ }
+
+ // Convert the multiple select elements from an array to a string
+ if($export_type == 'server' && isset($_REQUEST['db_select'])) {
+ $_REQUEST['db_select'] = implode(",", $_REQUEST['db_select']);
+ } elseif($export_type == 'database' && isset($_REQUEST['table_select'])) {
+ $_REQUEST['table_select'] = implode(",", $_REQUEST['table_select']);
+ }
+
+ foreach($_REQUEST as $name => $value) {
+ $back_button .= '&' . urlencode($name) . '=' . urlencode($value);
+ }
+ $back_button .= '&repopulate=1">Back</a> ]</p>';
+
+ echo $back_button;
echo ' <form name="nofunction">' . "\n"
// remove auto-select for now: there is no way to select
// only a part of the text; anyway, it should obey
@@ -380,7 +424,7 @@ if (!PMA_exportHeader()) {
// Will we need relation & co. setup?
$do_relation = isset($GLOBALS[$what . '_relation']);
-$do_comments = isset($GLOBALS[$what . '_comments']);
+$do_comments = isset($GLOBALS[$what . '_include_comments']);
$do_mime = isset($GLOBALS[$what . '_mime']);
if ($do_relation || $do_comments || $do_mime) {
$cfgRelation = PMA_getRelationsParam();
@@ -420,7 +464,7 @@ if ($export_type == 'server') {
if ($is_view) {
$views[] = $table;
}
- if (isset($GLOBALS[$what . '_structure'])) {
+ if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
// for a view, export a stand-in definition of the table
// to resolve view dependencies
if (!PMA_exportStructure($current_db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, $is_view ? 'stand_in' : 'create_table', $export_type)) {
@@ -428,7 +472,7 @@ if ($export_type == 'server') {
}
}
// if this is a view or a merge table, don't export data
- if (isset($GLOBALS[$what . '_data']) && !($is_view || PMA_Table::isMerge($current_db, $table))) {
+ if (($GLOBALS[$what . '_structure_or_data'] == 'data' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') && !($is_view || PMA_Table::isMerge($current_db, $table))) {
$local_query = 'SELECT * FROM ' . PMA_backquote($current_db) . '.' . PMA_backquote($table);
if (!PMA_exportData($current_db, $table, $crlf, $err_url, $local_query)) {
break 3;
@@ -436,7 +480,7 @@ if ($export_type == 'server') {
}
// now export the triggers (needs to be done after the data because
// triggers can modify already imported tables)
- if (isset($GLOBALS[$what . '_structure'])) {
+ if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
if (!PMA_exportStructure($current_db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'triggers', $export_type)) {
break 2;
}
@@ -444,7 +488,7 @@ if ($export_type == 'server') {
}
foreach($views as $view) {
// no data export for a view
- if (isset($GLOBALS[$what . '_structure'])) {
+ if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
if (!PMA_exportStructure($current_db, $view, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'create_view', $export_type)) {
break 3;
}
@@ -469,7 +513,7 @@ if ($export_type == 'server') {
if ($is_view) {
$views[] = $table;
}
- if (isset($GLOBALS[$what . '_structure'])) {
+ if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
// for a view, export a stand-in definition of the table
// to resolve view dependencies
if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, $is_view ? 'stand_in' : 'create_table', $export_type)) {
@@ -477,7 +521,7 @@ if ($export_type == 'server') {
}
}
// if this is a view or a merge table, don't export data
- if (isset($GLOBALS[$what . '_data']) && !($is_view || PMA_Table::isMerge($db, $table))) {
+ if (($GLOBALS[$what . '_structure_or_data'] == 'data' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') && !($is_view || PMA_Table::isMerge($db, $table))) {
$local_query = 'SELECT * FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table);
if (!PMA_exportData($db, $table, $crlf, $err_url, $local_query)) {
break 2;
@@ -485,7 +529,7 @@ if ($export_type == 'server') {
}
// now export the triggers (needs to be done after the data because
// triggers can modify already imported tables)
- if (isset($GLOBALS[$what . '_structure'])) {
+ if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'triggers', $export_type)) {
break 2;
}
@@ -493,7 +537,7 @@ if ($export_type == 'server') {
}
foreach ($views as $view) {
// no data export for a view
- if (isset($GLOBALS[$what . '_structure'])) {
+ if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
if (!PMA_exportStructure($db, $view, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'create_view', $export_type)) {
break 2;
}
@@ -518,7 +562,7 @@ if ($export_type == 'server') {
}
$is_view = PMA_Table::isView($db, $table);
- if (isset($GLOBALS[$what . '_structure'])) {
+ if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, $is_view ? 'create_view' : 'create_table', $export_type)) {
break;
}
@@ -526,7 +570,7 @@ if ($export_type == 'server') {
// If this is an export of a single view, we have to export data;
// for example, a PDF report
// if it is a merge table, no data is exported
- if (isset($GLOBALS[$what . '_data']) && ! PMA_Table::isMerge($db, $table)) {
+ if (($GLOBALS[$what . '_structure_or_data'] == 'data' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') && ! PMA_Table::isMerge($db, $table)) {
if (!empty($sql_query)) {
// only preg_replace if needed
if (!empty($add_query)) {
@@ -544,7 +588,7 @@ if ($export_type == 'server') {
}
// now export the triggers (needs to be done after the data because
// triggers can modify already imported tables)
- if (isset($GLOBALS[$what . '_structure'])) {
+ if ($GLOBALS[$what . '_structure_or_data'] == 'structure' || $GLOBALS[$what . '_structure_or_data'] == 'structure_and_data') {
if (!PMA_exportStructure($db, $table, $crlf, $err_url, $do_relation, $do_comments, $do_mime, $do_dates, 'triggers', $export_type)) {
break 2;
}
@@ -640,9 +684,11 @@ else {
/**
* Close the html tags and add the footers in dump is displayed on screen
*/
- //echo ' </pre>' . "\n";
echo '</textarea>' . "\n"
. ' </form>' . "\n";
+ echo $back_button;
+
+ echo "\n";
echo '</div>' . "\n";
echo "\n";
?>