diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php
index 325b3484..a234cf3c 100644
--- a/adminer/include/adminer.inc.php
+++ b/adminer/include/adminer.inc.php
@@ -39,6 +39,14 @@ class Adminer {
function bruteForceKey() {
return $_SERVER["REMOTE_ADDR"];
}
+
+ /** Get server name displayed in breadcrumbs
+ * @param string
+ * @return string HTML code or null
+ */
+ function serverName($server) {
+ return h($server);
+ }
/** Identifier of selected database
* @return string
@@ -922,7 +930,7 @@ class Adminer {
}
$dbs = $_SESSION["db"][$vendor][$server][$username];
foreach (($dbs ? array_keys($dbs) : array("")) as $db) {
- echo "($drivers[$vendor]) " . h($username . ($server != "" ? "@$server" : "") . ($db != "" ? " - $db" : "")) . "
\n";
+ echo "($drivers[$vendor]) " . h($username . ($server != "" ? "@" . $this->serverName($server) : "") . ($db != "" ? " - $db" : "")) . "
\n";
}
}
}
diff --git a/adminer/include/design.inc.php b/adminer/include/design.inc.php
index ac09ba78..544fb5fa 100644
--- a/adminer/include/design.inc.php
+++ b/adminer/include/design.inc.php
@@ -70,7 +70,8 @@ var thousandsSeparator = '';
$link = substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1);
echo '
' . $drivers[DRIVER] . ' » ';
$link = substr(preg_replace('~\b(db|ns)=[^&]*&~', '', ME), 0, -1);
- $server = (SERVER != "" ? h(SERVER) : lang('Server'));
+ $server = $adminer->serverName(SERVER);
+ $server = ($server != "" ? $server : lang('Server'));
if ($breadcrumb === false) {
echo "$server\n";
} else {
diff --git a/changes.txt b/changes.txt
index 3b6eb249..bb20f0e3 100644
--- a/changes.txt
+++ b/changes.txt
@@ -12,6 +12,7 @@ PostgreSQL: Cast to string when searching using LIKE (bug #325)
PostgreSQL: Fix condition for selecting no rows
PostgreSQL: Support TRUNCATE+INSERT export
Customization: Support connecting to MySQL via SSL
+Customization: Allow specifying server name displayed in breadcrumbs
Adminer 4.6.0 (released 2018-02-05):
Fix counting selected rows after going back to select page
diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php
index e96c879a..fe8ab6be 100644
--- a/editor/include/adminer.inc.php
+++ b/editor/include/adminer.inc.php
@@ -23,6 +23,9 @@ class Adminer {
function bruteForceKey() {
return $_SERVER["REMOTE_ADDR"];
}
+
+ function serverName($server) {
+ }
function database() {
global $connection;
diff --git a/plugins/login-servers.php b/plugins/login-servers.php
index 053c93db..30bc5107 100644
--- a/plugins/login-servers.php
+++ b/plugins/login-servers.php
@@ -19,6 +19,10 @@ class AdminerLoginServers {
$this->driver = $driver;
}
+ function serverName($server) {
+ return h($this->servers[$server]);
+ }
+
function login($login, $password) {
// check if server is allowed
foreach ($this->servers as $key => $val) {
diff --git a/plugins/plugin.php b/plugins/plugin.php
index de34a014..c910edb6 100644
--- a/plugins/plugin.php
+++ b/plugins/plugin.php
@@ -107,6 +107,11 @@ class AdminerPlugin extends Adminer {
return $this->_applyPlugin(__FUNCTION__, $args);
}
+ function serverName($server) {
+ $args = func_get_args();
+ return $this->_applyPlugin(__FUNCTION__, $args);
+ }
+
function database() {
$args = func_get_args();
return $this->_applyPlugin(__FUNCTION__, $args);