]> git.joonet.de Git - adminer.git/commitdiff
Extensible list of databases
authorJakub Vrana <jakub@vrana.cz>
Fri, 24 Feb 2012 06:54:48 +0000 (22:54 -0800)
committerJakub Vrana <jakub@vrana.cz>
Fri, 24 Feb 2012 06:58:41 +0000 (22:58 -0800)
adminer/db.inc.php
adminer/dump.inc.php
adminer/include/adminer.inc.php
adminer/include/connect.inc.php
adminer/script.inc.php
changes.txt
editor/include/adminer.inc.php
plugins/plugin.php

index e618bb90391d1d9c79169d7401fb6fcb302d6a2b..24c587f4a78aaa1d714c8b4c03a12acb2eda1347 100644 (file)
@@ -92,7 +92,7 @@ if ($adminer->homepage()) {
                        echo "<script type='text/javascript'>tableCheck();</script>\n";
                        if (!information_schema(DB)) {
                                echo "<p>" . ($jush == "sql" ? "<input type='submit' value='" . lang('Analyze') . "'> <input type='submit' name='optimize' value='" . lang('Optimize') . "'> <input type='submit' name='check' value='" . lang('Check') . "'> <input type='submit' name='repair' value='" . lang('Repair') . "'> " : "") . "<input type='submit' name='truncate' value='" . lang('Truncate') . "'" . confirm("formChecked(this, /tables/)") . "> <input type='submit' name='drop' value='" . lang('Drop') . "'" . confirm("formChecked(this, /tables|views/)", 1) . ">\n"; // 1 - eventStop
-                               $databases = (support("scheme") ? schemas() : get_databases());
+                               $databases = (support("scheme") ? schemas() : $adminer->databases());
                                if (count($databases) != 1 && $jush != "sqlite") {
                                        $db = (isset($_POST["target"]) ? $_POST["target"] : (support("scheme") ? $_GET["ns"] : DB));
                                        echo "<p>" . lang('Move to other database') . ": ";
index c10b84b55f9751651188847c686840395242a823..749e83fec4c78a978db9a487a87beca37856be95 100644 (file)
@@ -208,7 +208,7 @@ if (DB != "") {
        echo $views;
 } else {
        echo "<thead><tr><th style='text-align: left;'><label><input type='checkbox' id='check-databases'" . ($TABLE == "" ? " checked" : "") . " onclick='formCheck(this, /^databases\\[/);'>" . lang('Database') . "</label></thead>\n";
-       $databases = get_databases();
+       $databases = $adminer->databases();
        if ($databases) {
                foreach ($databases as $db) {
                        if (!information_schema($db)) {
index 578868807d1f84b474956caced4e97e4dbafe3f5..97b81e0b9ad535cc3d5ca5d7cad3ba69ad57562c 100644 (file)
@@ -34,6 +34,14 @@ class Adminer {
                return DB;
        }
        
+       /** Get cached list of databases
+       * @param bool
+       * @return array
+       */
+       function databases($flush = true) {
+               return get_databases($flush);
+       }
+       
        /** Headers to send before HTML output
        * @return bool true to send security headers
        */
@@ -753,7 +761,7 @@ DROP PROCEDURE adminer_alter;
                                }
                        }
                } else {
-                       $databases = get_databases();
+                       $databases = $this->databases();
                        ?>
 <form action="" method="post">
 <p class="logout">
index fc11ecf217d01782485783175dd2d100bbe4dcd0..087df2e188aa6248f5f70af796297c7bf7f15aa9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 function connect_error() {
-       global $connection, $token, $error, $drivers;
+       global $adminer, $connection, $token, $error, $drivers;
        $databases = array();
        if (DB != "") {
                page_header(lang('Database') . ": " . h(DB), lang('Invalid database.'), true);
@@ -26,7 +26,7 @@ function connect_error() {
                if ($_GET["refresh"]) {
                        set_session("dbs", null);
                }
-               $databases = get_databases();
+               $databases = $adminer->databases();
                if ($databases) {
                        $scheme = support("scheme");
                        $collations = collations();
index 24747ea7d7c0d05d41ddd6c52a27a446754dcff9..b75370af3a6bbb64423e626e2844a9a0c8fba6e8 100644 (file)
@@ -28,7 +28,7 @@ if ($_GET["script"] == "db") {
        }
        json_row("");
 } else { // connect
-       foreach (count_tables(get_databases()) as $db => $val) {
+       foreach (count_tables($adminer->databases()) as $db => $val) {
                json_row("tables-" . js_escape($db), $val);
        }
        json_row("");
index eb575bc026b9e17af36c3ec3119fb0b1ead001b6..8c61fb38869cf99bbb4d9b7b2bcb6c3853c8185d 100644 (file)
@@ -9,6 +9,7 @@ Esc to cancel AJAX request
 Move AJAX loading indicator to the right
 Don't quote bit type in export
 Ability to disable export (customization)
+Extensible list of databases (customization)
 MySQL: set autocommit after connect
 PostgreSQL: fix alter foreign key
 PostgreSQL, SQLite: don't use LIKE for numbers (bug #3420408)
index 82aa425c6700aa854ee958d6cbc08baddae14390..4ad048f650c4a758a4a2758faabea5c3bb778132 100644 (file)
@@ -19,13 +19,17 @@ class Adminer {
        
        function database() {
                global $connection;
-               $databases = get_databases(false);
+               $databases = $this->databases(false);
                return (!$databases
                        ? $connection->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1)") // username without the database list
                        : $databases[(information_schema($databases[0]) ? 1 : 0)] // first available database
                );
        }
        
+       function databases($flush = true) {
+               return get_databases($flush);
+       }
+       
        function headers() {
                return true;
        }
index 1e3d3188e4e397bfb27e182d71d540f9ceefbf45..a1736e9451eb7e2271106c11b8892bfc3ed5a79c 100644 (file)
@@ -111,6 +111,11 @@ class AdminerPlugin extends Adminer {
                return $this->_applyPlugin(__FUNCTION__, $args);
        }
 
+       function databases() {
+               $args = func_get_args();
+               return $this->_applyPlugin(__FUNCTION__, $args);
+       }
+
        function headers() {
                $args = func_get_args();
                return $this->_applyPlugin(__FUNCTION__, $args);