]> git.joonet.de Git - adminer.git/commitdiff
Plugin for including date in export filename
authorJakub Vrana <jakub@vrana.cz>
Fri, 29 Jun 2012 21:41:47 +0000 (14:41 -0700)
committerJakub Vrana <jakub@vrana.cz>
Fri, 29 Jun 2012 21:41:47 +0000 (14:41 -0700)
adminer/include/adminer.inc.php
adminer/include/functions.inc.php
editor/include/adminer.inc.php
plugins/dump-date.php [new file with mode: 0644]
plugins/dump-xml.php
plugins/plugin.php

index db65137016864c6bf51880cf6c877acb60a8118d..76103f8937468024809efbca3a96674f1fe24285 100644 (file)
@@ -716,6 +716,14 @@ DROP PROCEDURE adminer_alter;
                }
        }
        
+       /** Set export filename
+       * @param string
+       * @return string filename without extension
+       */
+       function dumpFilename($identifier) {
+               return friendly_url($identifier != "" ? $identifier : (SERVER != "" ? SERVER : "localhost"));
+       }
+       
        /** Send headers for export
        * @param string
        * @param bool
@@ -730,9 +738,6 @@ 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=" . friendly_url($identifier != "" ? $identifier : (SERVER != "" ? SERVER : "localhost")) . ".$ext" . ($output != "file" && !ereg('[^0-9a-z]', $output) ? ".$output" : ""));
-               }
                if ($output == "bz2") {
                        ob_start('bzcompress', 1e6);
                }
index 47651339308bd7e45731e0b7adf167e7ae7e3125..9e47557d8649e482c125a20399dceaa29d3ee5a2 100644 (file)
@@ -803,6 +803,10 @@ function search_tables() {
 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=" . $adminer->dumpFilename($identifier) . ".$return" . ($output != "file" && !ereg('[^0-9a-z]', $output) ? ".$output" : ""));
+       }
        session_write_close();
        return $return;
 }
index f99e45f2efc261f1914c23b9b4607053f6435445..d52103314a4ce435e0b5127f419b439b49194006 100644 (file)
@@ -505,10 +505,13 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
                }
        }
        
+       function dumpFilename($identifier) {
+               return friendly_url($identifier);
+       }
+       
        function dumpHeaders($identifier, $multi_table = false) {
                $ext = "csv";
                header("Content-Type: text/csv; charset=utf-8");
-               header("Content-Disposition: attachment; filename=" . friendly_url($identifier) . ".$ext");
                return $ext;
        }
        
diff --git a/plugins/dump-date.php b/plugins/dump-date.php
new file mode 100644 (file)
index 0000000..9f2857a
--- /dev/null
@@ -0,0 +1,15 @@
+<?php
+
+/** Include current date and time in export filename
+* @author Jakub Vrana, http://www.vrana.cz/
+* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
+* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
+*/
+class AdminerDumpDate {
+       
+       function dumpFilename($identifier) {
+               $connection = connection();
+               return friendly_url(($identifier != "" ? $identifier : (SERVER != "" ? SERVER : "localhost")) . "-" . $connection->result("SELECT NOW()"));
+       }
+
+}
index af39363f788ff71f4c3dc5605ba9205e5467ecf5..4e469920edc286660c427f0e51c68dbc9eab3a43 100644 (file)
@@ -6,6 +6,8 @@
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
 */
 class AdminerDumpXml {
+       /** @access protected */
+       var $database = false;
        
        function dumpFormat() {
                return array('xml' => 'XML');
@@ -22,10 +24,9 @@ class AdminerDumpXml {
        }
        
        function dumpData($table, $style, $query) {
-               static $database = false;
                if ($_POST["format"] == "xml") {
-                       if (!$database) {
-                               $database = true;
+                       if (!$this->database) {
+                               $this->database = true;
                                echo "<database name='" . h(DB) . "'>\n";
                                register_shutdown_function(array($this, '_database'));
                        }
index 31f8e63a8a0e043d178f924d25be276a96d24fa3..1d6020597de1ab01fbc4f9a9258bf5585aa6ae36 100644 (file)
@@ -291,6 +291,11 @@ class AdminerPlugin extends Adminer {
                return $this->_applyPlugin(__FUNCTION__, $args);
        }
 
+       function dumpFilename() {
+               $args = func_get_args();
+               return $this->_applyPlugin(__FUNCTION__, $args);
+       }
+
        function dumpHeaders() {
                $args = func_get_args();
                return $this->_applyPlugin(__FUNCTION__, $args);