Skip to content
This repository was archived by the owner on Mar 10, 2025. It is now read-only.

Commit 7c5ba80

Browse files
committed
Fix displaying defined server name.
Escaping variables in JS.
1 parent 2207905 commit 7c5ba80

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

AdminerLoginServers.php

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,23 @@ private function parseServers(array $servers, array &$out, array &$loginParams)
115115
$out[$key] = [];
116116
$this->parseServers($value, $out[$key], $loginParams);
117117
} else {
118+
if (is_string($key)) {
119+
$server = $key;
120+
$name = $value;
121+
} else {
122+
$server = $value;
123+
$name = null;
124+
}
125+
118126
$params = [];
119-
$this->parseServer(is_string($key) ? $key : $value, $params);
127+
$this->parseServer($server, $params);
120128

121129
$serverKey = $this->getServerKey($params["driver"], $params["server"], $params["database"]);
130+
if (!$name) {
131+
$name = $this->getServerName($params);
132+
}
122133

123-
$out[$serverKey] = "(" . $this->formatDriver($params["driver"]) . ") " .
124-
$params["server"] .
125-
($params["database"] ? " » " . $params["database"] : "");
134+
$out[$serverKey] = "(" . $this->formatDriver($params["driver"]) . ") " . $name;
126135

127136
$loginParams[$serverKey] = $params;
128137
}
@@ -177,6 +186,25 @@ private function getServerKey($driver, $server, $database)
177186
return $this->isSQLite($driver) ? $server . "#" . $database : $server;
178187
}
179188

189+
/**
190+
* @param array $params
191+
*
192+
* @return string
193+
*/
194+
private function getServerName(array $params)
195+
{
196+
$name = $params["server"];
197+
198+
if ($params["server"] && $params["database"]) {
199+
$name .= " » ";
200+
}
201+
if ($params["database"]) {
202+
$name .= $params["database"];
203+
}
204+
205+
return $name;
206+
}
207+
180208
/**
181209
* @param string $driver
182210
* @return bool
@@ -259,9 +287,9 @@ public function loginForm()
259287
$count = count($this->loginParams);
260288
$i = 1;
261289
foreach ($this->loginParams as $serverKey => $params) {
262-
echo "'$serverKey': { 'driver': '" . $params["driver"] .
263-
"', 'server': '" . $params["server"] .
264-
"', 'database': '" . $params["database"] . "' }";
290+
echo json_encode($serverKey) . ": { 'driver': " . json_encode($params["driver"]) .
291+
", 'server': " . json_encode($params["server"]) .
292+
", 'database': " . json_encode($params["database"]) . " }";
265293

266294
if ($i++ < $count) {
267295
echo ",";

0 commit comments

Comments
 (0)