Add designs.php

This commit is contained in:
Jakub Vrana 2018-01-23 14:36:32 +01:00
parent c3d83d5412
commit 75413c56d2
2 changed files with 57 additions and 0 deletions

14
adminer/designs.php Normal file
View file

@ -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";

43
plugins/designs.php Normal file
View file

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