Plugin for including date in export filename

This commit is contained in:
Jakub Vrana 2012-06-29 14:41:47 -07:00
parent f158d5e392
commit b78b0cd109
6 changed files with 40 additions and 7 deletions

View 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);
}

View 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;
}

View 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;
}

15
plugins/dump-date.php Normal file
View file

@ -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()"));
}
}

View 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'));
}

View 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);