]> git.joonet.de Git - adminer.git/commitdiff
Centralize dump_headers
authorJakub Vrana <jakub@vrana.cz>
Thu, 17 Feb 2011 10:43:21 +0000 (11:43 +0100)
committerJakub Vrana <jakub@vrana.cz>
Thu, 17 Feb 2011 10:43:21 +0000 (11:43 +0100)
adminer/dump.inc.php
adminer/include/adminer.inc.php
adminer/include/functions.inc.php
adminer/select.inc.php
adminer/sql.inc.php
editor/include/adminer.inc.php

index 61f2e6fc4b6ac4ee48bcc92450b32c4b7f4abb11..56f05f8977470cf3a4197e0c8112ce8e4c755b0e 100644 (file)
@@ -7,7 +7,7 @@ if ($_POST) {
                $cookie .= "&$key=" . urlencode($_POST[$key]);
        }
        cookie("adminer_export", substr($cookie, 1));
-       $ext = $adminer->dumpHeaders(($TABLE != "" ? $TABLE : DB), (DB == "" || count((array) $_POST["tables"] + (array) $_POST["data"]) > 1));
+       $ext = dump_headers(($TABLE != "" ? $TABLE : DB), (DB == "" || count((array) $_POST["tables"] + (array) $_POST["data"]) > 1));
        $is_sql = ($_POST["format"] == "sql");
        if ($is_sql) {
                echo "-- Adminer $VERSION " . $drivers[DRIVER] . " dump
index de9915606361c285762717a0ee07bfbd7f2c6445..cd66cb3a6deb5946e3d794a70bb4d468983b71cc 100644 (file)
@@ -670,7 +670,6 @@ DROP PROCEDURE adminer_alter;
        * @return string extension
        */
        function dumpHeaders($identifier, $multi_table = false) {
-               $filename = ($identifier != "" ? friendly_url($identifier) : "adminer");
                $output = $_POST["output"];
                $ext = ($_POST["format"] == "sql" ? "sql" : ($multi_table ? "tar" : "csv")); // multiple CSV packed to TAR
                header("Content-Type: " .
@@ -679,14 +678,10 @@ DROP PROCEDURE adminer_alter;
                        ($ext == "tar" ? "application/x-tar" :
                        ($ext == "sql" || $output != "file" ? "text/plain" : "text/csv") . "; charset=utf-8"
                ))));
-               if ($output != "text") {
-                       header("Content-Disposition: attachment; filename=$filename.$ext" . ($output != "file" && !ereg('[^0-9a-z]', $output) ? ".$output" : ""));
-               }
-               session_write_close();
-               if ($_POST["output"] == "bz2") {
+               if ($output == "bz2") {
                        ob_start('bzcompress', 1e6);
                }
-               if ($_POST["output"] == "gz") {
+               if ($output == "gz") {
                        ob_start('gzencode', 1e6);
                }
                return $ext;
index f82decc87f30f5965646ea4852dee72d2aa1f25d..e1c2ffe1a96e02cba546c5c9960c0d69128a59de 100644 (file)
@@ -754,6 +754,22 @@ function search_tables() {
        echo ($found ? "</ul>" : "<p class='message'>" . lang('No tables.')) . "\n";
 }
 
+/** Send headers for export
+* @param string
+* @param bool
+* @return string extension
+*/
+function dump_headers($identifier, $multi_table = false) {
+       global $adminer;
+       $return = $adminer->dumpHeaders($identifier, $multi_table);
+       $output = $_POST["output"];
+       if ($output != "text") {
+               header("Content-Disposition: attachment; filename=" . ($identifier != "" ? friendly_url($identifier) : "dump") . ".$return" . ($output != "file" && !ereg('[^0-9a-z]', $output) ? ".$output" : ""));
+       }
+       session_write_close();
+       return $return;
+}
+
 /** Print CSV row
 * @param array
 * @return null
index 94850652b3a9ea68eda51aa79f3979564277ed98..4d2f9b4772ca2aca9b74b5c55349af45efa5c573 100644 (file)
@@ -54,7 +54,7 @@ if ($_POST && !$error) {
                }
        }
        if ($_POST["export"]) {
-               $adminer->dumpHeaders($TABLE);
+               dump_headers($TABLE);
                $adminer->dumpTable($TABLE, "");
                if (!is_array($_POST["check"]) || $unselected === array()) {
                        $where2 = $where;
index 48bca21ea1a2971400871b99b599cd3f8a13985d..553f764ffc358945cbc53b08d44b10acfd61d475 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 if (!$error && $_POST["export"]) {
-       $adminer->dumpHeaders("sql");
+       dump_headers("sql");
        $adminer->dumpTable("", "");
        $adminer->dumpData("", "table", $_POST["query"]);
        exit;
index fddcc6254f920d797ab15c2803ce53181236fb9c..066eb444cf5a6ae1b7939e3a65bbbd634a6c513d 100644 (file)
@@ -463,12 +463,9 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
                }
        }
        
-       function dumpHeaders($identifier) {
-               $filename = ($identifier != "" ? friendly_url($identifier) : "dump");
+       function dumpHeaders($identifier, $multi_table = false) {
                $ext = "csv";
                header("Content-Type: text/csv; charset=utf-8");
-               header("Content-Disposition: attachment; filename=$filename.$ext");
-               session_write_close();
                return $ext;
        }