]> git.joonet.de Git - adminer.git/commitdiff
Add designs.php
authorJakub Vrana <jakub@vrana.cz>
Tue, 23 Jan 2018 13:36:32 +0000 (14:36 +0100)
committerJakub Vrana <jakub@vrana.cz>
Tue, 23 Jan 2018 13:36:32 +0000 (14:36 +0100)
adminer/designs.php [new file with mode: 0644]
plugins/designs.php [new file with mode: 0644]

diff --git a/adminer/designs.php b/adminer/designs.php
new file mode 100644 (file)
index 0000000..11f603f
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+function adminer_object() {
+       include_once "../plugins/plugin.php";
+       include_once "../plugins/designs.php";
+       $designs = array();
+       foreach (glob("../designs/*", GLOB_ONLYDIR) as $filename) {
+               $designs["$filename/adminer.css"] = basename($filename);
+       }
+       return new AdminerPlugin(array(
+               new AdminerDesigns($designs),
+       ));
+}
+
+include "./index.php";
diff --git a/plugins/designs.php b/plugins/designs.php
new file mode 100644 (file)
index 0000000..eeca3be
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+
+/** Allow switching designs
+* @link https://www.adminer.org/plugins/#use
+* @author Jakub Vrana, https://www.vrana.cz/
+* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
+* @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
+*/
+class AdminerDesigns {
+       /** @access protected */
+       var $designs;
+       
+       /**
+       * @param array URL in key, name in value
+       */
+       function __construct($designs) {
+               $this->designs = $designs;
+       }
+       
+       function headers() {
+               if (isset($_POST["design"]) && verify_token()) {
+                       restart_session();
+                       $_SESSION["design"] = $_POST["design"];
+                       redirect($_SERVER["REQUEST_URI"]);
+               }
+       }
+       
+       function css() {
+               $return = array();
+               if (array_key_exists($_SESSION["design"], $this->designs)) {
+                       $return[] = $_SESSION["design"];
+               }
+               return $return;
+       }
+       
+       function navigation($missing) {
+               echo "<form action='' method='post' style='position: fixed; bottom: .5em; right: .5em;'>";
+               echo html_select("design", array("" => "(design)") + $this->designs, $_SESSION["design"], "this.form.submit();");
+               echo '<input type="hidden" name="token" value="' . get_token() . '">';
+               echo "</form>\n";
+       }
+
+}