SimpleDB, Firebird, ClickHouse: Move to plugin

This commit is contained in:
Jakub Vrana 2021-02-08 19:56:15 +01:00
parent 4038144c38
commit 51abdcdab9
10 changed files with 35 additions and 11 deletions

View file

@ -80,11 +80,9 @@ include "../adminer/drivers/sqlite.inc.php";
include "../adminer/drivers/pgsql.inc.php"; include "../adminer/drivers/pgsql.inc.php";
include "../adminer/drivers/oracle.inc.php"; include "../adminer/drivers/oracle.inc.php";
include "../adminer/drivers/mssql.inc.php"; include "../adminer/drivers/mssql.inc.php";
include "../adminer/drivers/firebird.inc.php";
include "../adminer/drivers/simpledb.inc.php";
include "../adminer/drivers/mongo.inc.php"; include "../adminer/drivers/mongo.inc.php";
include "../adminer/drivers/elastic.inc.php"; include "../adminer/drivers/elastic.inc.php";
include "../adminer/drivers/clickhouse.inc.php"; include "./include/adminer.inc.php";
include "../adminer/drivers/mysql.inc.php"; // must be included as last driver include "../adminer/drivers/mysql.inc.php"; // must be included as last driver
$config = driver_config(); $config = driver_config();
@ -108,7 +106,6 @@ define("ME", preg_replace('~\?.*~', '', relative_uri()) . '?'
); );
include "../adminer/include/version.inc.php"; include "../adminer/include/version.inc.php";
include "./include/adminer.inc.php";
include "../adminer/include/design.inc.php"; include "../adminer/include/design.inc.php";
include "../adminer/include/xxtea.inc.php"; include "../adminer/include/xxtea.inc.php";
include "../adminer/include/auth.inc.php"; include "../adminer/include/auth.inc.php";

View file

@ -1,4 +1,15 @@
<?php <?php
$drivers = array();
/** Add a driver
* @param string
* @param string
* @return null
*/
function add_driver($id, $name) {
global $drivers;
$drivers[$id] = $name;
}
/*abstract*/ class Min_SQL { /*abstract*/ class Min_SQL {
var $_conn; var $_conn;

View file

@ -100,5 +100,3 @@ if (extension_loaded('pdo')) {
} }
} }
} }
$drivers = array();

View file

@ -8,6 +8,9 @@ function adminer_object() {
include_once $filename; include_once $filename;
} }
// enable extra drivers just by including them
//~ include "../plugins/drivers/simpledb.inc.php";
$plugins = array( $plugins = array(
// specify enabled plugins here // specify enabled plugins here
new AdminerDatabaseHide(array('information_schema')), new AdminerDatabaseHide(array('information_schema')),

View file

@ -9,6 +9,7 @@ PostgreSQL: Create PRIMARY KEY for auto increment columns
PostgreSQL: Avoid exporting empty sequence last value (bug #768) PostgreSQL: Avoid exporting empty sequence last value (bug #768)
PostgreSQL: Fix multi-parameter functions in default values (bug #736) PostgreSQL: Fix multi-parameter functions in default values (bug #736)
PostgreSQL PDO: Do not select NULL function for false values in edit PostgreSQL PDO: Do not select NULL function for false values in edit
SimpleDB, Firebird, ClickHouse: Move to plugin
Adminer 4.7.9 (released 2021-02-07): Adminer 4.7.9 (released 2021-02-07):
Fix XSS in browsers which don't encode URL parameters (bug #775, regression from 4.7.0) Fix XSS in browsers which don't encode URL parameters (bug #775, regression from 4.7.0)

View file

@ -41,7 +41,7 @@ function lang_ids($match) {
} }
function put_file($match) { function put_file($match) {
global $project, $VERSION; global $project, $VERSION, $driver;
if (basename($match[2]) == '$LANG.inc.php') { if (basename($match[2]) == '$LANG.inc.php') {
return $match[0]; // processed later return $match[0]; // processed later
} }
@ -61,6 +61,9 @@ header("Cache-Control: immutable");
echo "adminer/file.inc.php: Caching headers placeholder not found\n"; echo "adminer/file.inc.php: Caching headers placeholder not found\n";
} }
} }
if ($driver && dirname($match[2]) == "../adminer/drivers") {
$return = preg_replace('~^if \(isset\(\$_GET\["' . $driver . '"]\)\) \{(.*)^}~ms', '\1', $return);
}
if (basename($match[2]) != "lang.inc.php" || !$_SESSION["lang"]) { if (basename($match[2]) != "lang.inc.php" || !$_SESSION["lang"]) {
if (basename($match[2]) == "lang.inc.php") { if (basename($match[2]) == "lang.inc.php") {
$return = str_replace('function lang($idf, $number = null) {', 'function lang($idf, $number = null) { $return = str_replace('function lang($idf, $number = null) {', 'function lang($idf, $number = null) {

11
plugins/drivers/README Normal file
View file

@ -0,0 +1,11 @@
Enable drivers in this directory like this:
<?php
function adminer_object() {
include "./plugins/drivers/simpledb.inc.php"; // the driver is enabled just by including
return new Adminer; // or return AdminerPlugin if you want to use other plugins
}
// include original Adminer
include "./adminer.php";
?>

View file

@ -1,5 +1,5 @@
<?php <?php
$drivers["clickhouse"] = "ClickHouse (alpha)"; add_driver("clickhouse", "ClickHouse (alpha)");
if (isset($_GET["clickhouse"])) { if (isset($_GET["clickhouse"])) {
define("DRIVER", "clickhouse"); define("DRIVER", "clickhouse");

View file

@ -3,8 +3,8 @@
* @author Steve Krämer * @author Steve Krämer
*/ */
$drivers['firebird'] = 'Firebird (alpha)'; add_driver('firebird', 'Firebird (alpha)');
if (isset($_GET["firebird"])) { if (isset($_GET["firebird"])) {
define("DRIVER", "firebird"); define("DRIVER", "firebird");

View file

@ -1,5 +1,5 @@
<?php <?php
$drivers["simpledb"] = "SimpleDB"; add_driver("simpledb", "SimpleDB");
if (isset($_GET["simpledb"])) { if (isset($_GET["simpledb"])) {
define("DRIVER", "simpledb"); define("DRIVER", "simpledb");