瀏覽代碼

Add ability to override file name (path) when loading dump from webserver

Andrea Giacobino 7 年之前
父節點
當前提交
5cc831c1
共有 4 個文件被更改,包括 20 次插入4 次删除
  1. 7 0
      adminer/include/adminer.inc.php
  2. 5 4
      adminer/sql.inc.php
  3. 3 0
      editor/include/adminer.inc.php
  4. 5 0
      plugins/plugin.php

+ 7 - 0
adminer/include/adminer.inc.php

@@ -850,6 +850,13 @@ class Adminer {
 		return $ext;
 	}
 
+	/** Set the path of the file for webserver load
+	* @return string path of the sql dump file
+	*/
+	function importServerPath() {
+		return "adminer.sql";
+	}
+
 	/** Print homepage
 	* @return bool whether to print default homepage
 	*/

+ 5 - 4
adminer/sql.inc.php

@@ -21,9 +21,10 @@ if (!$error && $_POST) {
 	if (!isset($_GET["import"])) {
 		$query = $_POST["query"];
 	} elseif ($_POST["webfile"]) {
-		$fp = @fopen((file_exists("adminer.sql")
-			? "adminer.sql"
-			: "compress.zlib://adminer.sql.gz"
+		$sql_file_path = $adminer->importServerPath();
+		$fp = @fopen((file_exists($sql_file_path)
+			? $sql_file_path
+			: "compress.zlib://{$sql_file_path}.gz"
 		), "rb");
 		$query = ($fp ? fread($fp, 1e6) : false);
 	} else {
@@ -220,7 +221,7 @@ if (!isset($_GET["import"])) {
 	);
 	echo "</div></fieldset>\n";
 	echo "<fieldset><legend>" . lang('From server') . "</legend><div>";
-	echo lang('Webserver file %s', "<code>adminer.sql" . (extension_loaded("zlib") ? "[.gz]" : "") . "</code>");
+	echo lang('Webserver file %s', "<code>" . h($adminer->importServerPath()) . (extension_loaded("zlib") ? "[.gz]" : "") . "</code>");
 	echo ' <input type="submit" name="webfile" value="' . lang('Run file') . '">';
 	echo "</div></fieldset>\n";
 	echo "<p>";

+ 3 - 0
editor/include/adminer.inc.php

@@ -549,6 +549,9 @@ qsl('div').onclick = whisperClick;", "")
 		return $ext;
 	}
 
+	function importServerPath() {
+	}
+
 	function homepage() {
 		return true;
 	}

+ 5 - 0
plugins/plugin.php

@@ -347,6 +347,11 @@ class AdminerPlugin extends Adminer {
 		return $this->_applyPlugin(__FUNCTION__, $args);
 	}
 
+	function importServerPath() {
+		$args = func_get_args();
+		return $this->_applyPlugin(__FUNCTION__, $args);
+	}
+
 	function homepage() {
 		$args = func_get_args();
 		return $this->_applyPlugin(__FUNCTION__, $args);