Version Description
- Update Adminer to v. 4.3.0
Download this release
Release Info
Developer | arisoft |
Plugin | ARI Adminer – WordPress Database Manager |
Version | 1.0.8 |
Comparing to | |
See all releases |
Code changes from version 1.0.7 to 1.0.8
- adminer/adminer/adminer/call.inc.php +1 -1
- adminer/adminer/adminer/create.inc.php +0 -1
- adminer/adminer/adminer/db.inc.php +6 -7
- adminer/adminer/adminer/drivers/elastic.inc.php +5 -4
- adminer/adminer/adminer/drivers/mssql.inc.php +20 -7
- adminer/adminer/adminer/drivers/mysql.inc.php +24 -7
- adminer/adminer/adminer/drivers/pgsql.inc.php +127 -15
- adminer/adminer/adminer/file.inc.php +2 -1
- adminer/adminer/adminer/foreign.inc.php +11 -9
- adminer/adminer/adminer/include/adminer.inc.php +66 -10
- adminer/adminer/adminer/include/auth.inc.php +1 -2
- adminer/adminer/adminer/include/connect.inc.php +6 -4
- adminer/adminer/adminer/include/editing.inc.php +20 -21
- adminer/adminer/adminer/include/functions.inc.php +29 -26
- adminer/adminer/adminer/include/pdo.inc.php +2 -2
- adminer/adminer/adminer/include/version.inc.php +1 -1
- adminer/adminer/adminer/index.php +3 -1
- adminer/adminer/adminer/indexes.inc.php +10 -7
- adminer/adminer/adminer/lang/ar.inc.php +0 -1
- adminer/adminer/adminer/lang/bg.inc.php +1 -3
- adminer/adminer/adminer/lang/bn.inc.php +0 -1
- adminer/adminer/adminer/lang/bs.inc.php +0 -1
- adminer/adminer/adminer/lang/ca.inc.php +0 -1
- adminer/adminer/adminer/lang/cs.inc.php +10 -4
- adminer/adminer/adminer/lang/da.inc.php +0 -1
- adminer/adminer/adminer/lang/de.inc.php +0 -1
- adminer/adminer/adminer/lang/el.inc.php +1 -3
- adminer/adminer/adminer/lang/es.inc.php +0 -1
- adminer/adminer/adminer/lang/et.inc.php +0 -1
- adminer/adminer/adminer/lang/fa.inc.php +1 -3
- adminer/adminer/adminer/lang/fi.inc.php +1 -3
- adminer/adminer/adminer/lang/fr.inc.php +1 -3
- adminer/adminer/adminer/lang/gl.inc.php +1 -3
- adminer/adminer/adminer/lang/hu.inc.php +0 -1
- adminer/adminer/adminer/lang/id.inc.php +49 -50
- adminer/adminer/adminer/lang/it.inc.php +0 -1
- adminer/adminer/adminer/lang/ja.inc.php +0 -1
- adminer/adminer/adminer/lang/ko.inc.php +0 -1
- adminer/adminer/adminer/lang/lt.inc.php +0 -1
- adminer/adminer/adminer/lang/nl.inc.php +1 -2
- adminer/adminer/adminer/lang/no.inc.php +0 -1
- adminer/adminer/adminer/lang/pl.inc.php +1 -3
- adminer/adminer/adminer/lang/pt-br.inc.php +0 -1
- adminer/adminer/adminer/lang/pt.inc.php +0 -1
- adminer/adminer/adminer/lang/ro.inc.php +0 -1
- adminer/adminer/adminer/lang/ru.inc.php +0 -1
- adminer/adminer/adminer/lang/sk.inc.php +0 -1
- adminer/adminer/adminer/lang/sl.inc.php +0 -1
- adminer/adminer/adminer/lang/sr.inc.php +0 -1
- adminer/adminer/adminer/lang/ta.inc.php +0 -1
- adminer/adminer/adminer/lang/th.inc.php +0 -1
- adminer/adminer/adminer/lang/tr.inc.php +0 -1
- adminer/adminer/adminer/lang/uk.inc.php +0 -1
- adminer/adminer/adminer/lang/vi.inc.php +0 -1
- adminer/adminer/adminer/lang/xx.inc.php +6 -4
- adminer/adminer/adminer/lang/zh-tw.inc.php +0 -1
- adminer/adminer/adminer/lang/zh.inc.php +0 -1
- adminer/adminer/adminer/privileges.inc.php +2 -2
- adminer/adminer/adminer/replication.inc.php +30 -0
- adminer/adminer/adminer/select.inc.php +5 -2
- adminer/adminer/adminer/sql.inc.php +1 -1
- adminer/adminer/adminer/sqlite.php +8 -0
- adminer/adminer/adminer/static/default.css +7 -1
- adminer/adminer/adminer/static/editing.js +16 -0
- adminer/adminer/adminer/static/functions.js +16 -5
- adminer/adminer/adminer/table.inc.php +3 -26
- adminer/adminer/adminer/view.inc.php +10 -11
- adminer/adminer/editor/db.inc.php +1 -1
- adminer/adminer/editor/index.php +1 -1
- adminer/adminer/plugins/database-hide.php +1 -1
- adminer/adminer/plugins/dump-alter.php +1 -1
- adminer/adminer/plugins/dump-bz2.php +1 -1
- adminer/adminer/plugins/dump-date.php +1 -1
- adminer/adminer/plugins/dump-json.php +1 -1
- adminer/adminer/plugins/dump-xml.php +1 -1
- adminer/adminer/plugins/dump-zip.php +1 -1
- adminer/adminer/plugins/edit-foreign.php +6 -2
- adminer/adminer/plugins/enum-option.php +1 -1
- adminer/adminer/plugins/file-upload.php +1 -1
- adminer/adminer/plugins/foreign-system.php +1 -1
- adminer/adminer/plugins/frames.php +1 -1
- adminer/adminer/plugins/json-column.php +1 -1
- adminer/adminer/plugins/plugin.php +16 -1
- adminer/adminer/plugins/slugify.php +1 -1
- adminer/adminer/plugins/tables-filter.php +51 -17
- adminer/adminer/plugins/translation.php +1 -1
- ari-adminer.php +1 -1
- includes/defines.php +1 -1
- languages/ari-adminer.pot +37 -24
- readme.txt +8 -2
adminer/adminer/adminer/call.inc.php
CHANGED
@@ -29,7 +29,7 @@ if (!$error && $_POST) {
|
|
29 |
$call[] = (isset($out[$key]) ? "@" . idf_escape($field["field"]) : $val);
|
30 |
}
|
31 |
|
32 |
-
$query = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " .
|
33 |
echo "<p><code class='jush-$jush'>" . h($query) . "</code> <a href='" . h(ME) . "sql=" . urlencode($query) . "'>" . lang('Edit') . "</a>\n";
|
34 |
|
35 |
if (!$connection->multi_query($query)) {
|
29 |
$call[] = (isset($out[$key]) ? "@" . idf_escape($field["field"]) : $val);
|
30 |
}
|
31 |
|
32 |
+
$query = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . table($PROCEDURE) . "(" . implode(", ", $call) . ")";
|
33 |
echo "<p><code class='jush-$jush'>" . h($query) . "</code> <a href='" . h(ME) . "sql=" . urlencode($query) . "'>" . lang('Edit') . "</a>\n";
|
34 |
|
35 |
if (!$connection->multi_query($query)) {
|
adminer/adminer/adminer/create.inc.php
CHANGED
@@ -35,7 +35,6 @@ if ($_POST && !process_fields($row["fields"]) && !$error) {
|
|
35 |
$all_fields = array();
|
36 |
$use_all_fields = false;
|
37 |
$foreign = array();
|
38 |
-
ksort($row["fields"]);
|
39 |
$orig_field = reset($orig_fields);
|
40 |
$after = " FIRST";
|
41 |
|
35 |
$all_fields = array();
|
36 |
$use_all_fields = false;
|
37 |
$foreign = array();
|
|
|
38 |
$orig_field = reset($orig_fields);
|
39 |
$after = " FIRST";
|
40 |
|
adminer/adminer/adminer/db.inc.php
CHANGED
@@ -62,10 +62,9 @@ if ($adminer->homepage()) {
|
|
62 |
search_tables();
|
63 |
}
|
64 |
}
|
65 |
-
echo "<table cellspacing='0' class='nowrap checkable' onclick='tableClick(event);' ondblclick='tableClick(event, true);'>\n";
|
66 |
-
|
67 |
-
echo '<thead><tr class="wrap"><td><input id="check-all" type="checkbox" onclick="formCheck(this, /^(tables|views)\[/);">';
|
68 |
$doc_link = doc_link(array('sql' => 'show-table-status.html'));
|
|
|
|
|
69 |
echo '<th>' . lang('Table');
|
70 |
echo '<td>' . lang('Engine') . doc_link(array('sql' => 'storage-engines.html'));
|
71 |
echo '<td>' . lang('Collation') . doc_link(array('sql' => 'charset-mysql.html'));
|
@@ -80,10 +79,11 @@ if ($adminer->homepage()) {
|
|
80 |
$tables = 0;
|
81 |
foreach ($tables_list as $name => $type) {
|
82 |
$view = ($type !== null && !preg_match('~table~i', $type));
|
83 |
-
|
84 |
-
echo '<
|
|
|
85 |
if ($view) {
|
86 |
-
echo '<td colspan="6"><a href="' . h(ME) . "view=" . urlencode($name) . '" title="' . lang('Alter view') . '">' . (preg_match('~materialized~i', $type) ? lang('Materialized
|
87 |
echo '<td align="right"><a href="' . h(ME) . "select=" . urlencode($name) . '" title="' . lang('Select data') . '">?</a>';
|
88 |
} else {
|
89 |
foreach (array(
|
@@ -145,7 +145,6 @@ if ($adminer->homepage()) {
|
|
145 |
|
146 |
echo '<p class="links"><a href="' . h(ME) . 'create=">' . lang('Create table') . "</a>\n";
|
147 |
echo (support("view") ? '<a href="' . h(ME) . 'view=">' . lang('Create view') . "</a>\n" : "");
|
148 |
-
echo (support("materializedview") ? '<a href="' . h(ME) . 'view=&materialized=1">' . lang('Create materialized view') . "</a>\n" : "");
|
149 |
|
150 |
if (support("routine")) {
|
151 |
echo "<h3 id='routines'>" . lang('Routines') . "</h3>\n";
|
62 |
search_tables();
|
63 |
}
|
64 |
}
|
|
|
|
|
|
|
65 |
$doc_link = doc_link(array('sql' => 'show-table-status.html'));
|
66 |
+
echo "<table cellspacing='0' class='nowrap checkable' onclick='tableClick(event);' ondblclick='tableClick(event, true);'>\n";
|
67 |
+
echo '<thead><tr class="wrap"><td><input id="check-all" type="checkbox" onclick="formCheck(this, /^(tables|views)\[/);" class="jsonly">';
|
68 |
echo '<th>' . lang('Table');
|
69 |
echo '<td>' . lang('Engine') . doc_link(array('sql' => 'storage-engines.html'));
|
70 |
echo '<td>' . lang('Collation') . doc_link(array('sql' => 'charset-mysql.html'));
|
79 |
$tables = 0;
|
80 |
foreach ($tables_list as $name => $type) {
|
81 |
$view = ($type !== null && !preg_match('~table~i', $type));
|
82 |
+
$id = h("Table-" . $name);
|
83 |
+
echo '<tr' . odd() . '><td>' . checkbox(($view ? "views[]" : "tables[]"), $name, in_array($name, $tables_views, true), "", "formUncheck('check-all');", "", $id);
|
84 |
+
echo '<th>' . (support("table") || support("indexes") ? "<a href='" . h(ME) . "table=" . urlencode($name) . "' title='" . lang('Show structure') . "' id='$id'>" . h($name) . '</a>' : h($name));
|
85 |
if ($view) {
|
86 |
+
echo '<td colspan="6"><a href="' . h(ME) . "view=" . urlencode($name) . '" title="' . lang('Alter view') . '">' . (preg_match('~materialized~i', $type) ? lang('Materialized view') : lang('View')) . '</a>';
|
87 |
echo '<td align="right"><a href="' . h(ME) . "select=" . urlencode($name) . '" title="' . lang('Select data') . '">?</a>';
|
88 |
} else {
|
89 |
foreach (array(
|
145 |
|
146 |
echo '<p class="links"><a href="' . h(ME) . 'create=">' . lang('Create table') . "</a>\n";
|
147 |
echo (support("view") ? '<a href="' . h(ME) . 'view=">' . lang('Create view') . "</a>\n" : "");
|
|
|
148 |
|
149 |
if (support("routine")) {
|
150 |
echo "<h3 id='routines'>" . lang('Routines') . "</h3>\n";
|
adminer/adminer/adminer/drivers/elastic.inc.php
CHANGED
@@ -59,7 +59,8 @@ if (isset($_GET["elastic"])) {
|
|
59 |
}
|
60 |
|
61 |
function connect($server, $username, $password) {
|
62 |
-
$
|
|
|
63 |
$return = $this->query('');
|
64 |
if ($return) {
|
65 |
$this->server_info = $return['version']['number'];
|
@@ -257,9 +258,9 @@ if (isset($_GET["elastic"])) {
|
|
257 |
"Engine" => "table",
|
258 |
"Rows" => $table["count"],
|
259 |
);
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
}
|
264 |
}
|
265 |
return $return;
|
59 |
}
|
60 |
|
61 |
function connect($server, $username, $password) {
|
62 |
+
preg_match('~^(https?://)?(.*)~', $server, $match);
|
63 |
+
$this->_url = ($match[1] ? $match[1] : "http://") . "$username:$password@$match[2]/";
|
64 |
$return = $this->query('');
|
65 |
if ($return) {
|
66 |
$this->server_info = $return['version']['number'];
|
258 |
"Engine" => "table",
|
259 |
"Rows" => $table["count"],
|
260 |
);
|
261 |
+
if ($name != "" && $name == $table["term"]) {
|
262 |
+
return $return[$name];
|
263 |
+
}
|
264 |
}
|
265 |
}
|
266 |
return $return;
|
adminer/adminer/adminer/drivers/mssql.inc.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
$drivers["mssql"] = "MS SQL";
|
9 |
|
10 |
if (isset($_GET["mssql"])) {
|
11 |
-
$possible_drivers = array("SQLSRV", "MSSQL");
|
12 |
define("DRIVER", "mssql");
|
13 |
if (extension_loaded("sqlsrv")) {
|
14 |
class Min_DB {
|
@@ -109,11 +109,11 @@ if (isset($_GET["mssql"])) {
|
|
109 |
}
|
110 |
|
111 |
function fetch_assoc() {
|
112 |
-
return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_ASSOC
|
113 |
}
|
114 |
|
115 |
function fetch_row() {
|
116 |
-
return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_NUMERIC
|
117 |
}
|
118 |
|
119 |
function fetch_field() {
|
@@ -164,7 +164,7 @@ if (isset($_GET["mssql"])) {
|
|
164 |
}
|
165 |
|
166 |
function query($query, $unbuffered = false) {
|
167 |
-
$result = mssql_query($query, $this->_link); //! $unbuffered
|
168 |
$this->error = "";
|
169 |
if (!$result) {
|
170 |
$this->error = mssql_get_last_message();
|
@@ -186,7 +186,7 @@ if (isset($_GET["mssql"])) {
|
|
186 |
}
|
187 |
|
188 |
function next_result() {
|
189 |
-
return mssql_next_result($this->_result);
|
190 |
}
|
191 |
|
192 |
function result($query, $field = 0) {
|
@@ -234,8 +234,21 @@ if (isset($_GET["mssql"])) {
|
|
234 |
}
|
235 |
}
|
236 |
|
237 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
|
240 |
|
241 |
class Min_Driver extends Min_SQL {
|
@@ -288,7 +301,7 @@ if (isset($_GET["mssql"])) {
|
|
288 |
}
|
289 |
|
290 |
function get_databases() {
|
291 |
-
return get_vals("
|
292 |
}
|
293 |
|
294 |
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
|
8 |
$drivers["mssql"] = "MS SQL";
|
9 |
|
10 |
if (isset($_GET["mssql"])) {
|
11 |
+
$possible_drivers = array("SQLSRV", "MSSQL", "PDO_DBLIB");
|
12 |
define("DRIVER", "mssql");
|
13 |
if (extension_loaded("sqlsrv")) {
|
14 |
class Min_DB {
|
109 |
}
|
110 |
|
111 |
function fetch_assoc() {
|
112 |
+
return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_ASSOC));
|
113 |
}
|
114 |
|
115 |
function fetch_row() {
|
116 |
+
return $this->_convert(sqlsrv_fetch_array($this->_result, SQLSRV_FETCH_NUMERIC));
|
117 |
}
|
118 |
|
119 |
function fetch_field() {
|
164 |
}
|
165 |
|
166 |
function query($query, $unbuffered = false) {
|
167 |
+
$result = @mssql_query($query, $this->_link); //! $unbuffered
|
168 |
$this->error = "";
|
169 |
if (!$result) {
|
170 |
$this->error = mssql_get_last_message();
|
186 |
}
|
187 |
|
188 |
function next_result() {
|
189 |
+
return mssql_next_result($this->_result->_result);
|
190 |
}
|
191 |
|
192 |
function result($query, $field = 0) {
|
234 |
}
|
235 |
}
|
236 |
|
237 |
+
} elseif (extension_loaded("pdo_dblib")) {
|
238 |
+
class Min_DB extends Min_PDO {
|
239 |
+
var $extension = "PDO_DBLIB";
|
240 |
+
|
241 |
+
function connect($server, $username, $password) {
|
242 |
+
$this->dsn("dblib:charset=utf8;host=" . str_replace(":", ";unix_socket=", preg_replace('~:(\\d)~', ';port=\\1', $server)), $username, $password);
|
243 |
+
return true;
|
244 |
+
}
|
245 |
|
246 |
+
function select_db($database) {
|
247 |
+
// database selection is separated from the connection so dbname in DSN can't be used
|
248 |
+
return $this->query("USE " . idf_escape($database));
|
249 |
+
}
|
250 |
+
}
|
251 |
+
}
|
252 |
|
253 |
|
254 |
class Min_Driver extends Min_SQL {
|
301 |
}
|
302 |
|
303 |
function get_databases() {
|
304 |
+
return get_vals("SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')");
|
305 |
}
|
306 |
|
307 |
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
|
adminer/adminer/adminer/drivers/mysql.inc.php
CHANGED
@@ -301,12 +301,16 @@ if (!defined("DRIVER")) {
|
|
301 |
* @return mixed Min_DB or string for error
|
302 |
*/
|
303 |
function connect() {
|
304 |
-
global $adminer;
|
305 |
$connection = new Min_DB;
|
306 |
$credentials = $adminer->credentials();
|
307 |
if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) {
|
308 |
$connection->set_charset(charset($connection)); // available in MySQLi since PHP 5.0.5
|
309 |
$connection->query("SET sql_quote_show_create = 1, autocommit = 1");
|
|
|
|
|
|
|
|
|
310 |
return $connection;
|
311 |
}
|
312 |
$return = $connection->error;
|
@@ -429,7 +433,7 @@ if (!defined("DRIVER")) {
|
|
429 |
global $connection;
|
430 |
$return = array();
|
431 |
foreach (get_rows($fast && $connection->server_info >= 5
|
432 |
-
? "SELECT TABLE_NAME AS Name, Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() " . ($name != "" ? "AND TABLE_NAME = " . q($name) : "ORDER BY Name")
|
433 |
: "SHOW TABLE STATUS" . ($name != "" ? " LIKE " . q(addcslashes($name, "%_\\")) : "")
|
434 |
) as $row) {
|
435 |
if ($row["Engine"] == "InnoDB") {
|
@@ -500,10 +504,11 @@ if (!defined("DRIVER")) {
|
|
500 |
function indexes($table, $connection2 = null) {
|
501 |
$return = array();
|
502 |
foreach (get_rows("SHOW INDEX FROM " . table($table), $connection2) as $row) {
|
503 |
-
$
|
504 |
-
$return[$
|
505 |
-
$return[$
|
506 |
-
$return[$
|
|
|
507 |
}
|
508 |
return $return;
|
509 |
}
|
@@ -972,6 +977,14 @@ if (!defined("DRIVER")) {
|
|
972 |
return get_key_vals("SHOW STATUS");
|
973 |
}
|
974 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
975 |
/** Convert field in select and edit
|
976 |
* @param array one element from fields()
|
977 |
* @return string
|
@@ -1012,13 +1025,17 @@ if (!defined("DRIVER")) {
|
|
1012 |
*/
|
1013 |
function support($feature) {
|
1014 |
global $connection;
|
1015 |
-
return !preg_match("~scheme|sequence|type|view_trigger" . ($connection->server_info < 5.1 ? "|event|partitioning" . ($connection->server_info < 5 ? "|routine|trigger|view" : "") : "") . "~", $feature);
|
1016 |
}
|
1017 |
|
1018 |
function kill_process($val) {
|
1019 |
return queries("KILL " . number($val));
|
1020 |
}
|
1021 |
|
|
|
|
|
|
|
|
|
1022 |
function max_connections() {
|
1023 |
global $connection;
|
1024 |
return $connection->result("SELECT @@max_connections");
|
301 |
* @return mixed Min_DB or string for error
|
302 |
*/
|
303 |
function connect() {
|
304 |
+
global $adminer, $types, $structured_types;
|
305 |
$connection = new Min_DB;
|
306 |
$credentials = $adminer->credentials();
|
307 |
if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) {
|
308 |
$connection->set_charset(charset($connection)); // available in MySQLi since PHP 5.0.5
|
309 |
$connection->query("SET sql_quote_show_create = 1, autocommit = 1");
|
310 |
+
if (version_compare($connection->server_info, '5.7.8') >= 0) {
|
311 |
+
$structured_types[lang('Strings')][] = "json";
|
312 |
+
$types["json"] = 4294967295;
|
313 |
+
}
|
314 |
return $connection;
|
315 |
}
|
316 |
$return = $connection->error;
|
433 |
global $connection;
|
434 |
$return = array();
|
435 |
foreach (get_rows($fast && $connection->server_info >= 5
|
436 |
+
? "SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() " . ($name != "" ? "AND TABLE_NAME = " . q($name) : "ORDER BY Name")
|
437 |
: "SHOW TABLE STATUS" . ($name != "" ? " LIKE " . q(addcslashes($name, "%_\\")) : "")
|
438 |
) as $row) {
|
439 |
if ($row["Engine"] == "InnoDB") {
|
504 |
function indexes($table, $connection2 = null) {
|
505 |
$return = array();
|
506 |
foreach (get_rows("SHOW INDEX FROM " . table($table), $connection2) as $row) {
|
507 |
+
$name = $row["Key_name"];
|
508 |
+
$return[$name]["type"] = ($name == "PRIMARY" ? "PRIMARY" : ($row["Index_type"] == "FULLTEXT" ? "FULLTEXT" : ($row["Non_unique"] ? ($row["Index_type"] == "SPATIAL" ? "SPATIAL" : "INDEX") : "UNIQUE")));
|
509 |
+
$return[$name]["columns"][] = $row["Column_name"];
|
510 |
+
$return[$name]["lengths"][] = ($row["Index_type"] == "SPATIAL" ? null : $row["Sub_part"]);
|
511 |
+
$return[$name]["descs"][] = null;
|
512 |
}
|
513 |
return $return;
|
514 |
}
|
977 |
return get_key_vals("SHOW STATUS");
|
978 |
}
|
979 |
|
980 |
+
/** Get replication status of master or slave
|
981 |
+
* @param string
|
982 |
+
* @return array ($name => $value)
|
983 |
+
*/
|
984 |
+
function replication_status($type) {
|
985 |
+
return get_rows("SHOW $type STATUS");
|
986 |
+
}
|
987 |
+
|
988 |
/** Convert field in select and edit
|
989 |
* @param array one element from fields()
|
990 |
* @return string
|
1025 |
*/
|
1026 |
function support($feature) {
|
1027 |
global $connection;
|
1028 |
+
return !preg_match("~scheme|sequence|type|view_trigger|materializedview" . ($connection->server_info < 5.1 ? "|event|partitioning" . ($connection->server_info < 5 ? "|routine|trigger|view" : "") : "") . "~", $feature);
|
1029 |
}
|
1030 |
|
1031 |
function kill_process($val) {
|
1032 |
return queries("KILL " . number($val));
|
1033 |
}
|
1034 |
|
1035 |
+
function connection_id(){
|
1036 |
+
return "SELECT CONNECTION_ID()";
|
1037 |
+
}
|
1038 |
+
|
1039 |
function max_connections() {
|
1040 |
global $connection;
|
1041 |
return $connection->result("SELECT @@max_connections");
|
adminer/adminer/adminer/drivers/pgsql.inc.php
CHANGED
@@ -199,7 +199,7 @@ if (isset($_GET["pgsql"])) {
|
|
199 |
}
|
200 |
|
201 |
function get_databases() {
|
202 |
-
return get_vals("SELECT datname FROM pg_database ORDER BY datname");
|
203 |
}
|
204 |
|
205 |
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
|
@@ -244,10 +244,10 @@ ORDER BY 1";
|
|
244 |
|
245 |
function table_status($name = "") {
|
246 |
$return = array();
|
247 |
-
foreach (get_rows("SELECT relname AS \"Name\", CASE relkind WHEN 'r' THEN 'table' WHEN '
|
248 |
-
FROM pg_class
|
249 |
-
|
250 |
-
|
251 |
" . ($name != "" ? "AND relname = " . q($name) : "ORDER BY relname")
|
252 |
) as $row) { //! Index_length, Auto_increment
|
253 |
$return[$row["Name"]] = $row;
|
@@ -311,9 +311,9 @@ ORDER BY a.attnum"
|
|
311 |
$return = array();
|
312 |
$table_oid = $connection2->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($table));
|
313 |
$columns = get_key_vals("SELECT attnum, attname FROM pg_attribute WHERE attrelid = $table_oid AND attnum > 0", $connection2);
|
314 |
-
foreach (get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption FROM pg_index i, pg_class ci WHERE i.indrelid = $table_oid AND ci.oid = i.indexrelid", $connection2) as $row) {
|
315 |
$relname = $row["relname"];
|
316 |
-
$return[$relname]["type"] = ($row["indisprimary"] ? "PRIMARY" : ($row["indisunique"] ? "UNIQUE" : "INDEX"));
|
317 |
$return[$relname]["columns"] = array();
|
318 |
foreach (explode(" ", $row["indkey"]) as $indkey) {
|
319 |
$return[$relname]["columns"][] = $columns[$indkey];
|
@@ -330,7 +330,7 @@ ORDER BY a.attnum"
|
|
330 |
function foreign_keys($table) {
|
331 |
global $on_actions;
|
332 |
$return = array();
|
333 |
-
foreach (get_rows("SELECT conname, pg_get_constraintdef(oid) AS definition
|
334 |
FROM pg_constraint
|
335 |
WHERE conrelid = (SELECT pc.oid FROM pg_class AS pc INNER JOIN pg_namespace AS pn ON (pn.oid = pc.relnamespace) WHERE pc.relname = " . q($table) . " AND pn.nspname = current_schema())
|
336 |
AND contype = 'f'::char
|
@@ -352,7 +352,7 @@ ORDER BY conkey, conname") as $row) {
|
|
352 |
|
353 |
function view($name) {
|
354 |
global $connection;
|
355 |
-
return array("select" => $connection->result("SELECT pg_get_viewdef(" . q($name) . ")"));
|
356 |
}
|
357 |
|
358 |
function collations() {
|
@@ -488,7 +488,7 @@ ORDER BY conkey, conname") as $row) {
|
|
488 |
|
489 |
function drop_tables($tables) {
|
490 |
foreach ($tables as $table) {
|
491 |
-
|
492 |
if (!queries("DROP " . strtoupper($status["Engine"]) . " " . table($table))) {
|
493 |
return false;
|
494 |
}
|
@@ -506,18 +506,21 @@ ORDER BY conkey, conname") as $row) {
|
|
506 |
return true;
|
507 |
}
|
508 |
|
509 |
-
function trigger($name) {
|
510 |
if ($name == "") {
|
511 |
return array("Statement" => "EXECUTE PROCEDURE ()");
|
512 |
}
|
513 |
-
|
|
|
|
|
|
|
514 |
return reset($rows);
|
515 |
}
|
516 |
|
517 |
function triggers($table) {
|
518 |
$return = array();
|
519 |
foreach (get_rows("SELECT * FROM information_schema.triggers WHERE event_object_table = " . q($table)) as $row) {
|
520 |
-
$return[$row["trigger_name"]] = array($row["
|
521 |
}
|
522 |
return $return;
|
523 |
}
|
@@ -606,6 +609,111 @@ AND typelem = 0"
|
|
606 |
return $return;
|
607 |
}
|
608 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
609 |
function use_sql($database) {
|
610 |
return "\connect " . idf_escape($database);
|
611 |
}
|
@@ -631,11 +739,15 @@ AND typelem = 0"
|
|
631 |
|
632 |
function support($feature) {
|
633 |
global $connection;
|
634 |
-
return preg_match('~^(database|table|columns|sql|indexes|comment|view|' . ($connection->server_info >= 9.3 ? 'materializedview|' : '') . 'scheme|processlist|sequence|trigger|type|variables|drop_col|kill)$~', $feature); //! routine|
|
635 |
}
|
636 |
|
637 |
function kill_process($val) {
|
638 |
-
return queries("SELECT pg_terminate_backend(" . number($val).")");
|
|
|
|
|
|
|
|
|
639 |
}
|
640 |
|
641 |
function max_connections() {
|
199 |
}
|
200 |
|
201 |
function get_databases() {
|
202 |
+
return get_vals("SELECT datname FROM pg_database WHERE has_database_privilege(datname, 'CONNECT') ORDER BY datname");
|
203 |
}
|
204 |
|
205 |
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
|
244 |
|
245 |
function table_status($name = "") {
|
246 |
$return = array();
|
247 |
+
foreach (get_rows("SELECT c.relname AS \"Name\", CASE c.relkind WHEN 'r' THEN 'table' WHEN 'm' THEN 'materialized view' ELSE 'view' END AS \"Engine\", pg_relation_size(c.oid) AS \"Data_length\", pg_indexes_size(c.oid) AS \"Index_length\", obj_description(c.oid, 'pg_class') AS \"Comment\", c.relhasoids::int AS \"Oid\", c.reltuples as \"Rows\", n.nspname
|
248 |
+
FROM pg_class c
|
249 |
+
JOIN pg_namespace n ON(n.nspname = current_schema() AND n.oid = c.relnamespace)
|
250 |
+
WHERE relkind IN ('r', 'm', 'v')
|
251 |
" . ($name != "" ? "AND relname = " . q($name) : "ORDER BY relname")
|
252 |
) as $row) { //! Index_length, Auto_increment
|
253 |
$return[$row["Name"]] = $row;
|
311 |
$return = array();
|
312 |
$table_oid = $connection2->result("SELECT oid FROM pg_class WHERE relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = current_schema()) AND relname = " . q($table));
|
313 |
$columns = get_key_vals("SELECT attnum, attname FROM pg_attribute WHERE attrelid = $table_oid AND attnum > 0", $connection2);
|
314 |
+
foreach (get_rows("SELECT relname, indisunique::int, indisprimary::int, indkey, indoption , (indpred IS NOT NULL)::int as indispartial FROM pg_index i, pg_class ci WHERE i.indrelid = $table_oid AND ci.oid = i.indexrelid", $connection2) as $row) {
|
315 |
$relname = $row["relname"];
|
316 |
+
$return[$relname]["type"] = ($row["indispartial"] ? "INDEX" : ($row["indisprimary"] ? "PRIMARY" : ($row["indisunique"] ? "UNIQUE" : "INDEX")));
|
317 |
$return[$relname]["columns"] = array();
|
318 |
foreach (explode(" ", $row["indkey"]) as $indkey) {
|
319 |
$return[$relname]["columns"][] = $columns[$indkey];
|
330 |
function foreign_keys($table) {
|
331 |
global $on_actions;
|
332 |
$return = array();
|
333 |
+
foreach (get_rows("SELECT conname, condeferrable::int AS deferrable, pg_get_constraintdef(oid) AS definition
|
334 |
FROM pg_constraint
|
335 |
WHERE conrelid = (SELECT pc.oid FROM pg_class AS pc INNER JOIN pg_namespace AS pn ON (pn.oid = pc.relnamespace) WHERE pc.relname = " . q($table) . " AND pn.nspname = current_schema())
|
336 |
AND contype = 'f'::char
|
352 |
|
353 |
function view($name) {
|
354 |
global $connection;
|
355 |
+
return array("select" => trim($connection->result("SELECT pg_get_viewdef(" . q($name) . ")")));
|
356 |
}
|
357 |
|
358 |
function collations() {
|
488 |
|
489 |
function drop_tables($tables) {
|
490 |
foreach ($tables as $table) {
|
491 |
+
$status = table_status($table);
|
492 |
if (!queries("DROP " . strtoupper($status["Engine"]) . " " . table($table))) {
|
493 |
return false;
|
494 |
}
|
506 |
return true;
|
507 |
}
|
508 |
|
509 |
+
function trigger($name, $table = null) {
|
510 |
if ($name == "") {
|
511 |
return array("Statement" => "EXECUTE PROCEDURE ()");
|
512 |
}
|
513 |
+
if ($table === null) {
|
514 |
+
$table = $_GET['trigger'];
|
515 |
+
}
|
516 |
+
$rows = get_rows('SELECT t.trigger_name AS "Trigger", t.action_timing AS "Timing", (SELECT STRING_AGG(event_manipulation, \' OR \') FROM information_schema.triggers WHERE event_object_table = t.event_object_table AND trigger_name = t.trigger_name ) AS "Events", t.event_manipulation AS "Event", \'FOR EACH \' || t.action_orientation AS "Type", t.action_statement AS "Statement" FROM information_schema.triggers t WHERE t.event_object_table = ' . q($table) . ' AND t.trigger_name = ' . q($name));
|
517 |
return reset($rows);
|
518 |
}
|
519 |
|
520 |
function triggers($table) {
|
521 |
$return = array();
|
522 |
foreach (get_rows("SELECT * FROM information_schema.triggers WHERE event_object_table = " . q($table)) as $row) {
|
523 |
+
$return[$row["trigger_name"]] = array($row["action_timing"], $row["event_manipulation"]);
|
524 |
}
|
525 |
return $return;
|
526 |
}
|
609 |
return $return;
|
610 |
}
|
611 |
|
612 |
+
/** Get SQL command to create table
|
613 |
+
* @param string
|
614 |
+
* @param bool
|
615 |
+
* @return string
|
616 |
+
*/
|
617 |
+
function create_sql($table, $auto_increment) {
|
618 |
+
global $connection;
|
619 |
+
$return = '';
|
620 |
+
$return_parts = array();
|
621 |
+
$sequences = array();
|
622 |
+
|
623 |
+
$status = table_status($table);
|
624 |
+
$fields = fields($table);
|
625 |
+
$indexes = indexes($table);
|
626 |
+
ksort($indexes);
|
627 |
+
$fkeys = foreign_keys($table);
|
628 |
+
ksort($fkeys);
|
629 |
+
$triggers = triggers($table);
|
630 |
+
|
631 |
+
if (!$status || empty($fields)) {
|
632 |
+
return false;
|
633 |
+
}
|
634 |
+
|
635 |
+
$return = "CREATE TABLE " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " (\n ";
|
636 |
+
|
637 |
+
// fields' definitions
|
638 |
+
foreach ($fields as $field_name => $field) {
|
639 |
+
$part = idf_escape($field['field']) . ' ' . $field['full_type']
|
640 |
+
. (is_null($field['default']) ? "" : " DEFAULT $field[default]")
|
641 |
+
. ($field['attnotnull'] ? "" : " NOT NULL");
|
642 |
+
$return_parts[] = $part;
|
643 |
+
|
644 |
+
// sequences for fields
|
645 |
+
if (preg_match('~nextval\(\'([^\']+)\'\)~', $field['default'], $matches)) {
|
646 |
+
$sequence_name = $matches[1];
|
647 |
+
$sq = reset(get_rows("SELECT * FROM $sequence_name"));
|
648 |
+
$sequences[] = "CREATE SEQUENCE $sequence_name INCREMENT $sq[increment_by] MINVALUE $sq[min_value] MAXVALUE $sq[max_value] START " . ($auto_increment ? $sq['last_value'] : 1) . " CACHE $sq[cache_value];";
|
649 |
+
}
|
650 |
+
}
|
651 |
+
|
652 |
+
// adding sequences before table definition
|
653 |
+
if (!empty($sequences)) {
|
654 |
+
$return = implode("\n\n", $sequences) . "\n\n$return";
|
655 |
+
}
|
656 |
+
|
657 |
+
// primary + unique keys
|
658 |
+
foreach ($indexes as $index_name => $index) {
|
659 |
+
switch($index['type']) {
|
660 |
+
case 'UNIQUE': $return_parts[] = "CONSTRAINT " . idf_escape($index_name) . " UNIQUE (" . implode(', ', array_map('idf_escape', $index['columns'])) . ")"; break;
|
661 |
+
case 'PRIMARY': $return_parts[] = "CONSTRAINT " . idf_escape($index_name) . " PRIMARY KEY (" . implode(', ', array_map('idf_escape', $index['columns'])) . ")"; break;
|
662 |
+
}
|
663 |
+
}
|
664 |
+
|
665 |
+
// foreign keys
|
666 |
+
foreach ($fkeys as $fkey_name => $fkey) {
|
667 |
+
$return_parts[] = "CONSTRAINT " . idf_escape($fkey_name) . " $fkey[definition] " . ($fkey['deferrable'] ? 'DEFERRABLE' : 'NOT DEFERRABLE');
|
668 |
+
}
|
669 |
+
|
670 |
+
$return .= implode(",\n ", $return_parts) . "\n) WITH (oids = " . ($status['Oid'] ? 'true' : 'false') . ");";
|
671 |
+
|
672 |
+
// "basic" indexes after table definition
|
673 |
+
foreach ($indexes as $index_name => $index) {
|
674 |
+
if ($index['type'] == 'INDEX') {
|
675 |
+
$return .= "\n\nCREATE INDEX " . idf_escape($index_name) . " ON " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " USING btree (" . implode(', ', array_map('idf_escape', $index['columns'])) . ");";
|
676 |
+
}
|
677 |
+
}
|
678 |
+
|
679 |
+
// coments for table & fields
|
680 |
+
if ($status['Comment']) {
|
681 |
+
$return .= "\n\nCOMMENT ON TABLE " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " IS " . q($status['Comment']) . ";";
|
682 |
+
}
|
683 |
+
|
684 |
+
foreach ($fields as $field_name => $field) {
|
685 |
+
if ($field['comment']) {
|
686 |
+
$return .= "\n\nCOMMENT ON COLUMN " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . "." . idf_escape($field_name) . " IS " . q($field['comment']) . ";";
|
687 |
+
}
|
688 |
+
}
|
689 |
+
|
690 |
+
// triggers
|
691 |
+
foreach ($triggers as $trg_id => $trg) {
|
692 |
+
$trigger = trigger($trg_id, $status['Name']);
|
693 |
+
$return .= "\n\nCREATE TRIGGER " . idf_escape($trigger['Trigger']) . " $trigger[Timing] $trigger[Events] ON " . idf_escape($status["nspname"]) . "." . idf_escape($status['Name']) . " $trigger[Type] $trigger[Statement];";
|
694 |
+
}
|
695 |
+
|
696 |
+
return rtrim($return, ';');
|
697 |
+
}
|
698 |
+
|
699 |
+
/** Get SQL commands to create triggers
|
700 |
+
* @param string
|
701 |
+
* @param string
|
702 |
+
* @return string
|
703 |
+
*/
|
704 |
+
//@TODO
|
705 |
+
function trigger_sql($table, $style) {
|
706 |
+
$return = "";
|
707 |
+
//foreach (get_rows("SHOW TRIGGERS LIKE " . q(addcslashes($table, "%_\\")), null, "-- ") as $row) {
|
708 |
+
// $return .= "\n" . ($style == 'CREATE+ALTER' ? "DROP TRIGGER IF EXISTS " . idf_escape($row["Trigger"]) . ";;\n" : "")
|
709 |
+
// . "CREATE TRIGGER " . idf_escape($row["Trigger"]) . " $row[Timing] $row[Event] ON " . table($row["Table"]) . " FOR EACH ROW\n$row[Statement];;\n";
|
710 |
+
//}
|
711 |
+
//return $return;
|
712 |
+
|
713 |
+
return false;
|
714 |
+
}
|
715 |
+
|
716 |
+
|
717 |
function use_sql($database) {
|
718 |
return "\connect " . idf_escape($database);
|
719 |
}
|
739 |
|
740 |
function support($feature) {
|
741 |
global $connection;
|
742 |
+
return preg_match('~^(database|table|columns|sql|indexes|comment|view|' . ($connection->server_info >= 9.3 ? 'materializedview|' : '') . 'scheme|processlist|sequence|trigger|type|variables|drop_col|kill|dump)$~', $feature); //! routine|
|
743 |
}
|
744 |
|
745 |
function kill_process($val) {
|
746 |
+
return queries("SELECT pg_terminate_backend(" . number($val) . ")");
|
747 |
+
}
|
748 |
+
|
749 |
+
function connection_id(){
|
750 |
+
return "SELECT pg_backend_pid()";
|
751 |
}
|
752 |
|
753 |
function max_connections() {
|
adminer/adminer/adminer/file.inc.php
CHANGED
@@ -6,6 +6,7 @@ if ($_SERVER["HTTP_IF_MODIFIED_SINCE"]) {
|
|
6 |
|
7 |
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 365*24*60*60) . " GMT");
|
8 |
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
|
|
|
9 |
|
10 |
if ($_GET["file"] == "favicon.ico") {
|
11 |
header("Content-Type: image/x-icon");
|
@@ -18,7 +19,7 @@ if ($_GET["file"] == "favicon.ico") {
|
|
18 |
echo lzw_decompress(compile_file('../adminer/static/functions.js;static/editing.js', 'minify_js'));
|
19 |
} elseif ($_GET["file"] == "jush.js") {
|
20 |
header("Content-Type: text/javascript; charset=utf-8");
|
21 |
-
echo lzw_decompress(compile_file('../externals/jush/modules/jush.js;../externals/jush/modules/jush-textarea.js;../externals/jush/modules/jush-txt.js;../externals/jush/modules/jush-sql.js;../externals/jush/modules/jush-pgsql.js;../externals/jush/modules/jush-sqlite.js;../externals/jush/modules/jush-mssql.js;../externals/jush/modules/jush-oracle.js;../externals/jush/modules/jush-simpledb.js', 'minify_js'));
|
22 |
} else {
|
23 |
header("Content-Type: image/gif");
|
24 |
switch ($_GET["file"]) {
|
6 |
|
7 |
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 365*24*60*60) . " GMT");
|
8 |
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
|
9 |
+
header("Cache-Control: immutable");
|
10 |
|
11 |
if ($_GET["file"] == "favicon.ico") {
|
12 |
header("Content-Type: image/x-icon");
|
19 |
echo lzw_decompress(compile_file('../adminer/static/functions.js;static/editing.js', 'minify_js'));
|
20 |
} elseif ($_GET["file"] == "jush.js") {
|
21 |
header("Content-Type: text/javascript; charset=utf-8");
|
22 |
+
echo lzw_decompress(compile_file('../externals/jush/modules/jush.js;../externals/jush/modules/jush-textarea.js;../externals/jush/modules/jush-txt.js;../externals/jush/modules/jush-js.js;../externals/jush/modules/jush-sql.js;../externals/jush/modules/jush-pgsql.js;../externals/jush/modules/jush-sqlite.js;../externals/jush/modules/jush-mssql.js;../externals/jush/modules/jush-oracle.js;../externals/jush/modules/jush-simpledb.js', 'minify_js'));
|
23 |
} else {
|
24 |
header("Content-Type: image/gif");
|
25 |
switch ($_GET["file"]) {
|
adminer/adminer/adminer/foreign.inc.php
CHANGED
@@ -7,13 +7,15 @@ if ($_POST && !$error && !$_POST["add"] && !$_POST["change"] && !$_POST["change-
|
|
7 |
$message = ($_POST["drop"] ? lang('Foreign key has been dropped.') : ($name != "" ? lang('Foreign key has been altered.') : lang('Foreign key has been created.')));
|
8 |
$location = ME . "table=" . urlencode($TABLE);
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
|
|
|
|
|
|
15 |
}
|
16 |
-
$row["target"] = $target;
|
17 |
|
18 |
if ($jush == "sqlite") {
|
19 |
queries_redirect($location, $message, recreate_table($TABLE, $TABLE, array(), array(), array(" $name" => ($_POST["drop"] ? "" : " " . format_foreign_key($row)))));
|
@@ -60,13 +62,13 @@ $referencable = array_keys(array_filter(table_status('', true), 'fk_support'));
|
|
60 |
<input type="hidden" name="change-js" value="">
|
61 |
<noscript><p><input type="submit" name="change" value="<?php echo lang('Change'); ?>"></noscript>
|
62 |
<table cellspacing="0">
|
63 |
-
<thead><tr><th><?php echo lang('Source'); ?><th><?php echo lang('Target'); ?></thead>
|
64 |
<?php
|
65 |
$j = 0;
|
66 |
foreach ($row["source"] as $key => $val) {
|
67 |
echo "<tr>";
|
68 |
-
echo "<td>" . html_select("source[" . (+$key) . "]", array(-1 => "") + $source, $val, ($j == count($row["source"]) - 1 ? "foreignAddRow(this);" : 1));
|
69 |
-
echo "<td>" . html_select("target[" . (+$key) . "]", $target, $row["target"][$key]);
|
70 |
$j++;
|
71 |
}
|
72 |
?>
|
7 |
$message = ($_POST["drop"] ? lang('Foreign key has been dropped.') : ($name != "" ? lang('Foreign key has been altered.') : lang('Foreign key has been created.')));
|
8 |
$location = ME . "table=" . urlencode($TABLE);
|
9 |
|
10 |
+
if (!$_POST["drop"]) {
|
11 |
+
$row["source"] = array_filter($row["source"], 'strlen');
|
12 |
+
ksort($row["source"]); // enforce input order
|
13 |
+
$target = array();
|
14 |
+
foreach ($row["source"] as $key => $val) {
|
15 |
+
$target[$key] = $row["target"][$key];
|
16 |
+
}
|
17 |
+
$row["target"] = $target;
|
18 |
}
|
|
|
19 |
|
20 |
if ($jush == "sqlite") {
|
21 |
queries_redirect($location, $message, recreate_table($TABLE, $TABLE, array(), array(), array(" $name" => ($_POST["drop"] ? "" : " " . format_foreign_key($row)))));
|
62 |
<input type="hidden" name="change-js" value="">
|
63 |
<noscript><p><input type="submit" name="change" value="<?php echo lang('Change'); ?>"></noscript>
|
64 |
<table cellspacing="0">
|
65 |
+
<thead><tr><th id="label-source"><?php echo lang('Source'); ?><th id="label-target"><?php echo lang('Target'); ?></thead>
|
66 |
<?php
|
67 |
$j = 0;
|
68 |
foreach ($row["source"] as $key => $val) {
|
69 |
echo "<tr>";
|
70 |
+
echo "<td>" . html_select("source[" . (+$key) . "]", array(-1 => "") + $source, $val, ($j == count($row["source"]) - 1 ? "foreignAddRow(this);" : 1), "label-source");
|
71 |
+
echo "<td>" . html_select("target[" . (+$key) . "]", $target, $row["target"][$key], 1, "label-target");
|
72 |
$j++;
|
73 |
}
|
74 |
?>
|
adminer/adminer/adminer/include/adminer.inc.php
CHANGED
@@ -110,7 +110,7 @@ focus(document.getElementById('username'));
|
|
110 |
function login($login, $password) {
|
111 |
global $jush;
|
112 |
if ($jush == "sqlite") {
|
113 |
-
return lang('Implement %s method to use SQLite.', 'login()');
|
114 |
}
|
115 |
return true;
|
116 |
}
|
@@ -197,6 +197,15 @@ focus(document.getElementById('username'));
|
|
197 |
;
|
198 |
}
|
199 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
/** Description of a row in a table
|
201 |
* @param string
|
202 |
* @return string SQL expression, empty string for no description
|
@@ -232,7 +241,10 @@ focus(document.getElementById('username'));
|
|
232 |
function selectVal($val, $link, $field, $original) {
|
233 |
$return = ($val === null ? "<i>NULL</i>" : (preg_match("~char|binary~", $field["type"]) && !preg_match("~var~", $field["type"]) ? "<code>$val</code>" : $val));
|
234 |
if (preg_match('~blob|bytea|raw|file~', $field["type"]) && !is_utf8($val)) {
|
235 |
-
$return = lang('%d byte(s)', strlen($original));
|
|
|
|
|
|
|
236 |
}
|
237 |
return ($link ? "<a href='" . h($link) . "'" . (is_url($link) ? " rel='noreferrer'" : "") . ">$return</a>" : $return);
|
238 |
}
|
@@ -246,6 +258,45 @@ focus(document.getElementById('username'));
|
|
246 |
return $val;
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
/** Print columns box in select
|
250 |
* @param array result of selectColumnsProcess()[0]
|
251 |
* @param array selectable columns
|
@@ -352,8 +403,9 @@ focus(document.getElementById('username'));
|
|
352 |
echo "var indexColumns = ";
|
353 |
$columns = array();
|
354 |
foreach ($indexes as $index) {
|
355 |
-
|
356 |
-
|
|
|
357 |
}
|
358 |
}
|
359 |
$columns[""] = 1;
|
@@ -806,11 +858,14 @@ focus(document.getElementById('username'));
|
|
806 |
$connection->select_db(DB);
|
807 |
$tables = table_status('', true);
|
808 |
}
|
809 |
-
|
810 |
-
?>
|
811 |
<script type="text/javascript" src="../externals/jush/modules/jush.js"></script>
|
812 |
<script type="text/javascript" src="../externals/jush/modules/jush-textarea.js"></script>
|
813 |
<script type="text/javascript" src="../externals/jush/modules/jush-txt.js"></script>
|
|
|
|
|
|
|
|
|
814 |
<script type="text/javascript" src="../externals/jush/modules/jush-<?php echo $jush; ?>.js"></script>
|
815 |
<script type="text/javascript">
|
816 |
<?php
|
@@ -886,17 +941,18 @@ bodyLoad('<?php echo (is_object($connection) ? substr($connection->server_info,
|
|
886 |
* @return null
|
887 |
*/
|
888 |
function tablesPrint($tables) {
|
889 |
-
echo "<
|
890 |
foreach ($tables as $table => $status) {
|
891 |
-
echo '<a href="' . h(ME) . 'select=' . urlencode($table) . '"' . bold($_GET["select"] == $table || $_GET["edit"] == $table, "select") . ">" . lang('select') . "</a> ";
|
892 |
$name = $this->tableName($status);
|
893 |
echo (support("table") || support("indexes")
|
894 |
? '<a href="' . h(ME) . 'table=' . urlencode($table) . '"'
|
895 |
-
. bold(in_array($table, array($_GET["table"], $_GET["create"], $_GET["indexes"], $_GET["foreign"], $_GET["trigger"])), (is_view($status) ? "view" : "
|
896 |
. " title='" . lang('Show structure') . "'>$name</a>"
|
897 |
: "<span>$name</span>"
|
898 |
-
) . "
|
899 |
}
|
|
|
900 |
}
|
901 |
|
902 |
}
|
110 |
function login($login, $password) {
|
111 |
global $jush;
|
112 |
if ($jush == "sqlite") {
|
113 |
+
return lang('<a href="https://www.adminer.org/en/extension/" target="_blank">Implement</a> %s method to use SQLite.', '<code>login()</code>');
|
114 |
}
|
115 |
return true;
|
116 |
}
|
197 |
;
|
198 |
}
|
199 |
|
200 |
+
/** Query printed in SQL command before execution
|
201 |
+
* @param string query to be executed
|
202 |
+
* @return string escaped query to be printed
|
203 |
+
*/
|
204 |
+
function sqlCommandQuery($query)
|
205 |
+
{
|
206 |
+
return shorten_utf8(trim($query), 1000);
|
207 |
+
}
|
208 |
+
|
209 |
/** Description of a row in a table
|
210 |
* @param string
|
211 |
* @return string SQL expression, empty string for no description
|
241 |
function selectVal($val, $link, $field, $original) {
|
242 |
$return = ($val === null ? "<i>NULL</i>" : (preg_match("~char|binary~", $field["type"]) && !preg_match("~var~", $field["type"]) ? "<code>$val</code>" : $val));
|
243 |
if (preg_match('~blob|bytea|raw|file~', $field["type"]) && !is_utf8($val)) {
|
244 |
+
$return = "<i>" . lang('%d byte(s)', strlen($original)) . "</i>";
|
245 |
+
}
|
246 |
+
if (preg_match('~json~', $field["type"])) {
|
247 |
+
$return = "<code class='jush-js'>$return</code>";
|
248 |
}
|
249 |
return ($link ? "<a href='" . h($link) . "'" . (is_url($link) ? " rel='noreferrer'" : "") . ">$return</a>" : $return);
|
250 |
}
|
258 |
return $val;
|
259 |
}
|
260 |
|
261 |
+
/** Print table structure in tabular format
|
262 |
+
* @param array data about individual fields
|
263 |
+
* @return null
|
264 |
+
*/
|
265 |
+
function tableStructurePrint($fields) {
|
266 |
+
echo "<table cellspacing='0'>\n";
|
267 |
+
echo "<thead><tr><th>" . lang('Column') . "<td>" . lang('Type') . (support("comment") ? "<td>" . lang('Comment') : "") . "</thead>\n";
|
268 |
+
foreach ($fields as $field) {
|
269 |
+
echo "<tr" . odd() . "><th>" . h($field["field"]);
|
270 |
+
echo "<td><span title='" . h($field["collation"]) . "'>" . h($field["full_type"]) . "</span>";
|
271 |
+
echo ($field["null"] ? " <i>NULL</i>" : "");
|
272 |
+
echo ($field["auto_increment"] ? " <i>" . lang('Auto Increment') . "</i>" : "");
|
273 |
+
echo (isset($field["default"]) ? " <span title='" . lang('Default value') . "'>[<b>" . h($field["default"]) . "</b>]</span>" : "");
|
274 |
+
echo (support("comment") ? "<td>" . nbsp($field["comment"]) : "");
|
275 |
+
echo "\n";
|
276 |
+
}
|
277 |
+
echo "</table>\n";
|
278 |
+
}
|
279 |
+
|
280 |
+
/** Print list of indexes on table in tabular format
|
281 |
+
* @param array data about all indexes on a table
|
282 |
+
* @return null
|
283 |
+
*/
|
284 |
+
function tableIndexesPrint($indexes) {
|
285 |
+
echo "<table cellspacing='0'>\n";
|
286 |
+
foreach ($indexes as $name => $index) {
|
287 |
+
ksort($index["columns"]); // enforce correct columns order
|
288 |
+
$print = array();
|
289 |
+
foreach ($index["columns"] as $key => $val) {
|
290 |
+
$print[] = "<i>" . h($val) . "</i>"
|
291 |
+
. ($index["lengths"][$key] ? "(" . $index["lengths"][$key] . ")" : "")
|
292 |
+
. ($index["descs"][$key] ? " DESC" : "")
|
293 |
+
;
|
294 |
+
}
|
295 |
+
echo "<tr title='" . h($name) . "'><th>$index[type]<td>" . implode(", ", $print) . "\n";
|
296 |
+
}
|
297 |
+
echo "</table>\n";
|
298 |
+
}
|
299 |
+
|
300 |
/** Print columns box in select
|
301 |
* @param array result of selectColumnsProcess()[0]
|
302 |
* @param array selectable columns
|
403 |
echo "var indexColumns = ";
|
404 |
$columns = array();
|
405 |
foreach ($indexes as $index) {
|
406 |
+
$current_key = reset($index["columns"]);
|
407 |
+
if ($index["type"] != "FULLTEXT" && $current_key) {
|
408 |
+
$columns[$current_key] = 1;
|
409 |
}
|
410 |
}
|
411 |
$columns[""] = 1;
|
858 |
$connection->select_db(DB);
|
859 |
$tables = table_status('', true);
|
860 |
}
|
861 |
+
?>
|
|
|
862 |
<script type="text/javascript" src="../externals/jush/modules/jush.js"></script>
|
863 |
<script type="text/javascript" src="../externals/jush/modules/jush-textarea.js"></script>
|
864 |
<script type="text/javascript" src="../externals/jush/modules/jush-txt.js"></script>
|
865 |
+
<script type="text/javascript" src="../externals/jush/modules/jush-js.js"></script>
|
866 |
+
<?php
|
867 |
+
if (support("sql")) {
|
868 |
+
?>
|
869 |
<script type="text/javascript" src="../externals/jush/modules/jush-<?php echo $jush; ?>.js"></script>
|
870 |
<script type="text/javascript">
|
871 |
<?php
|
941 |
* @return null
|
942 |
*/
|
943 |
function tablesPrint($tables) {
|
944 |
+
echo "<ul id='tables' onmouseover='menuOver(this, event);' onmouseout='menuOut(this);'>\n";
|
945 |
foreach ($tables as $table => $status) {
|
946 |
+
echo '<li><a href="' . h(ME) . 'select=' . urlencode($table) . '"' . bold($_GET["select"] == $table || $_GET["edit"] == $table, "select") . ">" . lang('select') . "</a> ";
|
947 |
$name = $this->tableName($status);
|
948 |
echo (support("table") || support("indexes")
|
949 |
? '<a href="' . h(ME) . 'table=' . urlencode($table) . '"'
|
950 |
+
. bold(in_array($table, array($_GET["table"], $_GET["create"], $_GET["indexes"], $_GET["foreign"], $_GET["trigger"])), (is_view($status) ? "view" : "structure"))
|
951 |
. " title='" . lang('Show structure') . "'>$name</a>"
|
952 |
: "<span>$name</span>"
|
953 |
+
) . "\n";
|
954 |
}
|
955 |
+
echo "</ul>\n";
|
956 |
}
|
957 |
|
958 |
}
|
adminer/adminer/adminer/include/auth.inc.php
CHANGED
@@ -120,7 +120,6 @@ function unset_permanent() {
|
|
120 |
*/
|
121 |
function auth_error($error) {
|
122 |
global $adminer, $has_token;
|
123 |
-
$error = h($error);
|
124 |
$session_name = session_name();
|
125 |
if (isset($_GET["username"])) {
|
126 |
header("HTTP/1.1 403 Forbidden"); // 401 requires sending WWW-Authenticate header
|
@@ -168,7 +167,7 @@ if (isset($_GET["username"])) {
|
|
168 |
$driver = new Min_Driver($connection);
|
169 |
|
170 |
if (!is_object($connection) || ($login = $adminer->login($_GET["username"], get_password())) !== true) {
|
171 |
-
auth_error((is_string($connection) ? $connection : (is_string($login) ? $login : lang('Invalid credentials.'))));
|
172 |
}
|
173 |
|
174 |
if ($auth && $_POST["token"]) {
|
120 |
*/
|
121 |
function auth_error($error) {
|
122 |
global $adminer, $has_token;
|
|
|
123 |
$session_name = session_name();
|
124 |
if (isset($_GET["username"])) {
|
125 |
header("HTTP/1.1 403 Forbidden"); // 401 requires sending WWW-Authenticate header
|
167 |
$driver = new Min_Driver($connection);
|
168 |
|
169 |
if (!is_object($connection) || ($login = $adminer->login($_GET["username"], get_password())) !== true) {
|
170 |
+
auth_error((is_string($connection) ? h($connection) : (is_string($login) ? $login : lang('Invalid credentials.'))));
|
171 |
}
|
172 |
|
173 |
if ($auth && $_POST["token"]) {
|
adminer/adminer/adminer/include/connect.inc.php
CHANGED
@@ -12,11 +12,12 @@ function connect_error() {
|
|
12 |
page_header(lang('Select database'), $error, false);
|
13 |
echo "<p class='links'>\n";
|
14 |
foreach (array(
|
15 |
-
'database' => lang('Create
|
16 |
'privileges' => lang('Privileges'),
|
17 |
'processlist' => lang('Process list'),
|
18 |
'variables' => lang('Variables'),
|
19 |
'status' => lang('Status'),
|
|
|
20 |
) as $key => $val) {
|
21 |
if (support($key)) {
|
22 |
echo "<a href='" . h(ME) . "$key='>$val</a>\n";
|
@@ -43,8 +44,9 @@ function connect_error() {
|
|
43 |
|
44 |
foreach ($databases as $db => $tables) {
|
45 |
$root = h(ME) . "db=" . urlencode($db);
|
46 |
-
|
47 |
-
echo "<
|
|
|
48 |
$collation = nbsp(db_collation($db, $collations));
|
49 |
echo "<td>" . (support("database") ? "<a href='$root" . ($scheme ? "&ns=" : "") . "&database=' title='" . lang('Alter database') . "'>$collation</a>" : $collation);
|
50 |
echo "<td align='right'><a href='$root&schema=' id='tables-" . h($db) . "' title='" . lang('Database schema') . "'>" . ($_GET["dbsize"] ? $tables : "?") . "</a>";
|
@@ -76,7 +78,7 @@ if (isset($_GET["import"])) {
|
|
76 |
$_GET["sql"] = $_GET["import"];
|
77 |
}
|
78 |
|
79 |
-
if (!(DB != "" ? $connection->select_db(DB) : isset($_GET["sql"]) || isset($_GET["dump"]) || isset($_GET["database"]) || isset($_GET["processlist"]) || isset($_GET["privileges"]) || isset($_GET["user"]) || isset($_GET["variables"]) || $_GET["script"] == "connect" || $_GET["script"] == "kill")) {
|
80 |
if (DB != "" || $_GET["refresh"]) {
|
81 |
restart_session();
|
82 |
set_session("dbs", null);
|
12 |
page_header(lang('Select database'), $error, false);
|
13 |
echo "<p class='links'>\n";
|
14 |
foreach (array(
|
15 |
+
'database' => lang('Create database'),
|
16 |
'privileges' => lang('Privileges'),
|
17 |
'processlist' => lang('Process list'),
|
18 |
'variables' => lang('Variables'),
|
19 |
'status' => lang('Status'),
|
20 |
+
'replication' => lang('Replication'),
|
21 |
) as $key => $val) {
|
22 |
if (support($key)) {
|
23 |
echo "<a href='" . h(ME) . "$key='>$val</a>\n";
|
44 |
|
45 |
foreach ($databases as $db => $tables) {
|
46 |
$root = h(ME) . "db=" . urlencode($db);
|
47 |
+
$id = h("Db-" . $db);
|
48 |
+
echo "<tr" . odd() . ">" . (support("database") ? "<td>" . checkbox("db[]", $db, in_array($db, (array) $_POST["db"]), "", "", "", $id) : "");
|
49 |
+
echo "<th><a href='$root' id='$db'>" . h($db) . "</a>";
|
50 |
$collation = nbsp(db_collation($db, $collations));
|
51 |
echo "<td>" . (support("database") ? "<a href='$root" . ($scheme ? "&ns=" : "") . "&database=' title='" . lang('Alter database') . "'>$collation</a>" : $collation);
|
52 |
echo "<td align='right'><a href='$root&schema=' id='tables-" . h($db) . "' title='" . lang('Database schema') . "'>" . ($_GET["dbsize"] ? $tables : "?") . "</a>";
|
78 |
$_GET["sql"] = $_GET["import"];
|
79 |
}
|
80 |
|
81 |
+
if (!(DB != "" ? $connection->select_db(DB) : isset($_GET["sql"]) || isset($_GET["dump"]) || isset($_GET["database"]) || isset($_GET["processlist"]) || isset($_GET["privileges"]) || isset($_GET["user"]) || isset($_GET["replication"]) || isset($_GET["variables"]) || $_GET["script"] == "connect" || $_GET["script"] == "kill")) {
|
82 |
if (DB != "" || $_GET["refresh"]) {
|
83 |
restart_session();
|
84 |
set_session("dbs", null);
|
adminer/adminer/adminer/include/editing.inc.php
CHANGED
@@ -141,7 +141,7 @@ function edit_type($key, $field, $collations, $foreign_keys = array()) {
|
|
141 |
global $structured_types, $types, $unsigned, $on_actions;
|
142 |
$type = $field["type"];
|
143 |
?>
|
144 |
-
<td><select name="<?php echo h($key); ?>[type]" class="type" onfocus="lastType = selectValue(this);" onchange="editingTypeChange(this);"<?php echo on_help("getTarget(event).value", 1);
|
145 |
if ($type && !isset($types[$type]) && !isset($foreign_keys[$type])) {
|
146 |
array_unshift($structured_types, $type);
|
147 |
}
|
@@ -150,7 +150,7 @@ if ($foreign_keys) {
|
|
150 |
}
|
151 |
echo optionlist($structured_types, $type);
|
152 |
?></select>
|
153 |
-
<td><input name="<?php echo h($key); ?>[length]" value="<?php echo h($field["length"]); ?>" size="3" onfocus="editingLengthFocus(this);"<?php echo (!$field["length"] && preg_match('~var(char|binary)$~', $type) ? " class='required'" : ""); ?> onchange="editingLengthChange(this);" onkeyup="this.onchange();"><td class="options"><?php //! type="number" with enabled JavaScript
|
154 |
echo "<select name='" . h($key) . "[collation]'" . (preg_match('~(char|text|enum|set)$~', $type) ? "" : " class='hidden'") . '><option value="">(' . lang('collation') . ')' . optionlist($collations, $field["collation"]) . '</select>';
|
155 |
echo ($unsigned ? "<select name='" . h($key) . "[unsigned]'" . (!$type || preg_match('~((^|[^o])int|float|double|decimal)$~', $type) ? "" : " class='hidden'") . '><option>' . optionlist($unsigned, $field["unsigned"]) . '</select>' : '');
|
156 |
echo (isset($field['on_update']) ? "<select name='" . h($key) . "[on_update]'" . (preg_match('~timestamp|datetime~', $type) ? "" : " class='hidden'") . '>' . optionlist(array("" => "(" . lang('ON UPDATE') . ")", "CURRENT_TIMESTAMP"), $field["on_update"]) . '</select>' : '');
|
@@ -238,20 +238,20 @@ function edit_fields($fields, $collations, $type = "TABLE", $foreign_keys = arra
|
|
238 |
?>
|
239 |
<thead><tr class="wrap">
|
240 |
<?php if ($type == "PROCEDURE") { ?><td> <?php } ?>
|
241 |
-
<th><?php echo ($type == "TABLE" ? lang('Column name') : lang('Parameter name')); ?>
|
242 |
-
<td><?php echo lang('Type'); ?><textarea id="enum-edit" rows="4" cols="12" wrap="off" style="display: none;" onblur="editingLengthBlur(this);"></textarea>
|
243 |
-
<td><?php echo lang('Length'); ?>
|
244 |
-
<td><?php echo lang('Options'); ?>
|
245 |
<?php if ($type == "TABLE") { ?>
|
246 |
-
<td>NULL
|
247 |
-
<td><input type="radio" name="auto_increment_col" value=""><acronym title="<?php echo lang('Auto Increment'); ?>">AI</acronym><?php echo doc_link(array(
|
248 |
'sql' => "example-auto-increment.html",
|
249 |
'sqlite' => "autoinc.html",
|
250 |
'pgsql' => "datatype.html#DATATYPE-SERIAL",
|
251 |
'mssql' => "ms186775.aspx",
|
252 |
)); ?>
|
253 |
-
<td><?php echo lang('Default value'); ?>
|
254 |
-
<?php echo (support("comment") ? "<td" . ($comments ? "" : " class='hidden'") . ">" . lang('Comment') : ""); ?>
|
255 |
<?php } ?>
|
256 |
<td><?php echo "<input type='image' class='icon' name='add[" . (support("move_col") ? 0 : count($fields)) . "]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>"; ?><script type="text/javascript">row_count = <?php echo count($fields); ?>;</script>
|
257 |
</thead>
|
@@ -264,21 +264,21 @@ function edit_fields($fields, $collations, $type = "TABLE", $foreign_keys = arra
|
|
264 |
?>
|
265 |
<tr<?php echo ($display ? "" : " style='display: none;'"); ?>>
|
266 |
<?php echo ($type == "PROCEDURE" ? "<td>" . html_select("fields[$i][inout]", explode("|", $inout), $field["inout"]) : ""); ?>
|
267 |
-
<th><?php if ($display) { ?><input name="fields[<?php echo $i; ?>][field]" value="<?php echo h($field["field"]); ?>" onchange="editingNameChange(this);<?php echo ($field["field"] != "" || count($fields) > 1 ? '' : ' editingAddRow(this);" onkeyup="if (this.value) editingAddRow(this);'); ?>" maxlength="64" autocapitalize="off"><?php } ?>
|
268 |
<input type="hidden" name="fields[<?php echo $i; ?>][orig]" value="<?php echo h($orig); ?>">
|
269 |
<?php edit_type("fields[$i]", $field, $collations, $foreign_keys); ?>
|
270 |
<?php if ($type == "TABLE") { ?>
|
271 |
-
<td><?php echo checkbox("fields[$i][null]", 1, $field["null"], "", "", "block"); ?>
|
272 |
-
<td><label class="block"><input type="radio" name="auto_increment_col" value="<?php echo $i; ?>"<?php if ($field["auto_increment"]) { ?> checked<?php } ?> onclick="var field = this.form['fields[' + this.value + '][field]']; if (!field.value) { field.value = 'id'; field.onchange(); }"></label><td><?php
|
273 |
-
echo checkbox("fields[$i][has_default]", 1, $field["has_default"]); ?><input name="fields[<?php echo $i; ?>][default]" value="<?php echo h($field["default"]); ?>" onkeyup="keyupChange.call(this);" onchange="this.previousSibling.checked = true;">
|
274 |
-
<?php echo (support("comment") ? "<td" . ($comments ? "" : " class='hidden'") . "><input name='fields[$i][comment]' value='" . h($field["comment"]) . "' maxlength='" . ($connection->server_info >= 5.5 ? 1024 : 255) . "'>" : ""); ?>
|
275 |
<?php } ?>
|
276 |
<?php
|
277 |
echo "<td>";
|
278 |
echo (support("move_col") ?
|
279 |
"<input type='image' class='icon' name='add[$i]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "' onclick='return !editingAddRow(this, 1);'> "
|
280 |
-
. "<input type='image' class='icon' name='up[$i]' src='../adminer/static/up.gif' alt='^' title='" . lang('Move up') . "'> "
|
281 |
-
. "<input type='image' class='icon' name='down[$i]' src='../adminer/static/down.gif' alt='v' title='" . lang('Move down') . "'> "
|
282 |
: "");
|
283 |
echo ($orig == "" || support("drop_col") ? "<input type='image' class='icon' name='drop_col[$i]' src='../adminer/static/cross.gif' alt='x' title='" . lang('Remove') . "' onclick=\"return !editingRemoveRow(this, 'fields\$1[field]');\">" : "");
|
284 |
echo "\n";
|
@@ -290,7 +290,6 @@ echo checkbox("fields[$i][has_default]", 1, $field["has_default"]); ?><input nam
|
|
290 |
* @return bool
|
291 |
*/
|
292 |
function process_fields(&$fields) {
|
293 |
-
ksort($fields);
|
294 |
$offset = 0;
|
295 |
if ($_POST["up"]) {
|
296 |
$last = 0;
|
@@ -432,9 +431,9 @@ function create_routine($routine, $row) {
|
|
432 |
}
|
433 |
|
434 |
/** Remove current user definer from SQL command
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
function remove_definer($query) {
|
439 |
return preg_replace('~^([A-Z =]+) DEFINER=`' . preg_replace('~@(.*)~', '`@`(%|\\1)', logged_user()) . '`~', '\\1', $query); //! proper escaping of user
|
440 |
}
|
141 |
global $structured_types, $types, $unsigned, $on_actions;
|
142 |
$type = $field["type"];
|
143 |
?>
|
144 |
+
<td><select name="<?php echo h($key); ?>[type]" class="type" onfocus="lastType = selectValue(this);" onchange="editingTypeChange(this);"<?php echo on_help("getTarget(event).value", 1); ?> aria-labelledby="label-type"><?php
|
145 |
if ($type && !isset($types[$type]) && !isset($foreign_keys[$type])) {
|
146 |
array_unshift($structured_types, $type);
|
147 |
}
|
150 |
}
|
151 |
echo optionlist($structured_types, $type);
|
152 |
?></select>
|
153 |
+
<td><input name="<?php echo h($key); ?>[length]" value="<?php echo h($field["length"]); ?>" size="3" onfocus="editingLengthFocus(this);"<?php echo (!$field["length"] && preg_match('~var(char|binary)$~', $type) ? " class='required'" : ""); ?> onchange="editingLengthChange(this);" onkeyup="this.onchange();" aria-labelledby="label-length"><td class="options"><?php //! type="number" with enabled JavaScript
|
154 |
echo "<select name='" . h($key) . "[collation]'" . (preg_match('~(char|text|enum|set)$~', $type) ? "" : " class='hidden'") . '><option value="">(' . lang('collation') . ')' . optionlist($collations, $field["collation"]) . '</select>';
|
155 |
echo ($unsigned ? "<select name='" . h($key) . "[unsigned]'" . (!$type || preg_match('~((^|[^o])int|float|double|decimal)$~', $type) ? "" : " class='hidden'") . '><option>' . optionlist($unsigned, $field["unsigned"]) . '</select>' : '');
|
156 |
echo (isset($field['on_update']) ? "<select name='" . h($key) . "[on_update]'" . (preg_match('~timestamp|datetime~', $type) ? "" : " class='hidden'") . '>' . optionlist(array("" => "(" . lang('ON UPDATE') . ")", "CURRENT_TIMESTAMP"), $field["on_update"]) . '</select>' : '');
|
238 |
?>
|
239 |
<thead><tr class="wrap">
|
240 |
<?php if ($type == "PROCEDURE") { ?><td> <?php } ?>
|
241 |
+
<th id="label-name"><?php echo ($type == "TABLE" ? lang('Column name') : lang('Parameter name')); ?>
|
242 |
+
<td id="label-type"><?php echo lang('Type'); ?><textarea id="enum-edit" rows="4" cols="12" wrap="off" style="display: none;" onblur="editingLengthBlur(this);"></textarea>
|
243 |
+
<td id="label-length"><?php echo lang('Length'); ?>
|
244 |
+
<td><?php echo lang('Options'); /* no label required, options have their own label */ ?>
|
245 |
<?php if ($type == "TABLE") { ?>
|
246 |
+
<td id="label-null">NULL
|
247 |
+
<td><input type="radio" name="auto_increment_col" value=""><acronym id="label-ai" title="<?php echo lang('Auto Increment'); ?>">AI</acronym><?php echo doc_link(array(
|
248 |
'sql' => "example-auto-increment.html",
|
249 |
'sqlite' => "autoinc.html",
|
250 |
'pgsql' => "datatype.html#DATATYPE-SERIAL",
|
251 |
'mssql' => "ms186775.aspx",
|
252 |
)); ?>
|
253 |
+
<td id="label-default"><?php echo lang('Default value'); ?>
|
254 |
+
<?php echo (support("comment") ? "<td id='label-comment'" . ($comments ? "" : " class='hidden'") . ">" . lang('Comment') : ""); ?>
|
255 |
<?php } ?>
|
256 |
<td><?php echo "<input type='image' class='icon' name='add[" . (support("move_col") ? 0 : count($fields)) . "]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "'>"; ?><script type="text/javascript">row_count = <?php echo count($fields); ?>;</script>
|
257 |
</thead>
|
264 |
?>
|
265 |
<tr<?php echo ($display ? "" : " style='display: none;'"); ?>>
|
266 |
<?php echo ($type == "PROCEDURE" ? "<td>" . html_select("fields[$i][inout]", explode("|", $inout), $field["inout"]) : ""); ?>
|
267 |
+
<th><?php if ($display) { ?><input name="fields[<?php echo $i; ?>][field]" value="<?php echo h($field["field"]); ?>" onchange="editingNameChange(this);<?php echo ($field["field"] != "" || count($fields) > 1 ? '' : ' editingAddRow(this);" onkeyup="if (this.value) editingAddRow(this);'); ?>" maxlength="64" autocapitalize="off" aria-labelledby="label-name"><?php } ?>
|
268 |
<input type="hidden" name="fields[<?php echo $i; ?>][orig]" value="<?php echo h($orig); ?>">
|
269 |
<?php edit_type("fields[$i]", $field, $collations, $foreign_keys); ?>
|
270 |
<?php if ($type == "TABLE") { ?>
|
271 |
+
<td><?php echo checkbox("fields[$i][null]", 1, $field["null"], "", "", "block", "label-null"); ?>
|
272 |
+
<td><label class="block"><input type="radio" name="auto_increment_col" value="<?php echo $i; ?>"<?php if ($field["auto_increment"]) { ?> checked<?php } ?> onclick="var field = this.form['fields[' + this.value + '][field]']; if (!field.value) { field.value = 'id'; field.onchange(); }" aria-labelledby="label-ai"></label><td><?php
|
273 |
+
echo checkbox("fields[$i][has_default]", 1, $field["has_default"], "", "", "", "label-default"); ?><input name="fields[<?php echo $i; ?>][default]" value="<?php echo h($field["default"]); ?>" onkeyup="keyupChange.call(this);" onchange="this.previousSibling.checked = true;" aria-labelledby="label-default">
|
274 |
+
<?php echo (support("comment") ? "<td" . ($comments ? "" : " class='hidden'") . "><input name='fields[$i][comment]' value='" . h($field["comment"]) . "' maxlength='" . ($connection->server_info >= 5.5 ? 1024 : 255) . "' aria-labelledby='label-comment'>" : ""); ?>
|
275 |
<?php } ?>
|
276 |
<?php
|
277 |
echo "<td>";
|
278 |
echo (support("move_col") ?
|
279 |
"<input type='image' class='icon' name='add[$i]' src='../adminer/static/plus.gif' alt='+' title='" . lang('Add next') . "' onclick='return !editingAddRow(this, 1);'> "
|
280 |
+
. "<input type='image' class='icon' name='up[$i]' src='../adminer/static/up.gif' alt='^' title='" . lang('Move up') . "' onclick='return !editingMoveRow(this, 1);'> "
|
281 |
+
. "<input type='image' class='icon' name='down[$i]' src='../adminer/static/down.gif' alt='v' title='" . lang('Move down') . "' onclick='return !editingMoveRow(this, 0);'> "
|
282 |
: "");
|
283 |
echo ($orig == "" || support("drop_col") ? "<input type='image' class='icon' name='drop_col[$i]' src='../adminer/static/cross.gif' alt='x' title='" . lang('Remove') . "' onclick=\"return !editingRemoveRow(this, 'fields\$1[field]');\">" : "");
|
284 |
echo "\n";
|
290 |
* @return bool
|
291 |
*/
|
292 |
function process_fields(&$fields) {
|
|
|
293 |
$offset = 0;
|
294 |
if ($_POST["up"]) {
|
295 |
$last = 0;
|
431 |
}
|
432 |
|
433 |
/** Remove current user definer from SQL command
|
434 |
+
* @param string
|
435 |
+
* @return string
|
436 |
+
*/
|
437 |
function remove_definer($query) {
|
438 |
return preg_replace('~^([A-Z =]+) DEFINER=`' . preg_replace('~@(.*)~', '`@`(%|\\1)', logged_user()) . '`~', '\\1', $query); //! proper escaping of user
|
439 |
}
|
adminer/adminer/adminer/include/functions.inc.php
CHANGED
@@ -69,7 +69,7 @@ function remove_slashes($process, $filter = false) {
|
|
69 |
*/
|
70 |
function bracket_escape($idf, $back = false) {
|
71 |
// escape brackets inside name="x[]"
|
72 |
-
static $trans = array(':' => ':1', ']' => ':2', '[' => ':3');
|
73 |
return strtr($idf, ($back ? array_flip($trans) : $trans));
|
74 |
}
|
75 |
|
@@ -112,11 +112,13 @@ function nl_br($string) {
|
|
112 |
* @param string
|
113 |
* @param string
|
114 |
* @param string
|
|
|
115 |
* @return string
|
116 |
*/
|
117 |
-
function checkbox($name, $value, $checked, $label = "", $onclick = "", $class = "") {
|
118 |
$return = "<input type='checkbox' name='$name' value='" . h($value) . "'"
|
119 |
. ($checked ? " checked" : "")
|
|
|
120 |
. ($onclick ? ' onclick="' . h($onclick) . '"' : '')
|
121 |
. ">"
|
122 |
;
|
@@ -152,11 +154,15 @@ function optionlist($options, $selected = null, $use_keys = false) {
|
|
152 |
* @param array
|
153 |
* @param string
|
154 |
* @param string true for no onchange, false for radio
|
|
|
155 |
* @return string
|
156 |
*/
|
157 |
-
function html_select($name, $options, $value = "", $onchange = true) {
|
158 |
if ($onchange) {
|
159 |
-
return "<select name='" . h($name) . "'"
|
|
|
|
|
|
|
160 |
}
|
161 |
$return = "";
|
162 |
foreach ($options as $key => $val) {
|
@@ -237,7 +243,7 @@ function json_row($key, $val = null) {
|
|
237 |
echo "{";
|
238 |
}
|
239 |
if ($key != "") {
|
240 |
-
echo ($first ? "" : ",") . "\n\t\"" . addcslashes($key, "\r\n\"\\/") . '": ' . ($val !== null ? '"' . addcslashes($val, "\r\n\"\\/") . '"' : '
|
241 |
$first = false;
|
242 |
} else {
|
243 |
echo "\n}\n";
|
@@ -406,10 +412,10 @@ function where($where, $fields = array()) {
|
|
406 |
$key = bracket_escape($key, 1); // 1 - back
|
407 |
$column = escape_key($key);
|
408 |
$return[] = $column
|
409 |
-
. (
|
410 |
-
? " LIKE " . q(
|
411 |
: " = " . unconvert_field($fields[$key], q($val))
|
412 |
-
) // LIKE because of floats but slow with ints, in MS SQL because of text
|
413 |
; //! enum and set
|
414 |
if ($jush == "sql" && preg_match('~char|text~', $fields[$key]["type"]) && preg_match("~[^ -@]~", $val)) { // not just [a-z] to catch non-ASCII characters
|
415 |
$return[] = "$column = " . q($val) . " COLLATE " . charset($connection) . "_bin";
|
@@ -471,18 +477,12 @@ function convert_fields($columns, $fields, $select = array()) {
|
|
471 |
*/
|
472 |
function cookie($name, $value, $lifetime = 2592000) { // 2592000 - 30 days
|
473 |
global $HTTPS;
|
474 |
-
$
|
475 |
-
$
|
476 |
-
|
477 |
-
($
|
478 |
-
|
479 |
-
"",
|
480 |
-
$HTTPS
|
481 |
);
|
482 |
-
if (version_compare(PHP_VERSION, '5.2.0') >= 0) {
|
483 |
-
$params[] = true; // HttpOnly
|
484 |
-
}
|
485 |
-
return call_user_func_array('setcookie', $params);
|
486 |
}
|
487 |
|
488 |
/** Restart stopped session
|
@@ -744,7 +744,7 @@ function is_utf8($val) {
|
|
744 |
* @return string escaped string with appended ...
|
745 |
*/
|
746 |
function shorten_utf8($string, $length = 80, $suffix = "") {
|
747 |
-
if (!preg_match("(^(" . repeat_pattern("[\t\r\n -\x{
|
748 |
preg_match("(^(" . repeat_pattern("[\t\r\n -~]", $length) . ")($)?)", $string, $match);
|
749 |
}
|
750 |
return h($match[1]) . $suffix . (isset($match[2]) ? "" : "<i>...</i>");
|
@@ -884,6 +884,9 @@ function input($field, $value, $function) {
|
|
884 |
$input = $adminer->editInput($_GET["edit"], $field, $attrs, $value); // usage in call is without a table
|
885 |
if ($input != "") {
|
886 |
echo $input;
|
|
|
|
|
|
|
887 |
} elseif ($field["type"] == "set") { //! 64 bits
|
888 |
preg_match_all("~'((?:[^']|'')*)'~", $field["length"], $matches);
|
889 |
foreach ($matches[1] as $i => $val) {
|
@@ -901,7 +904,7 @@ function input($field, $value, $function) {
|
|
901 |
$attrs .= " cols='30' rows='$rows'" . ($rows == 1 ? " style='height: 1.2em;'" : ""); // 1.2em - line-height
|
902 |
}
|
903 |
echo "<textarea$attrs>" . h($value) . '</textarea>';
|
904 |
-
} elseif ($function == "json") {
|
905 |
echo "<textarea$attrs cols='50' rows='12' class='jush-js'>" . h($value) . '</textarea>';
|
906 |
} else {
|
907 |
// int(3) is only a display hint
|
@@ -911,8 +914,8 @@ function input($field, $value, $function) {
|
|
911 |
}
|
912 |
// type='date' and type='time' display localized value which may be confusing, type='datetime' uses 'T' as date and time separator
|
913 |
echo "<input"
|
914 |
-
. ((!$has_function || $function === "") && preg_match('~(?<!o)int~', $field["type"]) ? " type='number'" : "")
|
915 |
-
. " value='" . h($value) . "'" . ($maxlength ? " maxlength='$maxlength'" : "")
|
916 |
. (preg_match('~char|binary~', $field["type"]) && $maxlength > 20 ? " size='40'" : "")
|
917 |
. "$attrs>"
|
918 |
;
|
@@ -1135,7 +1138,7 @@ function select_value($val, $link, $field, $text_length) {
|
|
1135 |
$link = "mailto:$val";
|
1136 |
}
|
1137 |
if ($protocol = is_url($val)) {
|
1138 |
-
$link = (($protocol == "http" && $HTTPS) || preg_match('~WebKit~i', $_SERVER["HTTP_USER_AGENT"]) // WebKit supports noreferrer since 2009
|
1139 |
? $val // HTTP links from HTTPS pages don't receive Referer automatically
|
1140 |
: "https://www.adminer.org/redirect/?url=" . urlencode($val) // intermediate page to hide Referer
|
1141 |
);
|
@@ -1181,7 +1184,7 @@ function is_url($string) {
|
|
1181 |
* @return bool
|
1182 |
*/
|
1183 |
function is_shortable($field) {
|
1184 |
-
return preg_match('~char|text|lob|geometry|point|linestring|polygon|string~', $field["type"]);
|
1185 |
}
|
1186 |
|
1187 |
/** Get query to compute number of found rows
|
@@ -1209,7 +1212,7 @@ function slow_query($query) {
|
|
1209 |
$db = $adminer->database();
|
1210 |
$timeout = $adminer->queryTimeout();
|
1211 |
if (support("kill") && is_object($connection2 = connect()) && ($db == "" || $connection2->select_db($db))) {
|
1212 |
-
$kill = $connection2->result(
|
1213 |
?>
|
1214 |
<script type="text/javascript">
|
1215 |
var timeout = setTimeout(function () {
|
69 |
*/
|
70 |
function bracket_escape($idf, $back = false) {
|
71 |
// escape brackets inside name="x[]"
|
72 |
+
static $trans = array(':' => ':1', ']' => ':2', '[' => ':3', '"' => ':4');
|
73 |
return strtr($idf, ($back ? array_flip($trans) : $trans));
|
74 |
}
|
75 |
|
112 |
* @param string
|
113 |
* @param string
|
114 |
* @param string
|
115 |
+
* @param string
|
116 |
* @return string
|
117 |
*/
|
118 |
+
function checkbox($name, $value, $checked, $label = "", $onclick = "", $class = "", $labelled_by = "") {
|
119 |
$return = "<input type='checkbox' name='$name' value='" . h($value) . "'"
|
120 |
. ($checked ? " checked" : "")
|
121 |
+
. ($labelled_by ? " aria-labelledby='$labelled_by'" : "")
|
122 |
. ($onclick ? ' onclick="' . h($onclick) . '"' : '')
|
123 |
. ">"
|
124 |
;
|
154 |
* @param array
|
155 |
* @param string
|
156 |
* @param string true for no onchange, false for radio
|
157 |
+
* @param string
|
158 |
* @return string
|
159 |
*/
|
160 |
+
function html_select($name, $options, $value = "", $onchange = true, $labelled_by = "") {
|
161 |
if ($onchange) {
|
162 |
+
return "<select name='" . h($name) . "'"
|
163 |
+
. (is_string($onchange) ? ' onchange="' . h($onchange) . '"' : "")
|
164 |
+
. ($labelled_by ? " aria-labelledby='$labelled_by'" : "")
|
165 |
+
. ">" . optionlist($options, $value) . "</select>";
|
166 |
}
|
167 |
$return = "";
|
168 |
foreach ($options as $key => $val) {
|
243 |
echo "{";
|
244 |
}
|
245 |
if ($key != "") {
|
246 |
+
echo ($first ? "" : ",") . "\n\t\"" . addcslashes($key, "\r\n\t\"\\/") . '": ' . ($val !== null ? '"' . addcslashes($val, "\r\n\"\\/") . '"' : 'null');
|
247 |
$first = false;
|
248 |
} else {
|
249 |
echo "\n}\n";
|
412 |
$key = bracket_escape($key, 1); // 1 - back
|
413 |
$column = escape_key($key);
|
414 |
$return[] = $column
|
415 |
+
. ($jush == "sql" && preg_match('~^[0-9]*\\.[0-9]*$~', $val) ? " LIKE " . q(addcslashes($val, "%_\\"))
|
416 |
+
: ($jush == "mssql" ? " LIKE " . q(preg_replace('~[_%[]~', '[\0]', $val))
|
417 |
: " = " . unconvert_field($fields[$key], q($val))
|
418 |
+
)) // LIKE because of floats but slow with ints, in MS SQL because of text
|
419 |
; //! enum and set
|
420 |
if ($jush == "sql" && preg_match('~char|text~', $fields[$key]["type"]) && preg_match("~[^ -@]~", $val)) { // not just [a-z] to catch non-ASCII characters
|
421 |
$return[] = "$column = " . q($val) . " COLLATE " . charset($connection) . "_bin";
|
477 |
*/
|
478 |
function cookie($name, $value, $lifetime = 2592000) { // 2592000 - 30 days
|
479 |
global $HTTPS;
|
480 |
+
return header("Set-Cookie: $name=" . urlencode($value)
|
481 |
+
. ($lifetime ? "; expires=" . gmdate("D, d M Y H:i:s", time() + $lifetime) . " GMT" : "")
|
482 |
+
. "; path=" . preg_replace('~\\?.*~', '', $_SERVER["REQUEST_URI"])
|
483 |
+
. ($HTTPS ? "; secure" : "")
|
484 |
+
. "; HttpOnly; SameSite=lax"
|
|
|
|
|
485 |
);
|
|
|
|
|
|
|
|
|
486 |
}
|
487 |
|
488 |
/** Restart stopped session
|
744 |
* @return string escaped string with appended ...
|
745 |
*/
|
746 |
function shorten_utf8($string, $length = 80, $suffix = "") {
|
747 |
+
if (!preg_match("(^(" . repeat_pattern("[\t\r\n -\x{10FFFF}]", $length) . ")($)?)u", $string, $match)) { // ~s causes trash in $match[2] under some PHP versions, (.|\n) is slow
|
748 |
preg_match("(^(" . repeat_pattern("[\t\r\n -~]", $length) . ")($)?)", $string, $match);
|
749 |
}
|
750 |
return h($match[1]) . $suffix . (isset($match[2]) ? "" : "<i>...</i>");
|
884 |
$input = $adminer->editInput($_GET["edit"], $field, $attrs, $value); // usage in call is without a table
|
885 |
if ($input != "") {
|
886 |
echo $input;
|
887 |
+
} elseif (preg_match('~bool~', $field["type"])) {
|
888 |
+
echo "<input type='hidden'$attrs value='0'>" .
|
889 |
+
"<input type='checkbox'" . (in_array(strtolower($value), array('1', 't', 'true', 'y', 'yes', 'on')) ? " checked='checked'" : "") . "$attrs value='1'>";
|
890 |
} elseif ($field["type"] == "set") { //! 64 bits
|
891 |
preg_match_all("~'((?:[^']|'')*)'~", $field["length"], $matches);
|
892 |
foreach ($matches[1] as $i => $val) {
|
904 |
$attrs .= " cols='30' rows='$rows'" . ($rows == 1 ? " style='height: 1.2em;'" : ""); // 1.2em - line-height
|
905 |
}
|
906 |
echo "<textarea$attrs>" . h($value) . '</textarea>';
|
907 |
+
} elseif ($function == "json" || preg_match('~^jsonb?$~', $field["type"])) {
|
908 |
echo "<textarea$attrs cols='50' rows='12' class='jush-js'>" . h($value) . '</textarea>';
|
909 |
} else {
|
910 |
// int(3) is only a display hint
|
914 |
}
|
915 |
// type='date' and type='time' display localized value which may be confusing, type='datetime' uses 'T' as date and time separator
|
916 |
echo "<input"
|
917 |
+
. ((!$has_function || $function === "") && preg_match('~(?<!o)int~', $field["type"]) && !preg_match('~\[\]~', $field["full_type"]) ? " type='number'" : "")
|
918 |
+
. " value='" . h($value) . "'" . ($maxlength ? " data-maxlength='$maxlength'" : "")
|
919 |
. (preg_match('~char|binary~', $field["type"]) && $maxlength > 20 ? " size='40'" : "")
|
920 |
. "$attrs>"
|
921 |
;
|
1138 |
$link = "mailto:$val";
|
1139 |
}
|
1140 |
if ($protocol = is_url($val)) {
|
1141 |
+
$link = (($protocol == "http" && $HTTPS) || preg_match('~WebKit|Firefox~i', $_SERVER["HTTP_USER_AGENT"]) // WebKit supports noreferrer since 2009, Firefox since version 38
|
1142 |
? $val // HTTP links from HTTPS pages don't receive Referer automatically
|
1143 |
: "https://www.adminer.org/redirect/?url=" . urlencode($val) // intermediate page to hide Referer
|
1144 |
);
|
1184 |
* @return bool
|
1185 |
*/
|
1186 |
function is_shortable($field) {
|
1187 |
+
return preg_match('~char|text|lob|geometry|point|linestring|polygon|string|bytea~', $field["type"]);
|
1188 |
}
|
1189 |
|
1190 |
/** Get query to compute number of found rows
|
1212 |
$db = $adminer->database();
|
1213 |
$timeout = $adminer->queryTimeout();
|
1214 |
if (support("kill") && is_object($connection2 = connect()) && ($db == "" || $connection2->select_db($db))) {
|
1215 |
+
$kill = $connection2->result(connection_id()); // MySQL and MySQLi can use thread_id but it's not in PDO_MySQL
|
1216 |
?>
|
1217 |
<script type="text/javascript">
|
1218 |
var timeout = setTimeout(function () {
|
adminer/adminer/adminer/include/pdo.inc.php
CHANGED
@@ -16,10 +16,10 @@ if (extension_loaded('pdo')) {
|
|
16 |
try {
|
17 |
parent::__construct($dsn, $username, $password);
|
18 |
} catch (Exception $ex) {
|
19 |
-
auth_error($ex->getMessage());
|
20 |
}
|
21 |
$this->setAttribute(13, array('Min_PDOStatement')); // 13 - PDO::ATTR_STATEMENT_CLASS
|
22 |
-
$this->server_info =
|
23 |
}
|
24 |
|
25 |
/*abstract function select_db($database);*/
|
16 |
try {
|
17 |
parent::__construct($dsn, $username, $password);
|
18 |
} catch (Exception $ex) {
|
19 |
+
auth_error(h($ex->getMessage()));
|
20 |
}
|
21 |
$this->setAttribute(13, array('Min_PDOStatement')); // 13 - PDO::ATTR_STATEMENT_CLASS
|
22 |
+
$this->server_info = @$this->getAttribute(4); // 4 - PDO::ATTR_SERVER_VERSION
|
23 |
}
|
24 |
|
25 |
/*abstract function select_db($database);*/
|
adminer/adminer/adminer/include/version.inc.php
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
<?php
|
2 |
-
$VERSION = "4.
|
1 |
<?php
|
2 |
+
$VERSION = "4.3.0";
|
adminer/adminer/adminer/index.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/** Adminer - Compact database management
|
3 |
* @link https://www.adminer.org/
|
4 |
-
* @author Jakub Vrana,
|
5 |
* @copyright 2007 Jakub Vrana
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
@@ -65,6 +65,8 @@ if (isset($_GET["download"])) {
|
|
65 |
include "./user.inc.php";
|
66 |
} elseif (isset($_GET["processlist"])) {
|
67 |
include "./processlist.inc.php";
|
|
|
|
|
68 |
} elseif (isset($_GET["select"])) {
|
69 |
include "./select.inc.php";
|
70 |
} elseif (isset($_GET["variables"])) {
|
1 |
<?php
|
2 |
/** Adminer - Compact database management
|
3 |
* @link https://www.adminer.org/
|
4 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
5 |
* @copyright 2007 Jakub Vrana
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
65 |
include "./user.inc.php";
|
66 |
} elseif (isset($_GET["processlist"])) {
|
67 |
include "./processlist.inc.php";
|
68 |
+
} elseif (isset($_GET["replication"])) {
|
69 |
+
include "./replication.inc.php";
|
70 |
} elseif (isset($_GET["select"])) {
|
71 |
include "./select.inc.php";
|
72 |
} elseif (isset($_GET["variables"])) {
|
adminer/adminer/adminer/indexes.inc.php
CHANGED
@@ -5,6 +5,9 @@ $table_status = table_status($TABLE, true);
|
|
5 |
if (preg_match('~MyISAM|M?aria' . ($connection->server_info >= 5.6 ? '|InnoDB' : '') . '~i', $table_status["Engine"])) {
|
6 |
$index_types[] = "FULLTEXT";
|
7 |
}
|
|
|
|
|
|
|
8 |
$indexes = indexes($TABLE);
|
9 |
$primary = array();
|
10 |
if ($jush == "mongo") { // doesn't support primary key
|
@@ -93,9 +96,9 @@ if (!$row) {
|
|
93 |
<form action="" method="post">
|
94 |
<table cellspacing="0" class="nowrap">
|
95 |
<thead><tr>
|
96 |
-
<th><?php echo lang('Index Type'); ?>
|
97 |
-
<th><input type="submit"
|
98 |
-
<th><?php echo lang('Name'); ?>
|
99 |
<th><noscript><input type='image' class='icon' name='add[0]' src='../adminer/static/plus.gif' alt='+' title='<?php echo lang('Add next'); ?>'></noscript>
|
100 |
</thead>
|
101 |
<?php
|
@@ -110,24 +113,24 @@ if ($primary) {
|
|
110 |
$j = 1;
|
111 |
foreach ($row["indexes"] as $index) {
|
112 |
if (!$_POST["drop_col"] || $j != key($_POST["drop_col"])) {
|
113 |
-
echo "<tr><td>" . html_select("indexes[$j][type]", array(-1 => "") + $index_types, $index["type"], ($j == count($row["indexes"]) ? "indexesAddRow(this);" : 1));
|
114 |
|
115 |
echo "<td>";
|
116 |
ksort($index["columns"]);
|
117 |
$i = 1;
|
118 |
foreach ($index["columns"] as $key => $column) {
|
119 |
echo "<span>" . select_input(
|
120 |
-
" name='indexes[$j][columns][$i]' onchange=\"" . ($i == count($index["columns"]) ? "indexesAddColumn" : "indexesChangeColumn") . "(this, '" . h(js_escape($jush == "sql" ? "" : $_GET["indexes"] . "_")) . "');\"",
|
121 |
($fields ? array_combine($fields, $fields) : $fields),
|
122 |
$column
|
123 |
);
|
124 |
-
echo ($jush == "sql" || $jush == "mssql" ? "<input type='number' name='indexes[$j][lengths][$i]' class='size' value='" . h($index["lengths"][$key]) . "'>" : "");
|
125 |
echo ($jush != "sql" ? checkbox("indexes[$j][descs][$i]", 1, $index["descs"][$key], lang('descending')) : "");
|
126 |
echo " </span>";
|
127 |
$i++;
|
128 |
}
|
129 |
|
130 |
-
echo "<td><input name='indexes[$j][name]' value='" . h($index["name"]) . "' autocapitalize='off'>\n";
|
131 |
echo "<td><input type='image' class='icon' name='drop_col[$j]' src='../adminer/static/cross.gif' alt='x' title='" . lang('Remove') . "' onclick=\"return !editingRemoveRow(this, 'indexes\$1[type]');\">\n";
|
132 |
}
|
133 |
$j++;
|
5 |
if (preg_match('~MyISAM|M?aria' . ($connection->server_info >= 5.6 ? '|InnoDB' : '') . '~i', $table_status["Engine"])) {
|
6 |
$index_types[] = "FULLTEXT";
|
7 |
}
|
8 |
+
if (preg_match('~MyISAM|M?aria' . ($connection->server_info >= 5.7 ? '|InnoDB' : '') . '~i', $table_status["Engine"])) {
|
9 |
+
$index_types[] = "SPATIAL";
|
10 |
+
}
|
11 |
$indexes = indexes($TABLE);
|
12 |
$primary = array();
|
13 |
if ($jush == "mongo") { // doesn't support primary key
|
96 |
<form action="" method="post">
|
97 |
<table cellspacing="0" class="nowrap">
|
98 |
<thead><tr>
|
99 |
+
<th id="label-type"><?php echo lang('Index Type'); ?>
|
100 |
+
<th><input type="submit" class="wayoff"><?php echo lang('Column (length)'); ?>
|
101 |
+
<th id="label-name"><?php echo lang('Name'); ?>
|
102 |
<th><noscript><input type='image' class='icon' name='add[0]' src='../adminer/static/plus.gif' alt='+' title='<?php echo lang('Add next'); ?>'></noscript>
|
103 |
</thead>
|
104 |
<?php
|
113 |
$j = 1;
|
114 |
foreach ($row["indexes"] as $index) {
|
115 |
if (!$_POST["drop_col"] || $j != key($_POST["drop_col"])) {
|
116 |
+
echo "<tr><td>" . html_select("indexes[$j][type]", array(-1 => "") + $index_types, $index["type"], ($j == count($row["indexes"]) ? "indexesAddRow(this);" : 1), "label-type");
|
117 |
|
118 |
echo "<td>";
|
119 |
ksort($index["columns"]);
|
120 |
$i = 1;
|
121 |
foreach ($index["columns"] as $key => $column) {
|
122 |
echo "<span>" . select_input(
|
123 |
+
" name='indexes[$j][columns][$i]' onchange=\"" . ($i == count($index["columns"]) ? "indexesAddColumn" : "indexesChangeColumn") . "(this, '" . h(js_escape($jush == "sql" ? "" : $_GET["indexes"] . "_")) . "');\" title='" . lang('Column') . "'",
|
124 |
($fields ? array_combine($fields, $fields) : $fields),
|
125 |
$column
|
126 |
);
|
127 |
+
echo ($jush == "sql" || $jush == "mssql" ? "<input type='number' name='indexes[$j][lengths][$i]' class='size' value='" . h($index["lengths"][$key]) . "' title='" . lang('Length') . "'>" : "");
|
128 |
echo ($jush != "sql" ? checkbox("indexes[$j][descs][$i]", 1, $index["descs"][$key], lang('descending')) : "");
|
129 |
echo " </span>";
|
130 |
$i++;
|
131 |
}
|
132 |
|
133 |
+
echo "<td><input name='indexes[$j][name]' value='" . h($index["name"]) . "' autocapitalize='off' aria-labelledby='label-name'>\n";
|
134 |
echo "<td><input type='image' class='icon' name='drop_col[$j]' src='../adminer/static/cross.gif' alt='x' title='" . lang('Remove') . "' onclick=\"return !editingRemoveRow(this, 'indexes\$1[type]');\">\n";
|
135 |
}
|
136 |
$j++;
|
adminer/adminer/adminer/lang/ar.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'كلمة المرور',
|
9 |
'Select database' => 'اختر قاعدة البيانات',
|
10 |
'Invalid database.' => 'قاعدة البيانات غير صالحة.',
|
11 |
-
'Create new database' => 'أنشئ فاعدة بيانات جديدة',
|
12 |
'Table has been dropped.' => 'تم حذف الجدول.',
|
13 |
'Table has been altered.' => 'تم تعديل الجدول.',
|
14 |
'Table has been created.' => 'تم إنشاء الجدول.',
|
8 |
'Password' => 'كلمة المرور',
|
9 |
'Select database' => 'اختر قاعدة البيانات',
|
10 |
'Invalid database.' => 'قاعدة البيانات غير صالحة.',
|
|
|
11 |
'Table has been dropped.' => 'تم حذف الجدول.',
|
12 |
'Table has been altered.' => 'تم تعديل الجدول.',
|
13 |
'Table has been created.' => 'تم إنشاء الجدول.',
|
adminer/adminer/adminer/lang/bg.inc.php
CHANGED
@@ -82,7 +82,6 @@ $translations = array(
|
|
82 |
'Use' => 'Избор',
|
83 |
'Select database' => 'Избор на база данни',
|
84 |
'Invalid database.' => 'Невалидна база данни.',
|
85 |
-
'Create new database' => 'Нова база данни',
|
86 |
'Database has been dropped.' => 'Базата данни беше премахната.',
|
87 |
'Databases have been dropped.' => 'Базите данни бяха премехнати.',
|
88 |
'Database has been created.' => 'Базата данни беше създадена.',
|
@@ -182,13 +181,12 @@ $translations = array(
|
|
182 |
'Values' => 'Стойности',
|
183 |
|
184 |
'View' => 'Изглед',
|
185 |
-
'Materialized
|
186 |
'View has been dropped.' => 'Изгледа беше премахнат.',
|
187 |
'View has been altered.' => 'Изгледа беше променен.',
|
188 |
'View has been created.' => 'Изгледа беше създаден.',
|
189 |
'Alter view' => 'Промяна на изглед',
|
190 |
'Create view' => 'Създаване на изглед',
|
191 |
-
'Create materialized view' => 'Създаване на запаметен изглед',
|
192 |
|
193 |
'Indexes' => 'Индекси',
|
194 |
'Indexes have been altered.' => 'Индексите бяха променени.',
|
82 |
'Use' => 'Избор',
|
83 |
'Select database' => 'Избор на база данни',
|
84 |
'Invalid database.' => 'Невалидна база данни.',
|
|
|
85 |
'Database has been dropped.' => 'Базата данни беше премахната.',
|
86 |
'Databases have been dropped.' => 'Базите данни бяха премехнати.',
|
87 |
'Database has been created.' => 'Базата данни беше създадена.',
|
181 |
'Values' => 'Стойности',
|
182 |
|
183 |
'View' => 'Изглед',
|
184 |
+
'Materialized view' => 'Запаметен изглед',
|
185 |
'View has been dropped.' => 'Изгледа беше премахнат.',
|
186 |
'View has been altered.' => 'Изгледа беше променен.',
|
187 |
'View has been created.' => 'Изгледа беше създаден.',
|
188 |
'Alter view' => 'Промяна на изглед',
|
189 |
'Create view' => 'Създаване на изглед',
|
|
|
190 |
|
191 |
'Indexes' => 'Индекси',
|
192 |
'Indexes have been altered.' => 'Индексите бяха променени.',
|
adminer/adminer/adminer/lang/bn.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'পাসওয়ার্ড',
|
9 |
'Select database' => 'ডাটাবেজ নির্বাচন করো',
|
10 |
'Invalid database.' => 'ভুল ডাটাবেজ।',
|
11 |
-
'Create new database' => 'নতুন ডাটাবেজ তৈরী করো',
|
12 |
'Table has been dropped.' => 'টেবিল মুছে ফেলা হয়েছে।',
|
13 |
'Table has been altered.' => 'টেবিল সম্পাদনা করা হয়েছে।',
|
14 |
'Table has been created.' => 'টেবিল তৈরী করা হয়েছে।',
|
8 |
'Password' => 'পাসওয়ার্ড',
|
9 |
'Select database' => 'ডাটাবেজ নির্বাচন করো',
|
10 |
'Invalid database.' => 'ভুল ডাটাবেজ।',
|
|
|
11 |
'Table has been dropped.' => 'টেবিল মুছে ফেলা হয়েছে।',
|
12 |
'Table has been altered.' => 'টেবিল সম্পাদনা করা হয়েছে।',
|
13 |
'Table has been created.' => 'টেবিল তৈরী করা হয়েছে।',
|
adminer/adminer/adminer/lang/bs.inc.php
CHANGED
@@ -77,7 +77,6 @@ $translations = array(
|
|
77 |
'Use' => 'Koristi',
|
78 |
'Select database' => 'Izaberite bazu',
|
79 |
'Invalid database.' => 'Neispravna baza podataka.',
|
80 |
-
'Create new database' => 'Napravi novu bazu podataka',
|
81 |
'Database has been dropped.' => 'Baza podataka je izbrisana.',
|
82 |
'Databases have been dropped.' => 'Baze podataka su izbrisane.',
|
83 |
'Database has been created.' => 'Baza podataka je spašena.',
|
77 |
'Use' => 'Koristi',
|
78 |
'Select database' => 'Izaberite bazu',
|
79 |
'Invalid database.' => 'Neispravna baza podataka.',
|
|
|
80 |
'Database has been dropped.' => 'Baza podataka je izbrisana.',
|
81 |
'Databases have been dropped.' => 'Baze podataka su izbrisane.',
|
82 |
'Database has been created.' => 'Baza podataka je spašena.',
|
adminer/adminer/adminer/lang/ca.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Contrasenya',
|
9 |
'Select database' => 'Selecciona base de dades',
|
10 |
'Invalid database.' => 'Base de dades invàlida.',
|
11 |
-
'Create new database' => 'Crea una nova base de dades',
|
12 |
'Table has been dropped.' => 'S\'ha suprimit la taula.',
|
13 |
'Table has been altered.' => 'S\'ha modificat la taula.',
|
14 |
'Table has been created.' => 'S\'ha creat la taula.',
|
8 |
'Password' => 'Contrasenya',
|
9 |
'Select database' => 'Selecciona base de dades',
|
10 |
'Invalid database.' => 'Base de dades invàlida.',
|
|
|
11 |
'Table has been dropped.' => 'S\'ha suprimit la taula.',
|
12 |
'Table has been altered.' => 'S\'ha modificat la taula.',
|
13 |
'Table has been created.' => 'S\'ha creat la taula.',
|
adminer/adminer/adminer/lang/cs.inc.php
CHANGED
@@ -11,7 +11,7 @@ $translations = array(
|
|
11 |
'Logged as: %s' => 'Přihlášen jako: %s',
|
12 |
'Logout successful.' => 'Odhlášení proběhlo v pořádku.',
|
13 |
'Invalid credentials.' => 'Neplatné přihlašovací údaje.',
|
14 |
-
'Implement %s method to use SQLite.' => 'Pro přihlášení k SQLite implementujte metodu %s.',
|
15 |
'Too many unsuccessful logins, try again in %d minute(s).' => array('Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minutu.', 'Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minuty.', 'Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minut.'),
|
16 |
'Master password expired. <a href="https://www.adminer.org/en/extension/" target="_blank">Implement</a> %s method to make it permanent.' => 'Platnost hlavního hesla vypršela. <a href="https://www.adminer.org/cs/extension/" target="_blank">Implementujte</a> metodu %s, aby platilo stále.',
|
17 |
'Language' => 'Jazyk',
|
@@ -45,6 +45,10 @@ $translations = array(
|
|
45 |
'Variables' => 'Proměnné',
|
46 |
'Status' => 'Stav',
|
47 |
|
|
|
|
|
|
|
|
|
48 |
'SQL command' => 'SQL příkaz',
|
49 |
'%d query(s) executed OK.' => array('%d příkaz proběhl v pořádku.', '%d příkazy proběhly v pořádku.', '%d příkazů proběhlo v pořádku.'),
|
50 |
'Query executed OK, %d row(s) affected.' => array('Příkaz proběhl v pořádku, byl změněn %d záznam.', 'Příkaz proběhl v pořádku, byly změněny %d záznamy.', 'Příkaz proběhl v pořádku, bylo změněno %d záznamů.'),
|
@@ -84,7 +88,6 @@ $translations = array(
|
|
84 |
'Use' => 'Vybrat',
|
85 |
'Select database' => 'Vybrat databázi',
|
86 |
'Invalid database.' => 'Nesprávná databáze.',
|
87 |
-
'Create new database' => 'Vytvořit novou databázi',
|
88 |
'Database has been dropped.' => 'Databáze byla odstraněna.',
|
89 |
'Databases have been dropped.' => 'Databáze byly odstraněny.',
|
90 |
'Database has been created.' => 'Databáze byla vytvořena.',
|
@@ -184,13 +187,12 @@ $translations = array(
|
|
184 |
'Values' => 'Hodnoty',
|
185 |
|
186 |
'View' => 'Pohled',
|
187 |
-
'Materialized
|
188 |
'View has been dropped.' => 'Pohled byl odstraněn.',
|
189 |
'View has been altered.' => 'Pohled byl změněn.',
|
190 |
'View has been created.' => 'Pohled byl vytvořen.',
|
191 |
'Alter view' => 'Pozměnit pohled',
|
192 |
'Create view' => 'Vytvořit pohled',
|
193 |
-
'Create materialized view' => 'Vytvořit materializovaný pohled',
|
194 |
|
195 |
'Indexes' => 'Indexy',
|
196 |
'Indexes have been altered.' => 'Indexy byly změněny.',
|
@@ -337,4 +339,8 @@ $translations = array(
|
|
337 |
'Type has been dropped.' => 'Typ byl odstraněn.',
|
338 |
'Type has been created.' => 'Typ byl vytvořen.',
|
339 |
'Alter type' => 'Pozměnit typ',
|
|
|
|
|
|
|
|
|
340 |
);
|
11 |
'Logged as: %s' => 'Přihlášen jako: %s',
|
12 |
'Logout successful.' => 'Odhlášení proběhlo v pořádku.',
|
13 |
'Invalid credentials.' => 'Neplatné přihlašovací údaje.',
|
14 |
+
'<a href="https://www.adminer.org/en/extension/" target="_blank">Implement</a> %s method to use SQLite.' => 'Pro přihlášení k SQLite <a href="https://www.adminer.org/cs/extension/" target="_blank">implementujte</a> metodu %s.',
|
15 |
'Too many unsuccessful logins, try again in %d minute(s).' => array('Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minutu.', 'Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minuty.', 'Příliš mnoho pokusů o přihlášení, zkuste to znovu za %d minut.'),
|
16 |
'Master password expired. <a href="https://www.adminer.org/en/extension/" target="_blank">Implement</a> %s method to make it permanent.' => 'Platnost hlavního hesla vypršela. <a href="https://www.adminer.org/cs/extension/" target="_blank">Implementujte</a> metodu %s, aby platilo stále.',
|
17 |
'Language' => 'Jazyk',
|
45 |
'Variables' => 'Proměnné',
|
46 |
'Status' => 'Stav',
|
47 |
|
48 |
+
'Replication' => 'Replikace',
|
49 |
+
'Master status' => 'Master status',
|
50 |
+
'Slave status' => 'Slave status',
|
51 |
+
|
52 |
'SQL command' => 'SQL příkaz',
|
53 |
'%d query(s) executed OK.' => array('%d příkaz proběhl v pořádku.', '%d příkazy proběhly v pořádku.', '%d příkazů proběhlo v pořádku.'),
|
54 |
'Query executed OK, %d row(s) affected.' => array('Příkaz proběhl v pořádku, byl změněn %d záznam.', 'Příkaz proběhl v pořádku, byly změněny %d záznamy.', 'Příkaz proběhl v pořádku, bylo změněno %d záznamů.'),
|
88 |
'Use' => 'Vybrat',
|
89 |
'Select database' => 'Vybrat databázi',
|
90 |
'Invalid database.' => 'Nesprávná databáze.',
|
|
|
91 |
'Database has been dropped.' => 'Databáze byla odstraněna.',
|
92 |
'Databases have been dropped.' => 'Databáze byly odstraněny.',
|
93 |
'Database has been created.' => 'Databáze byla vytvořena.',
|
187 |
'Values' => 'Hodnoty',
|
188 |
|
189 |
'View' => 'Pohled',
|
190 |
+
'Materialized view' => 'Materializovaný pohled',
|
191 |
'View has been dropped.' => 'Pohled byl odstraněn.',
|
192 |
'View has been altered.' => 'Pohled byl změněn.',
|
193 |
'View has been created.' => 'Pohled byl vytvořen.',
|
194 |
'Alter view' => 'Pozměnit pohled',
|
195 |
'Create view' => 'Vytvořit pohled',
|
|
|
196 |
|
197 |
'Indexes' => 'Indexy',
|
198 |
'Indexes have been altered.' => 'Indexy byly změněny.',
|
339 |
'Type has been dropped.' => 'Typ byl odstraněn.',
|
340 |
'Type has been created.' => 'Typ byl vytvořen.',
|
341 |
'Alter type' => 'Pozměnit typ',
|
342 |
+
|
343 |
+
'Replication' => null,
|
344 |
+
'Master status' => null,
|
345 |
+
'Slave status' => null,
|
346 |
);
|
adminer/adminer/adminer/lang/da.inc.php
CHANGED
@@ -68,7 +68,6 @@ $translations = array(
|
|
68 |
'Use' => 'Brug',
|
69 |
'Select database' => 'Vælg database',
|
70 |
'Invalid database.' => 'Ugyldig database.',
|
71 |
-
'Create new database' => 'Opret ny database',
|
72 |
'Database has been dropped.' => 'Databasen er blevet slettet.',
|
73 |
'Databases have been dropped.' => 'Databasene er blevet slettet.',
|
74 |
'Database has been created.' => 'Databasen er oprettet.',
|
68 |
'Use' => 'Brug',
|
69 |
'Select database' => 'Vælg database',
|
70 |
'Invalid database.' => 'Ugyldig database.',
|
|
|
71 |
'Database has been dropped.' => 'Databasen er blevet slettet.',
|
72 |
'Databases have been dropped.' => 'Databasene er blevet slettet.',
|
73 |
'Database has been created.' => 'Databasen er oprettet.',
|
adminer/adminer/adminer/lang/de.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Passwort',
|
9 |
'Select database' => 'Datenbank auswählen',
|
10 |
'Invalid database.' => 'Datenbank ungültig.',
|
11 |
-
'Create new database' => 'Datenbank erstellen',
|
12 |
'Table has been dropped.' => 'Tabelle wurde entfernt.',
|
13 |
'Table has been altered.' => 'Tabelle wurde geändert.',
|
14 |
'Table has been created.' => 'Tabelle wurde erstellt.',
|
8 |
'Password' => 'Passwort',
|
9 |
'Select database' => 'Datenbank auswählen',
|
10 |
'Invalid database.' => 'Datenbank ungültig.',
|
|
|
11 |
'Table has been dropped.' => 'Tabelle wurde entfernt.',
|
12 |
'Table has been altered.' => 'Tabelle wurde geändert.',
|
13 |
'Table has been created.' => 'Tabelle wurde erstellt.',
|
adminer/adminer/adminer/lang/el.inc.php
CHANGED
@@ -83,7 +83,6 @@ $translations = array(
|
|
83 |
'Use' => 'χρήση',
|
84 |
'Select database' => 'Επιλέξτε Β.Δ.',
|
85 |
'Invalid database.' => 'Άκυρη Β.Δ.',
|
86 |
-
'Create new database' => 'Δημιουργία νέας Β.Δ.',
|
87 |
'Database has been dropped.' => 'Η Β.Δ. διαγράφηκε.',
|
88 |
'Databases have been dropped.' => 'Οι Β.Δ. διαγράφηκαν.',
|
89 |
'Database has been created.' => 'Η Β.Δ. δημιουργήθηκε.',
|
@@ -183,13 +182,12 @@ $translations = array(
|
|
183 |
'Values' => 'Τιμές',
|
184 |
|
185 |
'View' => 'Προβολή',
|
186 |
-
'Materialized
|
187 |
'View has been dropped.' => 'Η προβολή διαγράφηκε.',
|
188 |
'View has been altered.' => 'Η προβολή τροποποιήθηκε.',
|
189 |
'View has been created.' => 'Η προβολή δημιουργήθηκε.',
|
190 |
'Alter view' => 'Τροποποίηση προβολής',
|
191 |
'Create view' => 'Δημιουργία προβολής',
|
192 |
-
'Create materialized view' => 'Δημιουργία Υλοποιημένης προβολής',
|
193 |
|
194 |
'Indexes' => 'Δείκτες',
|
195 |
'Indexes have been altered.' => 'Οι δείκτες τροποποιήθηκαν.',
|
83 |
'Use' => 'χρήση',
|
84 |
'Select database' => 'Επιλέξτε Β.Δ.',
|
85 |
'Invalid database.' => 'Άκυρη Β.Δ.',
|
|
|
86 |
'Database has been dropped.' => 'Η Β.Δ. διαγράφηκε.',
|
87 |
'Databases have been dropped.' => 'Οι Β.Δ. διαγράφηκαν.',
|
88 |
'Database has been created.' => 'Η Β.Δ. δημιουργήθηκε.',
|
182 |
'Values' => 'Τιμές',
|
183 |
|
184 |
'View' => 'Προβολή',
|
185 |
+
'Materialized view' => 'Υλοποιημένη προβολή',
|
186 |
'View has been dropped.' => 'Η προβολή διαγράφηκε.',
|
187 |
'View has been altered.' => 'Η προβολή τροποποιήθηκε.',
|
188 |
'View has been created.' => 'Η προβολή δημιουργήθηκε.',
|
189 |
'Alter view' => 'Τροποποίηση προβολής',
|
190 |
'Create view' => 'Δημιουργία προβολής',
|
|
|
191 |
|
192 |
'Indexes' => 'Δείκτες',
|
193 |
'Indexes have been altered.' => 'Οι δείκτες τροποποιήθηκαν.',
|
adminer/adminer/adminer/lang/es.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Contraseña',
|
9 |
'Select database' => 'Seleccionar Base de datos',
|
10 |
'Invalid database.' => 'Base de datos incorrecta.',
|
11 |
-
'Create new database' => 'Crear nueva base de datos',
|
12 |
'Table has been dropped.' => 'Tabla eliminada.',
|
13 |
'Table has been altered.' => 'Tabla modificada.',
|
14 |
'Table has been created.' => 'Tabla creada.',
|
8 |
'Password' => 'Contraseña',
|
9 |
'Select database' => 'Seleccionar Base de datos',
|
10 |
'Invalid database.' => 'Base de datos incorrecta.',
|
|
|
11 |
'Table has been dropped.' => 'Tabla eliminada.',
|
12 |
'Table has been altered.' => 'Tabla modificada.',
|
13 |
'Table has been created.' => 'Tabla creada.',
|
adminer/adminer/adminer/lang/et.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Parool',
|
9 |
'Select database' => 'Vali andmebaas',
|
10 |
'Invalid database.' => 'Tundmatu andmebaas.',
|
11 |
-
'Create new database' => 'Loo uus andmebaas',
|
12 |
'Table has been dropped.' => 'Tabel on edukalt kustutatud.',
|
13 |
'Table has been altered.' => 'Tabeli andmed on edukalt muudetud.',
|
14 |
'Table has been created.' => 'Tabel on edukalt loodud.',
|
8 |
'Password' => 'Parool',
|
9 |
'Select database' => 'Vali andmebaas',
|
10 |
'Invalid database.' => 'Tundmatu andmebaas.',
|
|
|
11 |
'Table has been dropped.' => 'Tabel on edukalt kustutatud.',
|
12 |
'Table has been altered.' => 'Tabeli andmed on edukalt muudetud.',
|
13 |
'Table has been created.' => 'Tabel on edukalt loodud.',
|
adminer/adminer/adminer/lang/fa.inc.php
CHANGED
@@ -81,7 +81,6 @@ $translations = array(
|
|
81 |
'Use' => 'استفاده',
|
82 |
'Select database' => 'انتخاب پایگاه داده',
|
83 |
'Invalid database.' => 'پایگاه داده نامعتبر.',
|
84 |
-
'Create new database' => 'ایجاد پایگاه داده جدید',
|
85 |
'Database has been dropped.' => 'پایگاه داده حذف شد.',
|
86 |
'Databases have been dropped.' => 'پایگاه های داده حذف شدند.',
|
87 |
'Database has been created.' => 'پایگاه داده ایجاد شد.',
|
@@ -181,13 +180,12 @@ $translations = array(
|
|
181 |
'Values' => 'مقادیر',
|
182 |
|
183 |
'View' => 'نمایش',
|
184 |
-
'Materialized
|
185 |
'View has been dropped.' => 'نمایش حذف شد.',
|
186 |
'View has been altered.' => 'نمایش ویرایش شد.',
|
187 |
'View has been created.' => 'نمایش ایجاد شد.',
|
188 |
'Alter view' => 'حذف نمایش',
|
189 |
'Create view' => 'ایجاد نمایش',
|
190 |
-
'Create materialized view' => 'ایجاد نمایه مادی',
|
191 |
|
192 |
'Indexes' => 'ایندکسها',
|
193 |
'Indexes have been altered.' => 'ایندکسها ویرایش شدند.',
|
81 |
'Use' => 'استفاده',
|
82 |
'Select database' => 'انتخاب پایگاه داده',
|
83 |
'Invalid database.' => 'پایگاه داده نامعتبر.',
|
|
|
84 |
'Database has been dropped.' => 'پایگاه داده حذف شد.',
|
85 |
'Databases have been dropped.' => 'پایگاه های داده حذف شدند.',
|
86 |
'Database has been created.' => 'پایگاه داده ایجاد شد.',
|
180 |
'Values' => 'مقادیر',
|
181 |
|
182 |
'View' => 'نمایش',
|
183 |
+
'Materialized view' => 'نمایه مادی',
|
184 |
'View has been dropped.' => 'نمایش حذف شد.',
|
185 |
'View has been altered.' => 'نمایش ویرایش شد.',
|
186 |
'View has been created.' => 'نمایش ایجاد شد.',
|
187 |
'Alter view' => 'حذف نمایش',
|
188 |
'Create view' => 'ایجاد نمایش',
|
|
|
189 |
|
190 |
'Indexes' => 'ایندکسها',
|
191 |
'Indexes have been altered.' => 'ایندکسها ویرایش شدند.',
|
adminer/adminer/adminer/lang/fi.inc.php
CHANGED
@@ -83,7 +83,6 @@ $translations = array(
|
|
83 |
'Use' => 'Käytä',
|
84 |
'Select database' => 'Valitse tietokanta',
|
85 |
'Invalid database.' => 'Tietokanta ei kelpaa.',
|
86 |
-
'Create new database' => 'Luo uusi tietokanta',
|
87 |
'Database has been dropped.' => 'Tietokanta on poistettu.',
|
88 |
'Databases have been dropped.' => 'Tietokannat on poistettu.',
|
89 |
'Database has been created.' => 'Tietokanta on luotu.',
|
@@ -183,13 +182,12 @@ $translations = array(
|
|
183 |
'Values' => 'Arvot',
|
184 |
|
185 |
'View' => 'Näkymä',
|
186 |
-
'Materialized
|
187 |
'View has been dropped.' => 'Näkymä on poistettu.',
|
188 |
'View has been altered.' => 'Näkymää on muutettu.',
|
189 |
'View has been created.' => 'Näkymä on luotu.',
|
190 |
'Alter view' => 'Muuta näkymää',
|
191 |
'Create view' => 'Luo näkymä',
|
192 |
-
'Create materialized view' => 'Luo materialisoitunut näkymä',
|
193 |
|
194 |
'Indexes' => 'Indeksit',
|
195 |
'Indexes have been altered.' => 'Indeksejä on muutettu.',
|
83 |
'Use' => 'Käytä',
|
84 |
'Select database' => 'Valitse tietokanta',
|
85 |
'Invalid database.' => 'Tietokanta ei kelpaa.',
|
|
|
86 |
'Database has been dropped.' => 'Tietokanta on poistettu.',
|
87 |
'Databases have been dropped.' => 'Tietokannat on poistettu.',
|
88 |
'Database has been created.' => 'Tietokanta on luotu.',
|
182 |
'Values' => 'Arvot',
|
183 |
|
184 |
'View' => 'Näkymä',
|
185 |
+
'Materialized view' => 'Materialisoitunut näkymä',
|
186 |
'View has been dropped.' => 'Näkymä on poistettu.',
|
187 |
'View has been altered.' => 'Näkymää on muutettu.',
|
188 |
'View has been created.' => 'Näkymä on luotu.',
|
189 |
'Alter view' => 'Muuta näkymää',
|
190 |
'Create view' => 'Luo näkymä',
|
|
|
191 |
|
192 |
'Indexes' => 'Indeksit',
|
193 |
'Indexes have been altered.' => 'Indeksejä on muutettu.',
|
adminer/adminer/adminer/lang/fr.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Mot de passe',
|
9 |
'Select database' => 'Sélectionner la base de données',
|
10 |
'Invalid database.' => 'Base de données invalide.',
|
11 |
-
'Create new database' => 'Créer une base de données',
|
12 |
'Table has been dropped.' => 'La table a été effacée.',
|
13 |
'Table has been altered.' => 'La table a été modifiée.',
|
14 |
'Table has been created.' => 'La table a été créée.',
|
@@ -283,8 +282,7 @@ $translations = array(
|
|
283 |
'Saving' => 'Enregistrement',
|
284 |
'yes' => 'oui',
|
285 |
'no' => 'non',
|
286 |
-
'Materialized
|
287 |
-
'Create materialized view' => 'Créer une vue matérialisée',
|
288 |
'%d / ' => '%d / ',
|
289 |
'Limit rows' => 'Limiter les lignes',
|
290 |
'Default value' => 'Valeur par défaut',
|
8 |
'Password' => 'Mot de passe',
|
9 |
'Select database' => 'Sélectionner la base de données',
|
10 |
'Invalid database.' => 'Base de données invalide.',
|
|
|
11 |
'Table has been dropped.' => 'La table a été effacée.',
|
12 |
'Table has been altered.' => 'La table a été modifiée.',
|
13 |
'Table has been created.' => 'La table a été créée.',
|
282 |
'Saving' => 'Enregistrement',
|
283 |
'yes' => 'oui',
|
284 |
'no' => 'non',
|
285 |
+
'Materialized view' => 'Vue matérialisée',
|
|
|
286 |
'%d / ' => '%d / ',
|
287 |
'Limit rows' => 'Limiter les lignes',
|
288 |
'Default value' => 'Valeur par défaut',
|
adminer/adminer/adminer/lang/gl.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Contrasinal',
|
9 |
'Select database' => 'Seleccionar Base de datos',
|
10 |
'Invalid database.' => 'Base de datos incorrecta.',
|
11 |
-
'Create new database' => 'Crear nova base de datos',
|
12 |
'Table has been dropped.' => 'Eliminouse a táboa.',
|
13 |
'Table has been altered.' => 'Modificouse a táboa.',
|
14 |
'Table has been created.' => 'Creouse a táboa.',
|
@@ -267,10 +266,9 @@ $translations = array(
|
|
267 |
'Edit all' => 'Editar todo',
|
268 |
'HH:MM:SS' => 'HH:MM:SS',
|
269 |
'Tables have been optimized.' => 'Optimizáronse as táboas',
|
270 |
-
'Materialized
|
271 |
'Vacuum' => 'Baleirar',
|
272 |
'Selected' => 'Selección',
|
273 |
-
'Create materialized view' => 'Crear vista materializada',
|
274 |
'File must be in UTF-8 encoding.' => 'O ficheiro ten que estar codificado con UTF-8',
|
275 |
'Modify' => 'Modificar',
|
276 |
'Loading' => 'Cargando',
|
8 |
'Password' => 'Contrasinal',
|
9 |
'Select database' => 'Seleccionar Base de datos',
|
10 |
'Invalid database.' => 'Base de datos incorrecta.',
|
|
|
11 |
'Table has been dropped.' => 'Eliminouse a táboa.',
|
12 |
'Table has been altered.' => 'Modificouse a táboa.',
|
13 |
'Table has been created.' => 'Creouse a táboa.',
|
266 |
'Edit all' => 'Editar todo',
|
267 |
'HH:MM:SS' => 'HH:MM:SS',
|
268 |
'Tables have been optimized.' => 'Optimizáronse as táboas',
|
269 |
+
'Materialized view' => 'Vista materializada',
|
270 |
'Vacuum' => 'Baleirar',
|
271 |
'Selected' => 'Selección',
|
|
|
272 |
'File must be in UTF-8 encoding.' => 'O ficheiro ten que estar codificado con UTF-8',
|
273 |
'Modify' => 'Modificar',
|
274 |
'Loading' => 'Cargando',
|
adminer/adminer/adminer/lang/hu.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Jelszó',
|
9 |
'Select database' => 'Adatbázis kiválasztása',
|
10 |
'Invalid database.' => 'Érvénytelen adatbázis.',
|
11 |
-
'Create new database' => 'Új adatbázis',
|
12 |
'Table has been dropped.' => 'A tábla eldobva.',
|
13 |
'Table has been altered.' => 'A tábla módosult.',
|
14 |
'Table has been created.' => 'A tábla létrejött.',
|
8 |
'Password' => 'Jelszó',
|
9 |
'Select database' => 'Adatbázis kiválasztása',
|
10 |
'Invalid database.' => 'Érvénytelen adatbázis.',
|
|
|
11 |
'Table has been dropped.' => 'A tábla eldobva.',
|
12 |
'Table has been altered.' => 'A tábla módosult.',
|
13 |
'Table has been created.' => 'A tábla létrejött.',
|
adminer/adminer/adminer/lang/id.inc.php
CHANGED
@@ -10,11 +10,11 @@ $translations = array(
|
|
10 |
'Logout' => 'Keluar',
|
11 |
'Logged as: %s' => 'Masuk sebagai: %s',
|
12 |
'Logout successful.' => 'Berhasil keluar.',
|
13 |
-
'Invalid credentials.' => 'Akses
|
14 |
'Language' => 'Bahasa',
|
15 |
-
'Invalid CSRF token. Send the form again.' => 'Token CSRF
|
16 |
-
'No extension' => 'Ekstensi tidak
|
17 |
-
'None of the supported PHP extensions (%s) are available.' => 'Ekstensi PHP yang didukung (%s) tidak
|
18 |
'Session support must be enabled.' => 'Dukungan sesi harus aktif.',
|
19 |
'Session expired, please login again.' => 'Sesi habis, silakan masuk lagi.',
|
20 |
'%s version: %s through PHP extension %s' => 'Versi %s: %s dengan ekstensi PHP %s',
|
@@ -44,26 +44,26 @@ $translations = array(
|
|
44 |
'SQL command' => 'Perintah SQL',
|
45 |
'%d query(s) executed OK.' => '%d kueri berhasil dijalankan.',
|
46 |
'Query executed OK, %d row(s) affected.' => 'Kueri berhasil, %d baris terpengaruh.',
|
47 |
-
'No commands to execute.' => '
|
48 |
-
'Error in query' => '
|
49 |
'Execute' => 'Jalankan',
|
50 |
-
'Stop on error' => 'Hentikan
|
51 |
-
'Show only errors' => 'Hanya tampilkan
|
52 |
// sprintf() format for time of the command
|
53 |
'%.3f s' => '%.3f s',
|
54 |
'History' => 'Riwayat',
|
55 |
'Clear' => 'Bersihkan',
|
56 |
-
'Edit all' => 'Edit semua',
|
57 |
|
|
|
58 |
'File upload' => 'Unggah berkas',
|
59 |
'From server' => 'Dari server',
|
60 |
'Webserver file %s' => 'Berkas server web %s',
|
61 |
'Run file' => 'Jalankan berkas',
|
62 |
-
'File does not exist.' => 'Berkas tidak
|
63 |
'File uploads are disabled.' => 'Pengunggahan berkas dimatikan.',
|
64 |
'Unable to upload a file.' => 'Tidak dapat mengunggah berkas.',
|
65 |
-
'Maximum allowed file size is %sB.' => 'Besar berkas yang diizinkan adalah %
|
66 |
-
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Data POST terlalu besar. Kurangi data atau perbesar
|
67 |
|
68 |
'Export' => 'Ekspor',
|
69 |
'Output' => 'Hasil',
|
@@ -76,19 +76,18 @@ $translations = array(
|
|
76 |
'database' => 'basis data',
|
77 |
'Use' => 'Gunakan',
|
78 |
'Select database' => 'Pilih basis data',
|
79 |
-
'Invalid database.' => 'Basis data
|
80 |
-
'Create new database' => 'Buat basis data baru',
|
81 |
'Database has been dropped.' => 'Basis data berhasil dihapus.',
|
82 |
'Databases have been dropped.' => 'Basis data berhasil dihapus.',
|
83 |
'Database has been created.' => 'Basis data berhasil dibuat.',
|
84 |
-
'Database has been renamed.' => 'Basis data berhasil diganti
|
85 |
'Database has been altered.' => 'Basis data berhasil diubah.',
|
86 |
'Alter database' => 'Ubah basis data',
|
87 |
'Create database' => 'Buat basis data',
|
88 |
'Database schema' => 'Skema basis data',
|
89 |
|
90 |
// link to current database schema layout
|
91 |
-
'Permanent link' => '
|
92 |
|
93 |
// thousands separator - must contain single byte
|
94 |
',' => '.',
|
@@ -113,9 +112,9 @@ $translations = array(
|
|
113 |
'Tables have been copied.' => 'Tabel berhasil disalin.',
|
114 |
|
115 |
'Routines' => 'Rutin',
|
116 |
-
'Routine has been called, %d row(s) affected.' =>
|
117 |
'Call' => 'Panggilan',
|
118 |
-
'Parameter name' => 'Nama
|
119 |
'Create procedure' => 'Buat prosedur',
|
120 |
'Create function' => 'Buat fungsi',
|
121 |
'Routine has been dropped.' => 'Rutin berhasil dihapus.',
|
@@ -123,14 +122,14 @@ $translations = array(
|
|
123 |
'Routine has been created.' => 'Rutin berhasil dibuat.',
|
124 |
'Alter function' => 'Ubah fungsi',
|
125 |
'Alter procedure' => 'Ubah prosedur',
|
126 |
-
'Return type' => 'Jenis
|
127 |
|
128 |
-
'Events' => '
|
129 |
-
'Event has been dropped.' => '
|
130 |
-
'Event has been altered.' => '
|
131 |
-
'Event has been created.' => '
|
132 |
-
'Alter event' => 'Ubah
|
133 |
-
'Create event' => 'Buat
|
134 |
'At given time' => 'Pada waktu tertentu',
|
135 |
'Every' => 'Setiap',
|
136 |
'Schedule' => 'Jadwal',
|
@@ -141,7 +140,7 @@ $translations = array(
|
|
141 |
'Tables' => 'Tabel',
|
142 |
'Tables and views' => 'Tabel dan tampilan',
|
143 |
'Table' => 'Tabel',
|
144 |
-
'No tables.' => '
|
145 |
'Alter table' => 'Ubah tabel',
|
146 |
'Create table' => 'Buat tabel',
|
147 |
'Table has been dropped.' => 'Tabel berhasil dihapus.',
|
@@ -156,16 +155,16 @@ $translations = array(
|
|
156 |
'Column name' => 'Nama kolom',
|
157 |
'Type' => 'Jenis',
|
158 |
'Length' => 'Panjang',
|
159 |
-
'Auto Increment' => '
|
160 |
'Options' => 'Opsi',
|
161 |
'Comment' => 'Komentar',
|
162 |
'Default values' => 'Nilai bawaan',
|
163 |
'Drop' => 'Hapus',
|
164 |
-
'Are you sure?' => 'Anda yakin',
|
165 |
'Move up' => 'Naik',
|
166 |
'Move down' => 'Turun',
|
167 |
'Remove' => 'Hapus',
|
168 |
-
'Maximum number of allowed fields exceeded. Please increase %s.' => '
|
169 |
|
170 |
'Partition by' => 'Partisi menurut',
|
171 |
'Partitions' => 'Partisi',
|
@@ -202,15 +201,15 @@ $translations = array(
|
|
202 |
'ON UPDATE' => 'ON UPDATE',
|
203 |
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Kolom sumber dan sasaran harus memiliki jenis data yang sama. Kolom sasaran harus memiliki indeks dan data rujukan harus ada.',
|
204 |
|
205 |
-
'Triggers' => '
|
206 |
-
'Add trigger' => 'Tambah
|
207 |
-
'Trigger has been dropped.' => '
|
208 |
-
'Trigger has been altered.' => '
|
209 |
-
'Trigger has been created.' => '
|
210 |
-
'Alter trigger' => 'Ubah
|
211 |
-
'Create trigger' => 'Buat
|
212 |
'Time' => 'Waktu',
|
213 |
-
'Event' => '
|
214 |
'Name' => 'Nama',
|
215 |
|
216 |
'select' => 'pilih',
|
@@ -221,14 +220,14 @@ $translations = array(
|
|
221 |
'Search' => 'Cari',
|
222 |
'anywhere' => 'di mana pun',
|
223 |
'Search data in tables' => 'Cari data dalam tabel',
|
224 |
-
'Sort' => '
|
225 |
'descending' => 'menurun',
|
226 |
-
'Limit' => '
|
227 |
'Text length' => 'Panjang teks',
|
228 |
'Action' => 'Tindakan',
|
229 |
'Full table scan' => 'Pindai tabel lengkap',
|
230 |
'Unable to select the table' => 'Gagal memilih tabel',
|
231 |
-
'No rows.' => '
|
232 |
'%d row(s)' => '%d baris',
|
233 |
'Page' => 'Halaman',
|
234 |
'last' => 'terakhir',
|
@@ -239,7 +238,7 @@ $translations = array(
|
|
239 |
'%d row(s) have been imported.' => '%d baris berhasil diimpor.',
|
240 |
|
241 |
// in-place editing in select
|
242 |
-
'Use edit link to modify this value.' => 'Gunakan
|
243 |
|
244 |
// %s can contain auto-increment value
|
245 |
'Item%s has been inserted.' => 'Entri%s berhasil disisipkan.',
|
@@ -247,30 +246,30 @@ $translations = array(
|
|
247 |
'Item has been updated.' => 'Entri berhasil diperbarui.',
|
248 |
'%d item(s) have been affected.' => '%d entri terpengaruh.',
|
249 |
'New item' => 'Entri baru',
|
250 |
-
'original' => '
|
251 |
// label for value '' in enum data type
|
252 |
'empty' => 'kosong',
|
253 |
-
'edit' => '
|
254 |
-
'Edit' => '
|
255 |
'Insert' => 'Sisipkan',
|
256 |
'Save' => 'Simpan',
|
257 |
-
'Save and continue edit' => 'Simpan dan
|
258 |
-
'Save and insert next' => 'Simpan dan sisipkan
|
259 |
'Clone' => 'Gandakan',
|
260 |
'Delete' => 'Hapus',
|
261 |
|
262 |
'E-mail' => 'Surel',
|
263 |
'From' => 'Dari',
|
264 |
-
'Subject' => '
|
265 |
'Attachments' => 'Lampiran',
|
266 |
'Send' => 'Kirim',
|
267 |
-
'%d e-mail(s) have been sent.' =>
|
268 |
|
269 |
// data type descriptions
|
270 |
'Numbers' => 'Angka',
|
271 |
'Date and time' => 'Tanggal dan waktu',
|
272 |
'Strings' => 'String',
|
273 |
-
'Binary' => '
|
274 |
'Lists' => 'Daftar',
|
275 |
'Network' => 'Jaringan',
|
276 |
'Geometry' => 'Geometri',
|
@@ -298,7 +297,7 @@ $translations = array(
|
|
298 |
'Schema has been created.' => 'Skema berhasil dibuat.',
|
299 |
'Schema has been altered.' => 'Skema berhasil diubah.',
|
300 |
'Schema' => 'Skema',
|
301 |
-
'Invalid schema.' => 'Skema
|
302 |
|
303 |
// PostgreSQL sequences support
|
304 |
'Sequences' => 'Deret',
|
10 |
'Logout' => 'Keluar',
|
11 |
'Logged as: %s' => 'Masuk sebagai: %s',
|
12 |
'Logout successful.' => 'Berhasil keluar.',
|
13 |
+
'Invalid credentials.' => 'Akses tidak sah.',
|
14 |
'Language' => 'Bahasa',
|
15 |
+
'Invalid CSRF token. Send the form again.' => 'Token CSRF tidak sah. Kirim ulang formulir.',
|
16 |
+
'No extension' => 'Ekstensi tidak ada',
|
17 |
+
'None of the supported PHP extensions (%s) are available.' => 'Ekstensi PHP yang didukung (%s) tidak ada.',
|
18 |
'Session support must be enabled.' => 'Dukungan sesi harus aktif.',
|
19 |
'Session expired, please login again.' => 'Sesi habis, silakan masuk lagi.',
|
20 |
'%s version: %s through PHP extension %s' => 'Versi %s: %s dengan ekstensi PHP %s',
|
44 |
'SQL command' => 'Perintah SQL',
|
45 |
'%d query(s) executed OK.' => '%d kueri berhasil dijalankan.',
|
46 |
'Query executed OK, %d row(s) affected.' => 'Kueri berhasil, %d baris terpengaruh.',
|
47 |
+
'No commands to execute.' => 'Tidak ada perintah untuk dijalankan.',
|
48 |
+
'Error in query' => 'Galat dalam kueri',
|
49 |
'Execute' => 'Jalankan',
|
50 |
+
'Stop on error' => 'Hentikan jika galat',
|
51 |
+
'Show only errors' => 'Hanya tampilkan galat',
|
52 |
// sprintf() format for time of the command
|
53 |
'%.3f s' => '%.3f s',
|
54 |
'History' => 'Riwayat',
|
55 |
'Clear' => 'Bersihkan',
|
|
|
56 |
|
57 |
+
'Edit all' => 'Sunting semua',
|
58 |
'File upload' => 'Unggah berkas',
|
59 |
'From server' => 'Dari server',
|
60 |
'Webserver file %s' => 'Berkas server web %s',
|
61 |
'Run file' => 'Jalankan berkas',
|
62 |
+
'File does not exist.' => 'Berkas tidak ada.',
|
63 |
'File uploads are disabled.' => 'Pengunggahan berkas dimatikan.',
|
64 |
'Unable to upload a file.' => 'Tidak dapat mengunggah berkas.',
|
65 |
+
'Maximum allowed file size is %sB.' => 'Besar berkas yang diizinkan adalah %sB.',
|
66 |
+
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Data POST terlalu besar. Kurangi data atau perbesar direktif konfigurasi %s.',
|
67 |
|
68 |
'Export' => 'Ekspor',
|
69 |
'Output' => 'Hasil',
|
76 |
'database' => 'basis data',
|
77 |
'Use' => 'Gunakan',
|
78 |
'Select database' => 'Pilih basis data',
|
79 |
+
'Invalid database.' => 'Basis data tidak sah.',
|
|
|
80 |
'Database has been dropped.' => 'Basis data berhasil dihapus.',
|
81 |
'Databases have been dropped.' => 'Basis data berhasil dihapus.',
|
82 |
'Database has been created.' => 'Basis data berhasil dibuat.',
|
83 |
+
'Database has been renamed.' => 'Basis data berhasil diganti namanya.',
|
84 |
'Database has been altered.' => 'Basis data berhasil diubah.',
|
85 |
'Alter database' => 'Ubah basis data',
|
86 |
'Create database' => 'Buat basis data',
|
87 |
'Database schema' => 'Skema basis data',
|
88 |
|
89 |
// link to current database schema layout
|
90 |
+
'Permanent link' => 'Pranala permanen',
|
91 |
|
92 |
// thousands separator - must contain single byte
|
93 |
',' => '.',
|
112 |
'Tables have been copied.' => 'Tabel berhasil disalin.',
|
113 |
|
114 |
'Routines' => 'Rutin',
|
115 |
+
'Routine has been called, %d row(s) affected.' => 'Rutin telah dipanggil, %d baris terpengaruh.',
|
116 |
'Call' => 'Panggilan',
|
117 |
+
'Parameter name' => 'Nama parameter',
|
118 |
'Create procedure' => 'Buat prosedur',
|
119 |
'Create function' => 'Buat fungsi',
|
120 |
'Routine has been dropped.' => 'Rutin berhasil dihapus.',
|
122 |
'Routine has been created.' => 'Rutin berhasil dibuat.',
|
123 |
'Alter function' => 'Ubah fungsi',
|
124 |
'Alter procedure' => 'Ubah prosedur',
|
125 |
+
'Return type' => 'Jenis pengembalian',
|
126 |
|
127 |
+
'Events' => 'Even',
|
128 |
+
'Event has been dropped.' => 'Even berhasil dihapus.',
|
129 |
+
'Event has been altered.' => 'Even berhasil diubah.',
|
130 |
+
'Event has been created.' => 'Even berhasil dibuat.',
|
131 |
+
'Alter event' => 'Ubah even',
|
132 |
+
'Create event' => 'Buat even',
|
133 |
'At given time' => 'Pada waktu tertentu',
|
134 |
'Every' => 'Setiap',
|
135 |
'Schedule' => 'Jadwal',
|
140 |
'Tables' => 'Tabel',
|
141 |
'Tables and views' => 'Tabel dan tampilan',
|
142 |
'Table' => 'Tabel',
|
143 |
+
'No tables.' => 'Tidak ada tabel.',
|
144 |
'Alter table' => 'Ubah tabel',
|
145 |
'Create table' => 'Buat tabel',
|
146 |
'Table has been dropped.' => 'Tabel berhasil dihapus.',
|
155 |
'Column name' => 'Nama kolom',
|
156 |
'Type' => 'Jenis',
|
157 |
'Length' => 'Panjang',
|
158 |
+
'Auto Increment' => 'Inkrementasi Otomatis',
|
159 |
'Options' => 'Opsi',
|
160 |
'Comment' => 'Komentar',
|
161 |
'Default values' => 'Nilai bawaan',
|
162 |
'Drop' => 'Hapus',
|
163 |
+
'Are you sure?' => 'Anda yakin?',
|
164 |
'Move up' => 'Naik',
|
165 |
'Move down' => 'Turun',
|
166 |
'Remove' => 'Hapus',
|
167 |
+
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Sudah lebih dumlah ruas maksimum yang diizinkan. Harap naikkan %s.',
|
168 |
|
169 |
'Partition by' => 'Partisi menurut',
|
170 |
'Partitions' => 'Partisi',
|
201 |
'ON UPDATE' => 'ON UPDATE',
|
202 |
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Kolom sumber dan sasaran harus memiliki jenis data yang sama. Kolom sasaran harus memiliki indeks dan data rujukan harus ada.',
|
203 |
|
204 |
+
'Triggers' => 'Pemicu',
|
205 |
+
'Add trigger' => 'Tambah pemicu',
|
206 |
+
'Trigger has been dropped.' => 'Pemicu berhasil dihapus.',
|
207 |
+
'Trigger has been altered.' => 'Pemicu berhasil diubah.',
|
208 |
+
'Trigger has been created.' => 'Pemicu berhasil dibuat.',
|
209 |
+
'Alter trigger' => 'Ubah pemicu',
|
210 |
+
'Create trigger' => 'Buat pemicu',
|
211 |
'Time' => 'Waktu',
|
212 |
+
'Event' => 'Even',
|
213 |
'Name' => 'Nama',
|
214 |
|
215 |
'select' => 'pilih',
|
220 |
'Search' => 'Cari',
|
221 |
'anywhere' => 'di mana pun',
|
222 |
'Search data in tables' => 'Cari data dalam tabel',
|
223 |
+
'Sort' => 'Urutkan',
|
224 |
'descending' => 'menurun',
|
225 |
+
'Limit' => 'Batas',
|
226 |
'Text length' => 'Panjang teks',
|
227 |
'Action' => 'Tindakan',
|
228 |
'Full table scan' => 'Pindai tabel lengkap',
|
229 |
'Unable to select the table' => 'Gagal memilih tabel',
|
230 |
+
'No rows.' => 'Tidak ada baris.',
|
231 |
'%d row(s)' => '%d baris',
|
232 |
'Page' => 'Halaman',
|
233 |
'last' => 'terakhir',
|
238 |
'%d row(s) have been imported.' => '%d baris berhasil diimpor.',
|
239 |
|
240 |
// in-place editing in select
|
241 |
+
'Use edit link to modify this value.' => 'Gunakan pranala suntingan untuk mengubah nilai ini.',
|
242 |
|
243 |
// %s can contain auto-increment value
|
244 |
'Item%s has been inserted.' => 'Entri%s berhasil disisipkan.',
|
246 |
'Item has been updated.' => 'Entri berhasil diperbarui.',
|
247 |
'%d item(s) have been affected.' => '%d entri terpengaruh.',
|
248 |
'New item' => 'Entri baru',
|
249 |
+
'original' => 'asli',
|
250 |
// label for value '' in enum data type
|
251 |
'empty' => 'kosong',
|
252 |
+
'edit' => 'sunting',
|
253 |
+
'Edit' => 'Sunting',
|
254 |
'Insert' => 'Sisipkan',
|
255 |
'Save' => 'Simpan',
|
256 |
+
'Save and continue edit' => 'Simpan dan lanjut menyunting',
|
257 |
+
'Save and insert next' => 'Simpan dan sisipkan berikutnya',
|
258 |
'Clone' => 'Gandakan',
|
259 |
'Delete' => 'Hapus',
|
260 |
|
261 |
'E-mail' => 'Surel',
|
262 |
'From' => 'Dari',
|
263 |
+
'Subject' => 'Judul',
|
264 |
'Attachments' => 'Lampiran',
|
265 |
'Send' => 'Kirim',
|
266 |
+
'%d e-mail(s) have been sent.' => '%d surel berhasil dikirim.',
|
267 |
|
268 |
// data type descriptions
|
269 |
'Numbers' => 'Angka',
|
270 |
'Date and time' => 'Tanggal dan waktu',
|
271 |
'Strings' => 'String',
|
272 |
+
'Binary' => 'Binari',
|
273 |
'Lists' => 'Daftar',
|
274 |
'Network' => 'Jaringan',
|
275 |
'Geometry' => 'Geometri',
|
297 |
'Schema has been created.' => 'Skema berhasil dibuat.',
|
298 |
'Schema has been altered.' => 'Skema berhasil diubah.',
|
299 |
'Schema' => 'Skema',
|
300 |
+
'Invalid schema.' => 'Skema tidak sah.',
|
301 |
|
302 |
// PostgreSQL sequences support
|
303 |
'Sequences' => 'Deret',
|
adminer/adminer/adminer/lang/it.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Password',
|
9 |
'Select database' => 'Seleziona database',
|
10 |
'Invalid database.' => 'Database non valido.',
|
11 |
-
'Create new database' => 'Crea nuovo database',
|
12 |
'Table has been dropped.' => 'Tabella eliminata.',
|
13 |
'Table has been altered.' => 'Tabella modificata.',
|
14 |
'Table has been created.' => 'Tabella creata.',
|
8 |
'Password' => 'Password',
|
9 |
'Select database' => 'Seleziona database',
|
10 |
'Invalid database.' => 'Database non valido.',
|
|
|
11 |
'Table has been dropped.' => 'Tabella eliminata.',
|
12 |
'Table has been altered.' => 'Tabella modificata.',
|
13 |
'Table has been created.' => 'Tabella creata.',
|
adminer/adminer/adminer/lang/ja.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'パスワード',
|
9 |
'Select database' => 'データベースを選択してください',
|
10 |
'Invalid database.' => '不正なデータベース',
|
11 |
-
'Create new database' => '新規にデータベースを作成',
|
12 |
'Table has been dropped.' => 'テーブルを削除しました',
|
13 |
'Table has been altered.' => 'テーブルを変更しました',
|
14 |
'Table has been created.' => 'テーブルを作成しました',
|
8 |
'Password' => 'パスワード',
|
9 |
'Select database' => 'データベースを選択してください',
|
10 |
'Invalid database.' => '不正なデータベース',
|
|
|
11 |
'Table has been dropped.' => 'テーブルを削除しました',
|
12 |
'Table has been altered.' => 'テーブルを変更しました',
|
13 |
'Table has been created.' => 'テーブルを作成しました',
|
adminer/adminer/adminer/lang/ko.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => '비밀번호',
|
9 |
'Select database' => '데이터베이스를 선택하십시오.',
|
10 |
'Invalid database.' => '잘못된 데이터베이스입니다.',
|
11 |
-
'Create new database' => '새 데이터베이스 만들기',
|
12 |
'Table has been dropped.' => '테이블을 삭제했습니다.',
|
13 |
'Table has been altered.' => '테이블을 변경했습니다.',
|
14 |
'Table has been created.' => '테이블을 만들었습니다.',
|
8 |
'Password' => '비밀번호',
|
9 |
'Select database' => '데이터베이스를 선택하십시오.',
|
10 |
'Invalid database.' => '잘못된 데이터베이스입니다.',
|
|
|
11 |
'Table has been dropped.' => '테이블을 삭제했습니다.',
|
12 |
'Table has been altered.' => '테이블을 변경했습니다.',
|
13 |
'Table has been created.' => '테이블을 만들었습니다.',
|
adminer/adminer/adminer/lang/lt.inc.php
CHANGED
@@ -77,7 +77,6 @@ $translations = array(
|
|
77 |
'Use' => 'Naudoti',
|
78 |
'Select database' => 'Pasirinkti duomenų bazę',
|
79 |
'Invalid database.' => 'Neteisinga duomenų bazė.',
|
80 |
-
'Create new database' => 'Sukurti naują duomenų bazę',
|
81 |
'Database has been dropped.' => 'Duomenų bazė panaikinta.',
|
82 |
'Databases have been dropped.' => 'Duomenų bazės panaikintos.',
|
83 |
'Database has been created.' => 'Duomenų bazė sukurta.',
|
77 |
'Use' => 'Naudoti',
|
78 |
'Select database' => 'Pasirinkti duomenų bazę',
|
79 |
'Invalid database.' => 'Neteisinga duomenų bazė.',
|
|
|
80 |
'Database has been dropped.' => 'Duomenų bazė panaikinta.',
|
81 |
'Databases have been dropped.' => 'Duomenų bazės panaikintos.',
|
82 |
'Database has been created.' => 'Duomenų bazė sukurta.',
|
adminer/adminer/adminer/lang/nl.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Wachtwoord',
|
9 |
'Select database' => 'Database selecteren',
|
10 |
'Invalid database.' => 'Ongeldige database.',
|
11 |
-
'Create new database' => 'Nieuwe database',
|
12 |
'Table has been dropped.' => 'Tabel verwijderd.',
|
13 |
'Table has been altered.' => 'Tabel aangepast.',
|
14 |
'Table has been created.' => 'Tabel aangemaakt.',
|
@@ -61,7 +60,7 @@ $translations = array(
|
|
61 |
'Action' => 'Acties',
|
62 |
'edit' => 'bewerk',
|
63 |
'Page' => 'Pagina',
|
64 |
-
'Query executed OK, %d row(s) affected.' => array('Query uitgevoerd, %d rij geraakt.', 'Query uitgevoerd, %d rijen
|
65 |
'Error in query' => 'Fout in query',
|
66 |
'Execute' => 'Uitvoeren',
|
67 |
'Table' => 'Tabel',
|
8 |
'Password' => 'Wachtwoord',
|
9 |
'Select database' => 'Database selecteren',
|
10 |
'Invalid database.' => 'Ongeldige database.',
|
|
|
11 |
'Table has been dropped.' => 'Tabel verwijderd.',
|
12 |
'Table has been altered.' => 'Tabel aangepast.',
|
13 |
'Table has been created.' => 'Tabel aangemaakt.',
|
60 |
'Action' => 'Acties',
|
61 |
'edit' => 'bewerk',
|
62 |
'Page' => 'Pagina',
|
63 |
+
'Query executed OK, %d row(s) affected.' => array('Query uitgevoerd, %d rij geraakt.', 'Query uitgevoerd, %d rijen beïnvloed.'),
|
64 |
'Error in query' => 'Fout in query',
|
65 |
'Execute' => 'Uitvoeren',
|
66 |
'Table' => 'Tabel',
|
adminer/adminer/adminer/lang/no.inc.php
CHANGED
@@ -68,7 +68,6 @@ $translations = array(
|
|
68 |
'Use' => 'Bruk',
|
69 |
'Select database' => 'Velg database',
|
70 |
'Invalid database.' => 'Ugyldig database.',
|
71 |
-
'Create new database' => 'Lag ny database',
|
72 |
'Database has been dropped.' => 'Databasen har blitt slettet.',
|
73 |
'Databases have been dropped.' => 'Databasene har blitt slettet.',
|
74 |
'Database has been created.' => 'Databasen er opprettet.',
|
68 |
'Use' => 'Bruk',
|
69 |
'Select database' => 'Velg database',
|
70 |
'Invalid database.' => 'Ugyldig database.',
|
|
|
71 |
'Database has been dropped.' => 'Databasen har blitt slettet.',
|
72 |
'Databases have been dropped.' => 'Databasene har blitt slettet.',
|
73 |
'Database has been created.' => 'Databasen er opprettet.',
|
adminer/adminer/adminer/lang/pl.inc.php
CHANGED
@@ -82,7 +82,6 @@ $translations = array(
|
|
82 |
'Use' => 'Wybierz',
|
83 |
'Select database' => 'Wybierz bazę danych',
|
84 |
'Invalid database.' => 'Nie znaleziono bazy danych.',
|
85 |
-
'Create new database' => 'Utwórz nową bazę danych',
|
86 |
'Database has been dropped.' => 'Baza danych została usunięta.',
|
87 |
'Databases have been dropped.' => 'Bazy danych zostały usunięte.',
|
88 |
'Database has been created.' => 'Baza danych została utworzona.',
|
@@ -182,13 +181,12 @@ $translations = array(
|
|
182 |
'Values' => 'Wartości',
|
183 |
|
184 |
'View' => 'Perspektywa',
|
185 |
-
'Materialized
|
186 |
'View has been dropped.' => 'Perspektywa została usunięta.',
|
187 |
'View has been altered.' => 'Perspektywa została zmieniona.',
|
188 |
'View has been created.' => 'Perspektywa została utworzona.',
|
189 |
'Alter view' => 'Zmień perspektywę',
|
190 |
'Create view' => 'Utwórz perspektywę',
|
191 |
-
'Create materialized view' => 'Utwórz zmaterializowaną perspektywę',
|
192 |
|
193 |
'Indexes' => 'Indeksy',
|
194 |
'Indexes have been altered.' => 'Indeksy zostały zmienione.',
|
82 |
'Use' => 'Wybierz',
|
83 |
'Select database' => 'Wybierz bazę danych',
|
84 |
'Invalid database.' => 'Nie znaleziono bazy danych.',
|
|
|
85 |
'Database has been dropped.' => 'Baza danych została usunięta.',
|
86 |
'Databases have been dropped.' => 'Bazy danych zostały usunięte.',
|
87 |
'Database has been created.' => 'Baza danych została utworzona.',
|
181 |
'Values' => 'Wartości',
|
182 |
|
183 |
'View' => 'Perspektywa',
|
184 |
+
'Materialized view' => 'Zmaterializowana perspektywa',
|
185 |
'View has been dropped.' => 'Perspektywa została usunięta.',
|
186 |
'View has been altered.' => 'Perspektywa została zmieniona.',
|
187 |
'View has been created.' => 'Perspektywa została utworzona.',
|
188 |
'Alter view' => 'Zmień perspektywę',
|
189 |
'Create view' => 'Utwórz perspektywę',
|
|
|
190 |
|
191 |
'Indexes' => 'Indeksy',
|
192 |
'Indexes have been altered.' => 'Indeksy zostały zmienione.',
|
adminer/adminer/adminer/lang/pt-br.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Senha',
|
9 |
'Select database' => 'Selecionar Base de dados',
|
10 |
'Invalid database.' => 'Base de dados inválida.',
|
11 |
-
'Create new database' => 'Criar nova base de dados',
|
12 |
'Table has been dropped.' => 'A Tabela foi eliminada.',
|
13 |
'Table has been altered.' => 'A Tabela foi alterada.',
|
14 |
'Table has been created.' => 'A Tabela foi criada.',
|
8 |
'Password' => 'Senha',
|
9 |
'Select database' => 'Selecionar Base de dados',
|
10 |
'Invalid database.' => 'Base de dados inválida.',
|
|
|
11 |
'Table has been dropped.' => 'A Tabela foi eliminada.',
|
12 |
'Table has been altered.' => 'A Tabela foi alterada.',
|
13 |
'Table has been created.' => 'A Tabela foi criada.',
|
adminer/adminer/adminer/lang/pt.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Senha',
|
9 |
'Select database' => 'Selecionar Base de dados',
|
10 |
'Invalid database.' => 'Base de dados inválida.',
|
11 |
-
'Create new database' => 'Criar nova base de dados',
|
12 |
'Table has been dropped.' => 'Tabela eliminada.',
|
13 |
'Table has been altered.' => 'Tabela modificada.',
|
14 |
'Table has been created.' => 'Tabela criada.',
|
8 |
'Password' => 'Senha',
|
9 |
'Select database' => 'Selecionar Base de dados',
|
10 |
'Invalid database.' => 'Base de dados inválida.',
|
|
|
11 |
'Table has been dropped.' => 'Tabela eliminada.',
|
12 |
'Table has been altered.' => 'Tabela modificada.',
|
13 |
'Table has been created.' => 'Tabela criada.',
|
adminer/adminer/adminer/lang/ro.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Parola',
|
9 |
'Select database' => 'Alege baza de date',
|
10 |
'Invalid database.' => 'Bază de deate invalidă.',
|
11 |
-
'Create new database' => 'Crează o bază de date nouă',
|
12 |
'Table has been dropped.' => 'Tabelul a fost șters.',
|
13 |
'Table has been altered.' => 'Tabelul a fost modificat.',
|
14 |
'Table has been created.' => 'Tabelul a fost creat.',
|
8 |
'Password' => 'Parola',
|
9 |
'Select database' => 'Alege baza de date',
|
10 |
'Invalid database.' => 'Bază de deate invalidă.',
|
|
|
11 |
'Table has been dropped.' => 'Tabelul a fost șters.',
|
12 |
'Table has been altered.' => 'Tabelul a fost modificat.',
|
13 |
'Table has been created.' => 'Tabelul a fost creat.',
|
adminer/adminer/adminer/lang/ru.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Пароль',
|
9 |
'Select database' => 'Выбрать базу данных',
|
10 |
'Invalid database.' => 'Плохая база данных.',
|
11 |
-
'Create new database' => 'Создать новую базу данных',
|
12 |
'Table has been dropped.' => 'Таблица была удалена.',
|
13 |
'Table has been altered.' => 'Таблица была изменена.',
|
14 |
'Table has been created.' => 'Таблица была создана.',
|
8 |
'Password' => 'Пароль',
|
9 |
'Select database' => 'Выбрать базу данных',
|
10 |
'Invalid database.' => 'Плохая база данных.',
|
|
|
11 |
'Table has been dropped.' => 'Таблица была удалена.',
|
12 |
'Table has been altered.' => 'Таблица была изменена.',
|
13 |
'Table has been created.' => 'Таблица была создана.',
|
adminer/adminer/adminer/lang/sk.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'Heslo',
|
9 |
'Select database' => 'Vybrať databázu',
|
10 |
'Invalid database.' => 'Nesprávna databáza.',
|
11 |
-
'Create new database' => 'Vytvoriť novú databázu',
|
12 |
'Table has been dropped.' => 'Tabuľka bola odstránená.',
|
13 |
'Table has been altered.' => 'Tabuľka bola zmenená.',
|
14 |
'Table has been created.' => 'Tabuľka bola vytvorená.',
|
8 |
'Password' => 'Heslo',
|
9 |
'Select database' => 'Vybrať databázu',
|
10 |
'Invalid database.' => 'Nesprávna databáza.',
|
|
|
11 |
'Table has been dropped.' => 'Tabuľka bola odstránená.',
|
12 |
'Table has been altered.' => 'Tabuľka bola zmenená.',
|
13 |
'Table has been created.' => 'Tabuľka bola vytvorená.',
|
adminer/adminer/adminer/lang/sl.inc.php
CHANGED
@@ -76,7 +76,6 @@ $translations = array(
|
|
76 |
'Use' => 'Uporabi',
|
77 |
'Select database' => 'Izberi bazo',
|
78 |
'Invalid database.' => 'Neveljavna baza.',
|
79 |
-
'Create new database' => 'Ustvari novo bazo',
|
80 |
'Database has been dropped.' => 'Baza je zavržena.',
|
81 |
'Databases have been dropped.' => 'Baze so zavržene.',
|
82 |
'Database has been created.' => 'Baza je ustvarjena.',
|
76 |
'Use' => 'Uporabi',
|
77 |
'Select database' => 'Izberi bazo',
|
78 |
'Invalid database.' => 'Neveljavna baza.',
|
|
|
79 |
'Database has been dropped.' => 'Baza je zavržena.',
|
80 |
'Databases have been dropped.' => 'Baze so zavržene.',
|
81 |
'Database has been created.' => 'Baza je ustvarjena.',
|
adminer/adminer/adminer/lang/sr.inc.php
CHANGED
@@ -77,7 +77,6 @@ $translations = array(
|
|
77 |
'Use' => 'Користи',
|
78 |
'Select database' => 'Изаберите базу',
|
79 |
'Invalid database.' => 'Неисправна база података.',
|
80 |
-
'Create new database' => 'Направи нову базу података',
|
81 |
'Database has been dropped.' => 'База података је избрисана.',
|
82 |
'Databases have been dropped.' => 'Базњ података су избрисане.',
|
83 |
'Database has been created.' => 'База података је креирана.',
|
77 |
'Use' => 'Користи',
|
78 |
'Select database' => 'Изаберите базу',
|
79 |
'Invalid database.' => 'Неисправна база података.',
|
|
|
80 |
'Database has been dropped.' => 'База података је избрисана.',
|
81 |
'Databases have been dropped.' => 'Базњ података су избрисане.',
|
82 |
'Database has been created.' => 'База података је креирана.',
|
adminer/adminer/adminer/lang/ta.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'கடவுச்சொல்',
|
9 |
'Select database' => 'தகவல்தளத்தை தேர்வு செய்',
|
10 |
'Invalid database.' => 'தகவல்தளம் சரியானதல்ல.',
|
11 |
-
'Create new database' => 'புதிய தகவல்தளத்தை உருவாக்கு',
|
12 |
'Table has been dropped.' => 'அட்டவணை நீக்கப்பட்டது.',
|
13 |
'Table has been altered.' => 'அட்டவணை மாற்றப்பட்டது.',
|
14 |
'Table has been created.' => 'அட்டவணை உருவாக்கப்பட்டது.',
|
8 |
'Password' => 'கடவுச்சொல்',
|
9 |
'Select database' => 'தகவல்தளத்தை தேர்வு செய்',
|
10 |
'Invalid database.' => 'தகவல்தளம் சரியானதல்ல.',
|
|
|
11 |
'Table has been dropped.' => 'அட்டவணை நீக்கப்பட்டது.',
|
12 |
'Table has been altered.' => 'அட்டவணை மாற்றப்பட்டது.',
|
13 |
'Table has been created.' => 'அட்டவணை உருவாக்கப்பட்டது.',
|
adminer/adminer/adminer/lang/th.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => 'รหัสผ่าน',
|
9 |
'Select database' => 'เลือกฐานข้อมูล',
|
10 |
'Invalid database.' => 'ฐานข้อมูลไม่ถูกต้อง.',
|
11 |
-
'Create new database' => 'สร้างฐานข้อมูลใหม่',
|
12 |
'Table has been dropped.' => 'ลบตารางแล้ว.',
|
13 |
'Table has been altered.' => 'แก้ไขตารางแล้ว.',
|
14 |
'Table has been created.' => 'สร้างตารางใหม่แล้ว.',
|
8 |
'Password' => 'รหัสผ่าน',
|
9 |
'Select database' => 'เลือกฐานข้อมูล',
|
10 |
'Invalid database.' => 'ฐานข้อมูลไม่ถูกต้อง.',
|
|
|
11 |
'Table has been dropped.' => 'ลบตารางแล้ว.',
|
12 |
'Table has been altered.' => 'แก้ไขตารางแล้ว.',
|
13 |
'Table has been created.' => 'สร้างตารางใหม่แล้ว.',
|
adminer/adminer/adminer/lang/tr.inc.php
CHANGED
@@ -77,7 +77,6 @@ $translations = array(
|
|
77 |
'Use' => 'Kullan',
|
78 |
'Select database' => 'Veri tabanı seç',
|
79 |
'Invalid database.' => 'Geçersiz veri tabanı.',
|
80 |
-
'Create new database' => 'Yeni veri tabanı oluştur',
|
81 |
'Database has been dropped.' => 'Veri tabanı silindi.',
|
82 |
'Databases have been dropped.' => 'Veritabanları silindi.',
|
83 |
'Database has been created.' => 'Veri tabanı oluşturuldu.',
|
77 |
'Use' => 'Kullan',
|
78 |
'Select database' => 'Veri tabanı seç',
|
79 |
'Invalid database.' => 'Geçersiz veri tabanı.',
|
|
|
80 |
'Database has been dropped.' => 'Veri tabanı silindi.',
|
81 |
'Databases have been dropped.' => 'Veritabanları silindi.',
|
82 |
'Database has been created.' => 'Veri tabanı oluşturuldu.',
|
adminer/adminer/adminer/lang/uk.inc.php
CHANGED
@@ -77,7 +77,6 @@ $translations = array(
|
|
77 |
'Use' => 'Обрати',
|
78 |
'Select database' => 'Обрати базу даних',
|
79 |
'Invalid database.' => 'Погана база даних.',
|
80 |
-
'Create new database' => 'Створити нову базу даних',
|
81 |
'Database has been dropped.' => 'Базу даних було видалено.',
|
82 |
'Databases have been dropped.' => 'Бази даних були видалені.',
|
83 |
'Database has been created.' => 'Базу даних було створено.',
|
77 |
'Use' => 'Обрати',
|
78 |
'Select database' => 'Обрати базу даних',
|
79 |
'Invalid database.' => 'Погана база даних.',
|
|
|
80 |
'Database has been dropped.' => 'Базу даних було видалено.',
|
81 |
'Databases have been dropped.' => 'Бази даних були видалені.',
|
82 |
'Database has been created.' => 'Базу даних було створено.',
|
adminer/adminer/adminer/lang/vi.inc.php
CHANGED
@@ -80,7 +80,6 @@ $translations = array(
|
|
80 |
'Use' => 'Sử dụng',
|
81 |
'Select database' => 'Chọn CSDL',
|
82 |
'Invalid database.' => 'CSDL sai.',
|
83 |
-
'Create new database' => 'Tạo CSDL',
|
84 |
'Database has been dropped.' => 'CSDL đã bị xoá.',
|
85 |
'Databases have been dropped.' => 'Các CSDL đã bị xoá.',
|
86 |
'Database has been created.' => 'Đã tạo CSDL.',
|
80 |
'Use' => 'Sử dụng',
|
81 |
'Select database' => 'Chọn CSDL',
|
82 |
'Invalid database.' => 'CSDL sai.',
|
|
|
83 |
'Database has been dropped.' => 'CSDL đã bị xoá.',
|
84 |
'Databases have been dropped.' => 'Các CSDL đã bị xoá.',
|
85 |
'Database has been created.' => 'Đã tạo CSDL.',
|
adminer/adminer/adminer/lang/xx.inc.php
CHANGED
@@ -11,7 +11,7 @@ $translations = array(
|
|
11 |
'Logged as: %s' => 'Xx',
|
12 |
'Logout successful.' => 'Xx.',
|
13 |
'Invalid credentials.' => 'Xx.',
|
14 |
-
'Implement %s method to use SQLite.' => 'Xx.',
|
15 |
'Too many unsuccessful logins, try again in %d minute(s).' => array('Xx.', 'Xx.'),
|
16 |
'Master password expired. <a href="https://www.adminer.org/en/extension/" target="_blank">Implement</a> %s method to make it permanent.' => 'Xx.',
|
17 |
'Language' => 'Xx',
|
@@ -45,6 +45,10 @@ $translations = array(
|
|
45 |
'Variables' => 'Xx',
|
46 |
'Status' => 'Xx',
|
47 |
|
|
|
|
|
|
|
|
|
48 |
'SQL command' => 'Xx',
|
49 |
'%d query(s) executed OK.' => array('Xx.', 'Xx.'),
|
50 |
'Query executed OK, %d row(s) affected.' => array('Xx.', 'Xx.'),
|
@@ -85,7 +89,6 @@ $translations = array(
|
|
85 |
'Use' => 'Xx',
|
86 |
'Select database' => 'Xx',
|
87 |
'Invalid database.' => 'Xx.',
|
88 |
-
'Create new database' => 'Xx',
|
89 |
'Database has been dropped.' => 'Xx.',
|
90 |
'Databases have been dropped.' => 'Xx.',
|
91 |
'Database has been created.' => 'Xx.',
|
@@ -185,13 +188,12 @@ $translations = array(
|
|
185 |
'Values' => 'Xx',
|
186 |
|
187 |
'View' => 'Xx',
|
188 |
-
'Materialized
|
189 |
'View has been dropped.' => 'Xx.',
|
190 |
'View has been altered.' => 'Xx.',
|
191 |
'View has been created.' => 'Xx.',
|
192 |
'Alter view' => 'Xx',
|
193 |
'Create view' => 'Xx',
|
194 |
-
'Create materialized view' => 'Xx',
|
195 |
|
196 |
'Indexes' => 'Xx',
|
197 |
'Indexes have been altered.' => 'Xx.',
|
11 |
'Logged as: %s' => 'Xx',
|
12 |
'Logout successful.' => 'Xx.',
|
13 |
'Invalid credentials.' => 'Xx.',
|
14 |
+
'<a href="https://www.adminer.org/en/extension/" target="_blank">Implement</a> %s method to use SQLite.' => 'Xx.',
|
15 |
'Too many unsuccessful logins, try again in %d minute(s).' => array('Xx.', 'Xx.'),
|
16 |
'Master password expired. <a href="https://www.adminer.org/en/extension/" target="_blank">Implement</a> %s method to make it permanent.' => 'Xx.',
|
17 |
'Language' => 'Xx',
|
45 |
'Variables' => 'Xx',
|
46 |
'Status' => 'Xx',
|
47 |
|
48 |
+
'Replication' => 'Xx',
|
49 |
+
'Master status' => 'Xx',
|
50 |
+
'Slave status' => 'Xx',
|
51 |
+
|
52 |
'SQL command' => 'Xx',
|
53 |
'%d query(s) executed OK.' => array('Xx.', 'Xx.'),
|
54 |
'Query executed OK, %d row(s) affected.' => array('Xx.', 'Xx.'),
|
89 |
'Use' => 'Xx',
|
90 |
'Select database' => 'Xx',
|
91 |
'Invalid database.' => 'Xx.',
|
|
|
92 |
'Database has been dropped.' => 'Xx.',
|
93 |
'Databases have been dropped.' => 'Xx.',
|
94 |
'Database has been created.' => 'Xx.',
|
188 |
'Values' => 'Xx',
|
189 |
|
190 |
'View' => 'Xx',
|
191 |
+
'Materialized view' => 'Xx',
|
192 |
'View has been dropped.' => 'Xx.',
|
193 |
'View has been altered.' => 'Xx.',
|
194 |
'View has been created.' => 'Xx.',
|
195 |
'Alter view' => 'Xx',
|
196 |
'Create view' => 'Xx',
|
|
|
197 |
|
198 |
'Indexes' => 'Xx',
|
199 |
'Indexes have been altered.' => 'Xx.',
|
adminer/adminer/adminer/lang/zh-tw.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => '密碼',
|
9 |
'Select database' => '選擇資料庫',
|
10 |
'Invalid database.' => '無效的資料庫。',
|
11 |
-
'Create new database' => '建立新資料庫',
|
12 |
'Table has been altered.' => '資料表已修改。',
|
13 |
'Table has been created.' => '資料表已修改。',
|
14 |
'Alter table' => '修改資料表',
|
8 |
'Password' => '密碼',
|
9 |
'Select database' => '選擇資料庫',
|
10 |
'Invalid database.' => '無效的資料庫。',
|
|
|
11 |
'Table has been altered.' => '資料表已修改。',
|
12 |
'Table has been created.' => '資料表已修改。',
|
13 |
'Alter table' => '修改資料表',
|
adminer/adminer/adminer/lang/zh.inc.php
CHANGED
@@ -8,7 +8,6 @@ $translations = array(
|
|
8 |
'Password' => '密码',
|
9 |
'Select database' => '选择数据库',
|
10 |
'Invalid database.' => '无效数据库。',
|
11 |
-
'Create new database' => '创建新数据库',
|
12 |
'Table has been dropped.' => '已删除表。',
|
13 |
'Table has been altered.' => '已修改表。',
|
14 |
'Table has been created.' => '已创建表。',
|
8 |
'Password' => '密码',
|
9 |
'Select database' => '选择数据库',
|
10 |
'Invalid database.' => '无效数据库。',
|
|
|
11 |
'Table has been dropped.' => '已删除表。',
|
12 |
'Table has been altered.' => '已修改表。',
|
13 |
'Table has been created.' => '已创建表。',
|
adminer/adminer/adminer/privileges.inc.php
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
<?php
|
2 |
page_header(lang('Privileges'));
|
3 |
|
|
|
|
|
4 |
$result = $connection->query("SELECT User, Host FROM mysql." . (DB == "" ? "user" : "db WHERE " . q(DB) . " LIKE Db") . " ORDER BY Host, User");
|
5 |
$grant = $result;
|
6 |
if (!$result) {
|
@@ -25,5 +27,3 @@ if (!$grant || DB != "") {
|
|
25 |
|
26 |
echo "</table>\n";
|
27 |
echo "</form>\n";
|
28 |
-
|
29 |
-
echo '<p class="links"><a href="' . h(ME) . 'user=">' . lang('Create user') . "</a>";
|
1 |
<?php
|
2 |
page_header(lang('Privileges'));
|
3 |
|
4 |
+
echo '<p class="links"><a href="' . h(ME) . 'user=">' . lang('Create user') . "</a>";
|
5 |
+
|
6 |
$result = $connection->query("SELECT User, Host FROM mysql." . (DB == "" ? "user" : "db WHERE " . q(DB) . " LIKE Db") . " ORDER BY Host, User");
|
7 |
$grant = $result;
|
8 |
if (!$result) {
|
27 |
|
28 |
echo "</table>\n";
|
29 |
echo "</form>\n";
|
|
|
|
adminer/adminer/adminer/replication.inc.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
page_header(lang('Replication'));
|
3 |
+
|
4 |
+
echo "<h3>" . lang('Master status') . doc_link(array("sql" => "show-master-status.html")) . "</h3>\n";
|
5 |
+
$master_replication_status = replication_status("MASTER");
|
6 |
+
if (!$master_replication_status) {
|
7 |
+
echo "<p class='message'>" . lang('No rows.') . "\n";
|
8 |
+
} else {
|
9 |
+
echo "<table cellspacing='0'>\n";
|
10 |
+
foreach ($master_replication_status[0] as $key => $val) {
|
11 |
+
echo "<tr>";
|
12 |
+
echo "<th>" . h($key);
|
13 |
+
echo "<td>" . nbsp($val);
|
14 |
+
}
|
15 |
+
echo "</table>\n";
|
16 |
+
}
|
17 |
+
|
18 |
+
$slave_replication_status = replication_status("SLAVE");
|
19 |
+
if ($slave_replication_status) {
|
20 |
+
echo "<h3>" . lang('Slave status') . doc_link(array("sql" => "show-slave-status.html")) . "</h3>\n";
|
21 |
+
foreach ($slave_replication_status[0] as $slave) {
|
22 |
+
echo "<table cellspacing='0'>\n";
|
23 |
+
foreach ($slave as $key => $val) {
|
24 |
+
echo "<tr>";
|
25 |
+
echo "<th>" . h($key);
|
26 |
+
echo "<td>" . nbsp($val);
|
27 |
+
}
|
28 |
+
echo "</table>\n";
|
29 |
+
}
|
30 |
+
}
|
adminer/adminer/adminer/select.inc.php
CHANGED
@@ -205,7 +205,7 @@ if ($_POST && !$error) {
|
|
205 |
}
|
206 |
$result = (!$rows || $driver->insertUpdate($TABLE, $rows, $primary));
|
207 |
if ($result) {
|
208 |
-
$driver->commit();
|
209 |
}
|
210 |
queries_redirect(remove_from_uri("page"), lang('%d row(s) have been imported.', $affected), $result);
|
211 |
$driver->rollback(); // after queries_redirect() to not overwrite error
|
@@ -298,7 +298,7 @@ if (!$columns && support("table")) {
|
|
298 |
$backward_keys = $adminer->backwardKeys($TABLE, $table_name);
|
299 |
|
300 |
echo "<table id='table' cellspacing='0' class='nowrap checkable' onclick='tableClick(event);' ondblclick='tableClick(event, true);' onkeydown='return editingKeydown(event);'>\n";
|
301 |
-
echo "<thead><tr>" . (!$group && $select ? "" : "<td><input type='checkbox' id='all-page' onclick='formCheck(this, /check/);'> <a href='" . h($_GET["modify"] ? remove_from_uri("modify") : $_SERVER["REQUEST_URI"] . "&modify=1") . "'>" . lang('Modify') . "</a>");
|
302 |
$names = array();
|
303 |
$functions = array();
|
304 |
reset($select);
|
@@ -387,6 +387,9 @@ if (!$columns && support("table")) {
|
|
387 |
$link .= where_link($i, $foreign_key["target"][$i], $rows[$n][$source]);
|
388 |
}
|
389 |
$link = ($foreign_key["db"] != "" ? preg_replace('~([?&]db=)[^&]+~', '\\1' . urlencode($foreign_key["db"]), ME) : ME) . 'select=' . urlencode($foreign_key["table"]) . $link; // InnoDB supports non-UNIQUE keys
|
|
|
|
|
|
|
390 |
if (count($foreign_key["source"]) == 1) {
|
391 |
break;
|
392 |
}
|
205 |
}
|
206 |
$result = (!$rows || $driver->insertUpdate($TABLE, $rows, $primary));
|
207 |
if ($result) {
|
208 |
+
$result = $driver->commit();
|
209 |
}
|
210 |
queries_redirect(remove_from_uri("page"), lang('%d row(s) have been imported.', $affected), $result);
|
211 |
$driver->rollback(); // after queries_redirect() to not overwrite error
|
298 |
$backward_keys = $adminer->backwardKeys($TABLE, $table_name);
|
299 |
|
300 |
echo "<table id='table' cellspacing='0' class='nowrap checkable' onclick='tableClick(event);' ondblclick='tableClick(event, true);' onkeydown='return editingKeydown(event);'>\n";
|
301 |
+
echo "<thead><tr>" . (!$group && $select ? "" : "<td><input type='checkbox' id='all-page' onclick='formCheck(this, /check/);' class='jsonly'> <a href='" . h($_GET["modify"] ? remove_from_uri("modify") : $_SERVER["REQUEST_URI"] . "&modify=1") . "'>" . lang('Modify') . "</a>");
|
302 |
$names = array();
|
303 |
$functions = array();
|
304 |
reset($select);
|
387 |
$link .= where_link($i, $foreign_key["target"][$i], $rows[$n][$source]);
|
388 |
}
|
389 |
$link = ($foreign_key["db"] != "" ? preg_replace('~([?&]db=)[^&]+~', '\\1' . urlencode($foreign_key["db"]), ME) : ME) . 'select=' . urlencode($foreign_key["table"]) . $link; // InnoDB supports non-UNIQUE keys
|
390 |
+
if ($foreign_key["ns"]) {
|
391 |
+
$link = preg_replace('~([?&]ns=)[^&]+~', '\\1' . urlencode($foreign_key["ns"]), $link);
|
392 |
+
}
|
393 |
if (count($foreign_key["source"]) == 1) {
|
394 |
break;
|
395 |
}
|
adminer/adminer/adminer/sql.inc.php
CHANGED
@@ -93,7 +93,7 @@ if (!$error && $_POST) {
|
|
93 |
$empty = false;
|
94 |
$q = substr($query, 0, $pos);
|
95 |
$commands++;
|
96 |
-
$print = "<pre id='sql-$commands'><code class='jush-$jush'>" .
|
97 |
if ($jush == "sqlite" && preg_match("~^$space*+ATTACH\\b~i", $q, $match)) {
|
98 |
// PHP doesn't support setting SQLITE_LIMIT_ATTACHED
|
99 |
echo $print;
|
93 |
$empty = false;
|
94 |
$q = substr($query, 0, $pos);
|
95 |
$commands++;
|
96 |
+
$print = "<pre id='sql-$commands'><code class='jush-$jush'>" . $adminer->sqlCommandQuery($q) . "</code></pre>\n";
|
97 |
if ($jush == "sqlite" && preg_match("~^$space*+ATTACH\\b~i", $q, $match)) {
|
98 |
// PHP doesn't support setting SQLITE_LIMIT_ATTACHED
|
99 |
echo $print;
|
adminer/adminer/adminer/sqlite.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
function adminer_object() {
|
3 |
+
include_once "../plugins/plugin.php";
|
4 |
+
include_once "../plugins/login-sqlite.php";
|
5 |
+
return new AdminerPlugin(array(new AdminerLoginSqlite));
|
6 |
+
}
|
7 |
+
|
8 |
+
include "./index.php";
|
adminer/adminer/adminer/static/default.css
CHANGED
@@ -26,6 +26,8 @@ pre, textarea { font: 100%/1.25 monospace; }
|
|
26 |
input[type=image] { vertical-align: middle; }
|
27 |
input.default { box-shadow: 1px 1px 1px #777; }
|
28 |
input.required { box-shadow: 1px 1px 1px red; }
|
|
|
|
|
29 |
.block { display: block; }
|
30 |
.version { color: #777; font-size: 67%; }
|
31 |
.js .hidden, .nojs .jsonly { display: none; }
|
@@ -60,7 +62,8 @@ input.required { box-shadow: 1px 1px 1px red; }
|
|
60 |
.logout { margin-top: .5em; position: absolute; top: 0; right: 0; }
|
61 |
.loadmore { margin-left: 1ex; }
|
62 |
#menu { position: absolute; margin: 10px 0 0; padding: 0 0 30px 0; top: 2em; left: 0; width: 19em; }
|
63 |
-
#menu p { padding: .8em 1em; margin: 0; border-bottom: 1px solid #ccc; }
|
|
|
64 |
#dbs { overflow: hidden; }
|
65 |
#logins, #tables { white-space: nowrap; overflow: auto; }
|
66 |
#logins a, #tables a, #tables span { background: #fff; }
|
@@ -79,6 +82,8 @@ input.required { box-shadow: 1px 1px 1px red; }
|
|
79 |
.rtl .logout { left: 0; right: auto; }
|
80 |
.rtl #content { margin: 2em 21em 0 0; padding: 10px 0 20px 20px; }
|
81 |
.rtl #breadcrumb { left: auto; right: 21em; margin: 0 -18px 0 0; }
|
|
|
|
|
82 |
.rtl #lang, .rtl #menu { left: auto; right: 0; }
|
83 |
|
84 |
@media all and (max-device-width: 880px) {
|
@@ -87,6 +92,7 @@ input.required { box-shadow: 1px 1px 1px red; }
|
|
87 |
#content { margin-left: 10px; }
|
88 |
#lang { position: static; border-top: 1px solid #999; }
|
89 |
#breadcrumb { left: auto; }
|
|
|
90 |
.rtl #content { margin-right: 10px; }
|
91 |
.rtl #breadcrumb { right: auto; }
|
92 |
}
|
26 |
input[type=image] { vertical-align: middle; }
|
27 |
input.default { box-shadow: 1px 1px 1px #777; }
|
28 |
input.required { box-shadow: 1px 1px 1px red; }
|
29 |
+
input.maxlength { box-shadow: 1px 1px 1px red; }
|
30 |
+
input.wayoff { left: -1000px; position: absolute; }
|
31 |
.block { display: block; }
|
32 |
.version { color: #777; font-size: 67%; }
|
33 |
.js .hidden, .nojs .jsonly { display: none; }
|
62 |
.logout { margin-top: .5em; position: absolute; top: 0; right: 0; }
|
63 |
.loadmore { margin-left: 1ex; }
|
64 |
#menu { position: absolute; margin: 10px 0 0; padding: 0 0 30px 0; top: 2em; left: 0; width: 19em; }
|
65 |
+
#menu p, #tables { padding: .8em 1em; margin: 0; border-bottom: 1px solid #ccc; }
|
66 |
+
#tables li{ list-style: none; }
|
67 |
#dbs { overflow: hidden; }
|
68 |
#logins, #tables { white-space: nowrap; overflow: auto; }
|
69 |
#logins a, #tables a, #tables span { background: #fff; }
|
82 |
.rtl .logout { left: 0; right: auto; }
|
83 |
.rtl #content { margin: 2em 21em 0 0; padding: 10px 0 20px 20px; }
|
84 |
.rtl #breadcrumb { left: auto; right: 21em; margin: 0 -18px 0 0; }
|
85 |
+
.rtl .pages { left: auto; right: 21em; }
|
86 |
+
.rtl input.wayoff { left: auto; right: -1000px; }
|
87 |
.rtl #lang, .rtl #menu { left: auto; right: 0; }
|
88 |
|
89 |
@media all and (max-device-width: 880px) {
|
92 |
#content { margin-left: 10px; }
|
93 |
#lang { position: static; border-top: 1px solid #999; }
|
94 |
#breadcrumb { left: auto; }
|
95 |
+
.rtl .pages { right: auto; }
|
96 |
.rtl #content { margin-right: 10px; }
|
97 |
.rtl #breadcrumb { right: auto; }
|
98 |
}
|
adminer/adminer/adminer/static/editing.js
CHANGED
@@ -271,6 +271,22 @@ function editingRemoveRow(button, name) {
|
|
271 |
return true;
|
272 |
}
|
273 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
var lastType = '';
|
275 |
|
276 |
/** Clear length and hide collation or unsigned
|
271 |
return true;
|
272 |
}
|
273 |
|
274 |
+
/** Move table row for field
|
275 |
+
* @param HTMLInputElement
|
276 |
+
* @param boolean direction to move row, true for up or false for down
|
277 |
+
* @return boolean
|
278 |
+
*/
|
279 |
+
function editingMoveRow(button, dir){
|
280 |
+
var row = parentTag(button, 'tr');
|
281 |
+
if (!('nextElementSibling' in row)) {
|
282 |
+
return false;
|
283 |
+
}
|
284 |
+
row.parentNode.insertBefore(row, dir
|
285 |
+
? row.previousElementSibling
|
286 |
+
: row.nextElementSibling ? row.nextElementSibling.nextElementSibling : row.parentNode.firstChild);
|
287 |
+
return true;
|
288 |
+
}
|
289 |
+
|
290 |
var lastType = '';
|
291 |
|
292 |
/** Clear length and hide collation or unsigned
|
adminer/adminer/adminer/static/functions.js
CHANGED
@@ -239,7 +239,7 @@ function checkboxClick(event, el) {
|
|
239 |
function setHtml(id, html) {
|
240 |
var el = document.getElementById(id);
|
241 |
if (el) {
|
242 |
-
if (html ==
|
243 |
el.parentNode.innerHTML = ' ';
|
244 |
} else {
|
245 |
el.innerHTML = html;
|
@@ -310,8 +310,12 @@ function selectAddRow(field) {
|
|
310 |
var inputs = row.getElementsByTagName('input');
|
311 |
for (var i=0; i < inputs.length; i++) {
|
312 |
inputs[i].name = inputs[i].name.replace(/[a-z]\[\d+/, '$&1');
|
313 |
-
inputs[i].value = '';
|
314 |
inputs[i].className = '';
|
|
|
|
|
|
|
|
|
|
|
315 |
}
|
316 |
field.parentNode.parentNode.appendChild(row);
|
317 |
}
|
@@ -460,16 +464,17 @@ function functionChange(select) {
|
|
460 |
if (selectValue(select)) {
|
461 |
if (input.origType === undefined) {
|
462 |
input.origType = input.type;
|
463 |
-
input.origMaxLength = input.
|
464 |
}
|
465 |
-
input.removeAttribute('maxlength');
|
466 |
input.type = 'text';
|
467 |
} else if (input.origType) {
|
468 |
input.type = input.origType;
|
469 |
if (input.origMaxLength >= 0) {
|
470 |
-
input.
|
471 |
}
|
472 |
}
|
|
|
473 |
helpClose();
|
474 |
}
|
475 |
|
@@ -793,3 +798,9 @@ function cloneNode(el) {
|
|
793 |
setupSubmitHighlight(el2);
|
794 |
return el2;
|
795 |
}
|
|
|
|
|
|
|
|
|
|
|
|
239 |
function setHtml(id, html) {
|
240 |
var el = document.getElementById(id);
|
241 |
if (el) {
|
242 |
+
if (html == null) {
|
243 |
el.parentNode.innerHTML = ' ';
|
244 |
} else {
|
245 |
el.innerHTML = html;
|
310 |
var inputs = row.getElementsByTagName('input');
|
311 |
for (var i=0; i < inputs.length; i++) {
|
312 |
inputs[i].name = inputs[i].name.replace(/[a-z]\[\d+/, '$&1');
|
|
|
313 |
inputs[i].className = '';
|
314 |
+
if (inputs[i].type == 'checkbox') {
|
315 |
+
inputs[i].checked = false;
|
316 |
+
} else {
|
317 |
+
inputs[i].value = '';
|
318 |
+
}
|
319 |
}
|
320 |
field.parentNode.parentNode.appendChild(row);
|
321 |
}
|
464 |
if (selectValue(select)) {
|
465 |
if (input.origType === undefined) {
|
466 |
input.origType = input.type;
|
467 |
+
input.origMaxLength = input.getAttribute('data-maxlength');
|
468 |
}
|
469 |
+
input.removeAttribute('data-maxlength');
|
470 |
input.type = 'text';
|
471 |
} else if (input.origType) {
|
472 |
input.type = input.origType;
|
473 |
if (input.origMaxLength >= 0) {
|
474 |
+
input.setAttribute('data-maxlength', input.origMaxLength);
|
475 |
}
|
476 |
}
|
477 |
+
oninput({target: input});
|
478 |
helpClose();
|
479 |
}
|
480 |
|
798 |
setupSubmitHighlight(el2);
|
799 |
return el2;
|
800 |
}
|
801 |
+
|
802 |
+
oninput = function (event) {
|
803 |
+
var target = event.target;
|
804 |
+
var maxLength = target.getAttribute('data-maxlength');
|
805 |
+
alterClass(target, 'maxlength', target.value && maxLength != null && target.value.length > maxLength); // maxLength could be 0
|
806 |
+
};
|
adminer/adminer/adminer/table.inc.php
CHANGED
@@ -6,7 +6,7 @@ if (!$fields) {
|
|
6 |
}
|
7 |
$table_status = table_status1($TABLE, true);
|
8 |
|
9 |
-
page_header(($fields && is_view($table_status) ? lang('View') : lang('Table')) . ": " . h($TABLE), $error);
|
10 |
|
11 |
$adminer->selectLinks($table_status);
|
12 |
$comment = $table_status["Comment"];
|
@@ -15,18 +15,7 @@ if ($comment != "") {
|
|
15 |
}
|
16 |
|
17 |
if ($fields) {
|
18 |
-
|
19 |
-
echo "<thead><tr><th>" . lang('Column') . "<td>" . lang('Type') . (support("comment") ? "<td>" . lang('Comment') : "") . "</thead>\n";
|
20 |
-
foreach ($fields as $field) {
|
21 |
-
echo "<tr" . odd() . "><th>" . h($field["field"]);
|
22 |
-
echo "<td><span title='" . h($field["collation"]) . "'>" . h($field["full_type"]) . "</span>";
|
23 |
-
echo ($field["null"] ? " <i>NULL</i>" : "");
|
24 |
-
echo ($field["auto_increment"] ? " <i>" . lang('Auto Increment') . "</i>" : "");
|
25 |
-
echo (isset($field["default"]) ? " <span title='" . lang('Default value') . "'>[<b>" . h($field["default"]) . "</b>]</span>" : "");
|
26 |
-
echo (support("comment") ? "<td>" . nbsp($field["comment"]) : "");
|
27 |
-
echo "\n";
|
28 |
-
}
|
29 |
-
echo "</table>\n";
|
30 |
}
|
31 |
|
32 |
if (!is_view($table_status)) {
|
@@ -34,19 +23,7 @@ if (!is_view($table_status)) {
|
|
34 |
echo "<h3 id='indexes'>" . lang('Indexes') . "</h3>\n";
|
35 |
$indexes = indexes($TABLE);
|
36 |
if ($indexes) {
|
37 |
-
|
38 |
-
foreach ($indexes as $name => $index) {
|
39 |
-
ksort($index["columns"]); // enforce correct columns order
|
40 |
-
$print = array();
|
41 |
-
foreach ($index["columns"] as $key => $val) {
|
42 |
-
$print[] = "<i>" . h($val) . "</i>"
|
43 |
-
. ($index["lengths"][$key] ? "(" . $index["lengths"][$key] . ")" : "")
|
44 |
-
. ($index["descs"][$key] ? " DESC" : "")
|
45 |
-
;
|
46 |
-
}
|
47 |
-
echo "<tr title='" . h($name) . "'><th>$index[type]<td>" . implode(", ", $print) . "\n";
|
48 |
-
}
|
49 |
-
echo "</table>\n";
|
50 |
}
|
51 |
echo '<p class="links"><a href="' . h(ME) . 'indexes=' . urlencode($TABLE) . '">' . lang('Alter indexes') . "</a>\n";
|
52 |
}
|
6 |
}
|
7 |
$table_status = table_status1($TABLE, true);
|
8 |
|
9 |
+
page_header(($fields && is_view($table_status) ? $table_status['Engine'] == 'materialized view' ? lang('Materialized view') : lang('View') : lang('Table')) . ": " . h($TABLE), $error);
|
10 |
|
11 |
$adminer->selectLinks($table_status);
|
12 |
$comment = $table_status["Comment"];
|
15 |
}
|
16 |
|
17 |
if ($fields) {
|
18 |
+
$adminer->tableStructurePrint($fields);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
}
|
20 |
|
21 |
if (!is_view($table_status)) {
|
23 |
echo "<h3 id='indexes'>" . lang('Indexes') . "</h3>\n";
|
24 |
$indexes = indexes($TABLE);
|
25 |
if ($indexes) {
|
26 |
+
$adminer->tableIndexesPrint($indexes);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
}
|
28 |
echo '<p class="links"><a href="' . h(ME) . 'indexes=' . urlencode($TABLE) . '">' . lang('Alter indexes') . "</a>\n";
|
29 |
}
|
adminer/adminer/adminer/view.inc.php
CHANGED
@@ -1,6 +1,11 @@
|
|
1 |
<?php
|
2 |
$TABLE = $_GET["view"];
|
3 |
$row = $_POST;
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
if ($_POST && !$error) {
|
6 |
$name = trim($row["name"]);
|
@@ -8,22 +13,14 @@ if ($_POST && !$error) {
|
|
8 |
$location = ME . "table=" . urlencode($name);
|
9 |
$message = lang('View has been altered.');
|
10 |
|
11 |
-
|
12 |
-
$type = "MATERIALIZED VIEW";
|
13 |
-
} else {
|
14 |
-
$type = "VIEW";
|
15 |
-
if ($jush == "pgsql") {
|
16 |
-
$status = table_status($name);
|
17 |
-
$type = ($status ? strtoupper($status["Engine"]) : $type);
|
18 |
-
}
|
19 |
-
}
|
20 |
|
21 |
-
if (!$_POST["drop"] && $TABLE == $name && $jush != "sqlite" && $type
|
22 |
query_redirect(($jush == "mssql" ? "ALTER" : "CREATE OR REPLACE") . " VIEW " . table($name) . $as, $location, $message);
|
23 |
} else {
|
24 |
$temp_name = $name . "_adminer_" . uniqid();
|
25 |
drop_create(
|
26 |
-
"DROP $
|
27 |
"CREATE $type " . table($name) . $as,
|
28 |
"DROP $type " . table($name),
|
29 |
"CREATE $type " . table($temp_name) . $as,
|
@@ -41,6 +38,7 @@ if ($_POST && !$error) {
|
|
41 |
if (!$_POST && $TABLE != "") {
|
42 |
$row = view($TABLE);
|
43 |
$row["name"] = $TABLE;
|
|
|
44 |
if (!$error) {
|
45 |
$error = error();
|
46 |
}
|
@@ -51,6 +49,7 @@ page_header(($TABLE != "" ? lang('Alter view') : lang('Create view')), $error, a
|
|
51 |
|
52 |
<form action="" method="post">
|
53 |
<p><?php echo lang('Name'); ?>: <input name="name" value="<?php echo h($row["name"]); ?>" maxlength="64" autocapitalize="off">
|
|
|
54 |
<p><?php textarea("select", $row["select"]); ?>
|
55 |
<p>
|
56 |
<input type="submit" value="<?php echo lang('Save'); ?>">
|
1 |
<?php
|
2 |
$TABLE = $_GET["view"];
|
3 |
$row = $_POST;
|
4 |
+
$orig_type = "VIEW";
|
5 |
+
if ($jush == "pgsql" && $TABLE != "") {
|
6 |
+
$status = table_status($TABLE);
|
7 |
+
$orig_type = strtoupper($status["Engine"]);
|
8 |
+
}
|
9 |
|
10 |
if ($_POST && !$error) {
|
11 |
$name = trim($row["name"]);
|
13 |
$location = ME . "table=" . urlencode($name);
|
14 |
$message = lang('View has been altered.');
|
15 |
|
16 |
+
$type = ($_POST["materialized"] ? "MATERIALIZED VIEW" : "VIEW");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
+
if (!$_POST["drop"] && $TABLE == $name && $jush != "sqlite" && $type == "VIEW" && $orig_type == "VIEW") {
|
19 |
query_redirect(($jush == "mssql" ? "ALTER" : "CREATE OR REPLACE") . " VIEW " . table($name) . $as, $location, $message);
|
20 |
} else {
|
21 |
$temp_name = $name . "_adminer_" . uniqid();
|
22 |
drop_create(
|
23 |
+
"DROP $orig_type " . table($TABLE),
|
24 |
"CREATE $type " . table($name) . $as,
|
25 |
"DROP $type " . table($name),
|
26 |
"CREATE $type " . table($temp_name) . $as,
|
38 |
if (!$_POST && $TABLE != "") {
|
39 |
$row = view($TABLE);
|
40 |
$row["name"] = $TABLE;
|
41 |
+
$row["materialized"] = ($orig_type != "VIEW");
|
42 |
if (!$error) {
|
43 |
$error = error();
|
44 |
}
|
49 |
|
50 |
<form action="" method="post">
|
51 |
<p><?php echo lang('Name'); ?>: <input name="name" value="<?php echo h($row["name"]); ?>" maxlength="64" autocapitalize="off">
|
52 |
+
<?php echo (support("materializedview") ? " " . checkbox("materialized", 1, $row["materialized"], lang('Materialized view')) : ""); ?>
|
53 |
<p><?php textarea("select", $row["select"]); ?>
|
54 |
<p>
|
55 |
<input type="submit" value="<?php echo lang('Save'); ?>">
|
adminer/adminer/editor/db.inc.php
CHANGED
@@ -8,7 +8,7 @@ if ($adminer->homepage()) {
|
|
8 |
search_tables();
|
9 |
}
|
10 |
echo "<table cellspacing='0' class='nowrap checkable' onclick='tableClick(event);'>\n";
|
11 |
-
echo '<thead><tr class="wrap"><td><input id="check-all" type="checkbox" onclick="formCheck(this, /^tables\[/);"><th>' . lang('Table') . '<td>' . lang('Rows') . "</thead>\n";
|
12 |
|
13 |
foreach (table_status() as $table => $row) {
|
14 |
$name = $adminer->tableName($row);
|
8 |
search_tables();
|
9 |
}
|
10 |
echo "<table cellspacing='0' class='nowrap checkable' onclick='tableClick(event);'>\n";
|
11 |
+
echo '<thead><tr class="wrap"><td><input id="check-all" type="checkbox" onclick="formCheck(this, /^tables\[/);" class="jsonly"><th>' . lang('Table') . '<td>' . lang('Rows') . "</thead>\n";
|
12 |
|
13 |
foreach (table_status() as $table => $row) {
|
14 |
$name = $adminer->tableName($row);
|
adminer/adminer/editor/index.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/** Adminer Editor - Compact database editor
|
3 |
* @link https://www.adminer.org/
|
4 |
-
* @author Jakub Vrana,
|
5 |
* @copyright 2009 Jakub Vrana
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
1 |
<?php
|
2 |
/** Adminer Editor - Compact database editor
|
3 |
* @link https://www.adminer.org/
|
4 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
5 |
* @copyright 2009 Jakub Vrana
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
adminer/adminer/plugins/database-hide.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Hide some databases from the interface - just to improve design, not a security plugin
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Hide some databases from the interface - just to improve design, not a security plugin
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/dump-alter.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Exports one database (e.g. development) so that it can be synced with other database (e.g. production)
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Exports one database (e.g. development) so that it can be synced with other database (e.g. production)
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/dump-bz2.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/** Dump to Bzip2 format
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
* @uses bzopen(), tempnam("")
|
6 |
-
* @author Jakub Vrana,
|
7 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
8 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
9 |
*/
|
3 |
/** Dump to Bzip2 format
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
* @uses bzopen(), tempnam("")
|
6 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
7 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
8 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
9 |
*/
|
adminer/adminer/plugins/dump-date.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Include current date and time in export filename
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Include current date and time in export filename
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/dump-json.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Dump to JSON format
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Dump to JSON format
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/dump-xml.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Dump to XML format in structure <database name=""><table name=""><column name="">value
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Dump to XML format in structure <database name=""><table name=""><column name="">value
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/dump-zip.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/** Dump to ZIP format
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
* @uses ZipArchive, tempnam("")
|
6 |
-
* @author Jakub Vrana,
|
7 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
8 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
9 |
*/
|
3 |
/** Dump to ZIP format
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
* @uses ZipArchive, tempnam("")
|
6 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
7 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
8 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
9 |
*/
|
adminer/adminer/plugins/edit-foreign.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Select foreign key in edit form
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
@@ -26,7 +26,11 @@ class AdminerEditForeign {
|
|
26 |
$id = $foreignKey["target"][0];
|
27 |
$options = &$values[$target][$id];
|
28 |
if (!$options) {
|
29 |
-
$
|
|
|
|
|
|
|
|
|
30 |
if ($this->_limit && count($options) - 1 > $this->_limit) {
|
31 |
return;
|
32 |
}
|
2 |
|
3 |
/** Select foreign key in edit form
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
26 |
$id = $foreignKey["target"][0];
|
27 |
$options = &$values[$target][$id];
|
28 |
if (!$options) {
|
29 |
+
$column = idf_escape($id);
|
30 |
+
if (preg_match('~binary~', $field["type"])) {
|
31 |
+
$column = "HEX($column)";
|
32 |
+
}
|
33 |
+
$options = array("" => "") + get_vals("SELECT $column FROM " . table($target) . " ORDER BY 1" . ($this->_limit ? " LIMIT " . ($this->_limit + 1) : ""));
|
34 |
if ($this->_limit && count($options) - 1 > $this->_limit) {
|
35 |
return;
|
36 |
}
|
adminer/adminer/plugins/enum-option.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Use <select><option> for enum edit instead of <input type="radio">
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Use <select><option> for enum edit instead of <input type="radio">
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/file-upload.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
|
4 |
/** Edit fields ending with "_path" by <input type="file"> and link to the uploaded files from select
|
5 |
* @link https://www.adminer.org/plugins/#use
|
6 |
-
* @author Jakub Vrana,
|
7 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
8 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
9 |
*/
|
3 |
|
4 |
/** Edit fields ending with "_path" by <input type="file"> and link to the uploaded files from select
|
5 |
* @link https://www.adminer.org/plugins/#use
|
6 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
7 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
8 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
9 |
*/
|
adminer/adminer/plugins/foreign-system.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Link system tables (in mysql and information_schema databases) by foreign keys
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Link system tables (in mysql and information_schema databases) by foreign keys
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/frames.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Allow using Adminer inside a frame (disables ClickJacking protection)
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Allow using Adminer inside a frame (disables ClickJacking protection)
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/json-column.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Display JSON values as table in edit
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @author Martin Zeman (Zemistr), http://www.zemistr.eu/
|
7 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
8 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
2 |
|
3 |
/** Display JSON values as table in edit
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @author Martin Zeman (Zemistr), http://www.zemistr.eu/
|
7 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
8 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
adminer/adminer/plugins/plugin.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Adminer customization allowing usage of plugins
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
@@ -177,6 +177,11 @@ class AdminerPlugin extends Adminer {
|
|
177 |
return $this->_applyPlugin(__FUNCTION__, $args);
|
178 |
}
|
179 |
|
|
|
|
|
|
|
|
|
|
|
180 |
function rowDescription($table) {
|
181 |
$args = func_get_args();
|
182 |
return $this->_applyPlugin(__FUNCTION__, $args);
|
@@ -202,6 +207,16 @@ class AdminerPlugin extends Adminer {
|
|
202 |
return $this->_applyPlugin(__FUNCTION__, $args);
|
203 |
}
|
204 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
function selectColumnsPrint($select, $columns) {
|
206 |
$args = func_get_args();
|
207 |
return $this->_applyPlugin(__FUNCTION__, $args);
|
2 |
|
3 |
/** Adminer customization allowing usage of plugins
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
177 |
return $this->_applyPlugin(__FUNCTION__, $args);
|
178 |
}
|
179 |
|
180 |
+
function sqlCommandQuery($query) {
|
181 |
+
$args = func_get_args();
|
182 |
+
return $this->_applyPlugin(__FUNCTION__, $args);
|
183 |
+
}
|
184 |
+
|
185 |
function rowDescription($table) {
|
186 |
$args = func_get_args();
|
187 |
return $this->_applyPlugin(__FUNCTION__, $args);
|
207 |
return $this->_applyPlugin(__FUNCTION__, $args);
|
208 |
}
|
209 |
|
210 |
+
function tableStructurePrint($fields) {
|
211 |
+
$args = func_get_args();
|
212 |
+
return $this->_applyPlugin(__FUNCTION__, $args);
|
213 |
+
}
|
214 |
+
|
215 |
+
function tableIndexesPrint($indexes) {
|
216 |
+
$args = func_get_args();
|
217 |
+
return $this->_applyPlugin(__FUNCTION__, $args);
|
218 |
+
}
|
219 |
+
|
220 |
function selectColumnsPrint($select, $columns) {
|
221 |
$args = func_get_args();
|
222 |
return $this->_applyPlugin(__FUNCTION__, $args);
|
adminer/adminer/plugins/slugify.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
/** Prefill field containing "_slug" with slugified value of a previous field (JavaScript)
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
2 |
|
3 |
/** Prefill field containing "_slug" with slugified value of a previous field (JavaScript)
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
adminer/adminer/plugins/tables-filter.php
CHANGED
@@ -2,33 +2,67 @@
|
|
2 |
|
3 |
/** Use filter in tables list
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
-
* @author Jakub Vrana,
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
9 |
class AdminerTablesFilter {
|
10 |
-
|
11 |
-
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
<script type="text/javascript">
|
14 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
var tables = document.getElementById('tables').getElementsByTagName('span');
|
16 |
-
for (var i = tables.length; i
|
17 |
-
var a = tables[i].
|
18 |
-
var text =
|
19 |
-
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
21 |
}
|
22 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
</script>
|
24 |
-
<p class="jsonly"><input onkeyup="tablesFilter(this.value);">
|
25 |
<?php
|
26 |
-
echo "<p id='tables' onmouseover='menuOver(this, event);' onmouseout='menuOut(this);'>\n";
|
27 |
-
foreach ($tables as $table => $type) {
|
28 |
-
echo '<span><a href="' . h(ME) . 'select=' . urlencode($table) . '"' . bold($_GET["select"] == $table) . ">" . lang('select') . "</a> ";
|
29 |
-
echo '<a href="' . h(ME) . 'table=' . urlencode($table) . '"' . bold($_GET["table"] == $table) . ">" . h($table) . "</a><br></span>\n";
|
30 |
-
}
|
31 |
return true;
|
32 |
}
|
33 |
-
|
34 |
}
|
2 |
|
3 |
/** Use filter in tables list
|
4 |
* @link https://www.adminer.org/plugins/#use
|
5 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
6 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
7 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
8 |
*/
|
9 |
class AdminerTablesFilter {
|
10 |
+
function tablesPrint($tables) { ?>
|
11 |
+
<p class="jsonly"><input id="filter-field" onkeyup="tablesFilterInput();" autocomplete="off">
|
12 |
+
<p id='tables' onmouseover='menuOver(this, event);' onmouseout='menuOut(this);'>
|
13 |
+
<?php
|
14 |
+
foreach ($tables as $table => $type) {
|
15 |
+
echo '<span data-table-name="'.h($table).'"><a href="'.h(ME).'select='.urlencode($table).'"'.bold($_GET["select"] == $table).">".lang('select')."</a> ";
|
16 |
+
echo '<a href="'.h(ME).'table='.urlencode($table).'"'.bold($_GET["table"] == $table).">".h($table)."</a><br></span>\n";
|
17 |
+
}
|
18 |
+
?>
|
19 |
<script type="text/javascript">
|
20 |
+
var tablesFilterTimeout = null;
|
21 |
+
var tablesFilterValue = '';
|
22 |
+
|
23 |
+
function tablesFilter(){
|
24 |
+
var value = document.getElementById('filter-field').value.toLowerCase();
|
25 |
+
if (value == tablesFilterValue) {
|
26 |
+
return;
|
27 |
+
}
|
28 |
+
tablesFilterValue = value;
|
29 |
+
if (value != '') {
|
30 |
+
var reg = (value + '').replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, '\\$1');
|
31 |
+
reg = new RegExp('('+ reg + ')', 'gi');
|
32 |
+
}
|
33 |
+
if (sessionStorage) {
|
34 |
+
sessionStorage.setItem('adminer_tables_filter', value);
|
35 |
+
}
|
36 |
var tables = document.getElementById('tables').getElementsByTagName('span');
|
37 |
+
for (var i = 0; i < tables.length; i++) {
|
38 |
+
var a = tables[i].getElementsByTagName('a')[1];
|
39 |
+
var text = tables[i].getAttribute('data-table-name');
|
40 |
+
if (value == '') {
|
41 |
+
tables[i].className = '';
|
42 |
+
a.innerHTML = text;
|
43 |
+
} else {
|
44 |
+
tables[i].className = (text.toLowerCase().indexOf(value) == -1 ? 'hidden' : '');
|
45 |
+
a.innerHTML = text.replace(reg, '<strong>$1</strong>');
|
46 |
+
}
|
47 |
}
|
48 |
}
|
49 |
+
|
50 |
+
function tablesFilterInput() {
|
51 |
+
window.clearTimeout(tablesFilterTimeout);
|
52 |
+
tablesFilterTimeout = window.setTimeout(tablesFilter, 200);
|
53 |
+
}
|
54 |
+
|
55 |
+
if (sessionStorage){
|
56 |
+
var db = document.getElementById('dbs').getElementsByTagName('select')[0];
|
57 |
+
db = db.options[db.selectedIndex].text;
|
58 |
+
if (db == sessionStorage.getItem('adminer_tables_filter_db') && sessionStorage.getItem('adminer_tables_filter')){
|
59 |
+
document.getElementById('filter-field').value = sessionStorage.getItem('adminer_tables_filter');
|
60 |
+
tablesFilter();
|
61 |
+
}
|
62 |
+
sessionStorage.setItem('adminer_tables_filter_db', db);
|
63 |
+
}
|
64 |
</script>
|
|
|
65 |
<?php
|
|
|
|
|
|
|
|
|
|
|
66 |
return true;
|
67 |
}
|
|
|
68 |
}
|
adminer/adminer/plugins/translation.php
CHANGED
@@ -12,7 +12,7 @@ CREATE TABLE translation (
|
|
12 |
|
13 |
/** Translate all table and field comments, enum and set values from the translation table (inserts new translations)
|
14 |
* @link https://www.adminer.org/plugins/#use
|
15 |
-
* @author Jakub Vrana,
|
16 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
17 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
18 |
*/
|
12 |
|
13 |
/** Translate all table and field comments, enum and set values from the translation table (inserts new translations)
|
14 |
* @link https://www.adminer.org/plugins/#use
|
15 |
+
* @author Jakub Vrana, https://www.vrana.cz/
|
16 |
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
|
17 |
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
|
18 |
*/
|
ari-adminer.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: ARI Adminer
|
4 |
Plugin URI: http://wp-quiz.ari-soft.com/plugins/wordpress-adminer.html
|
5 |
Description: Powerful, compact and easy to use database manager plugin for WordPress.
|
6 |
-
Version: 1.0.
|
7 |
Author: ARI Soft
|
8 |
Author URI: http://www.ari-soft.com
|
9 |
Text Domain: ari-adminer
|
3 |
Plugin Name: ARI Adminer
|
4 |
Plugin URI: http://wp-quiz.ari-soft.com/plugins/wordpress-adminer.html
|
5 |
Description: Powerful, compact and easy to use database manager plugin for WordPress.
|
6 |
+
Version: 1.0.8
|
7 |
Author: ARI Soft
|
8 |
Author URI: http://www.ari-soft.com
|
9 |
Text Domain: ari-adminer
|
includes/defines.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
define( 'ARIADMINER_VERSION', '1.0.
|
3 |
define( 'ARIADMINER_SLUG', 'ari-adminer' );
|
4 |
define( 'ARIADMINER_ASSETS_URL', ARIADMINER_URL . 'assets/' );
|
5 |
define( 'ARIADMINER_VERSION_OPTION', 'ari_adminer' );
|
1 |
<?php
|
2 |
+
define( 'ARIADMINER_VERSION', '1.0.8' );
|
3 |
define( 'ARIADMINER_SLUG', 'ari-adminer' );
|
4 |
define( 'ARIADMINER_ASSETS_URL', ARIADMINER_URL . 'assets/' );
|
5 |
define( 'ARIADMINER_VERSION_OPTION', 'ari_adminer' );
|
languages/ari-adminer.pot
CHANGED
@@ -7,7 +7,7 @@ msgstr ""
|
|
7 |
"Project-Id-Version: ARI "
|
8 |
"Adminer v 1.0.0\n"
|
9 |
"POT-Creation-Date: "
|
10 |
-
"
|
11 |
"PO-Revision-Date: \n"
|
12 |
"Last-Translator: Your "
|
13 |
"Name <you@example.com>\n"
|
@@ -60,8 +60,11 @@ msgstr ""
|
|
60 |
"X-Poedit-"
|
61 |
"SearchPathExcluded-3: "
|
62 |
"languages\n"
|
|
|
|
|
|
|
63 |
|
64 |
-
#: ari-adminer.php:
|
65 |
#, php-format
|
66 |
msgid ""
|
67 |
"update PHP version on "
|
@@ -69,19 +72,19 @@ msgid ""
|
|
69 |
"to at least v. %s"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: ari-adminer.php:
|
73 |
msgid ""
|
74 |
"install PHP SPL extension"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: ari-adminer.php:
|
78 |
#, php-format
|
79 |
msgid ""
|
80 |
"update WordPress v. %s "
|
81 |
"to at least v. %s"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: ari-adminer.php:
|
85 |
#, php-format
|
86 |
msgid ""
|
87 |
"\"ARI Adminer\" can not "
|
@@ -309,82 +312,92 @@ msgid ""
|
|
309 |
"Follow us on Twitter"
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
msgid ""
|
314 |
-
"
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
318 |
msgid ""
|
319 |
"DB Connection parameters"
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
323 |
msgid "Connection"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
327 |
msgid ""
|
328 |
"- Custom parameters -"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
332 |
msgid ""
|
333 |
"- WordPress database -"
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
337 |
#: includes/views/connections/tmpl/default.php:43
|
338 |
msgid "DB Type"
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
342 |
#: includes/views/connections/tmpl/default.php:52
|
343 |
msgid "Host"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
347 |
#: includes/views/connections/tmpl/default.php:53
|
348 |
msgid "Eg. localhost"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
352 |
#: includes/views/connections/tmpl/default.php:57
|
353 |
msgid "Path to DB file"
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
357 |
#: includes/views/connections/tmpl/default.php:58
|
358 |
msgid "DB name"
|
359 |
msgstr ""
|
360 |
|
361 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
362 |
#: includes/views/connections/tmpl/default.php:59
|
363 |
msgid "Specify database"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
367 |
#: includes/views/connections/tmpl/default.php:63
|
368 |
msgid "User"
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
372 |
#: includes/views/connections/tmpl/default.php:68
|
373 |
msgid "Password"
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
377 |
#: includes/views/connections/tmpl/default.php:74
|
378 |
msgid "Test Connection"
|
379 |
msgstr ""
|
380 |
|
381 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
382 |
msgid ""
|
383 |
"Run Adminer in modal "
|
384 |
"window"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: includes/views/adminer-runner/tmpl/default.php:
|
388 |
msgid ""
|
389 |
"Run Adminer in a new "
|
390 |
"window"
|
@@ -459,11 +472,11 @@ msgstr ""
|
|
459 |
msgid "Delete"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: includes/views/connections/class-html.php:
|
463 |
msgid "Show more details"
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: includes/views/connections/class-html.php:
|
467 |
msgid "Type"
|
468 |
msgstr ""
|
469 |
|
7 |
"Project-Id-Version: ARI "
|
8 |
"Adminer v 1.0.0\n"
|
9 |
"POT-Creation-Date: "
|
10 |
+
"2017-03-17 14:33+0300\n"
|
11 |
"PO-Revision-Date: \n"
|
12 |
"Last-Translator: Your "
|
13 |
"Name <you@example.com>\n"
|
60 |
"X-Poedit-"
|
61 |
"SearchPathExcluded-3: "
|
62 |
"languages\n"
|
63 |
+
"X-Poedit-"
|
64 |
+
"SearchPathExcluded-4: "
|
65 |
+
"adminer/adminer\n"
|
66 |
|
67 |
+
#: ari-adminer.php:77
|
68 |
#, php-format
|
69 |
msgid ""
|
70 |
"update PHP version on "
|
72 |
"to at least v. %s"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: ari-adminer.php:83
|
76 |
msgid ""
|
77 |
"install PHP SPL extension"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: ari-adminer.php:87
|
81 |
#, php-format
|
82 |
msgid ""
|
83 |
"update WordPress v. %s "
|
84 |
"to at least v. %s"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: ari-adminer.php:94
|
88 |
#, php-format
|
89 |
msgid ""
|
90 |
"\"ARI Adminer\" can not "
|
312 |
"Follow us on Twitter"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: includes/views/adminer-runner/tmpl/default.php:34
|
316 |
+
msgid "Other plugins"
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: includes/views/adminer-runner/tmpl/default.php:38
|
320 |
+
msgid ""
|
321 |
+
" is the best lightbox "
|
322 |
+
"plugin"
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: includes/views/adminer-runner/tmpl/default.php:41
|
326 |
msgid ""
|
327 |
+
" is viral quiz builder"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: includes/views/adminer-runner/tmpl/default.php:50
|
331 |
msgid ""
|
332 |
"DB Connection parameters"
|
333 |
msgstr ""
|
334 |
|
335 |
+
#: includes/views/adminer-runner/tmpl/default.php:55
|
336 |
msgid "Connection"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: includes/views/adminer-runner/tmpl/default.php:57
|
340 |
msgid ""
|
341 |
"- Custom parameters -"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: includes/views/adminer-runner/tmpl/default.php:58
|
345 |
msgid ""
|
346 |
"- WordPress database -"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: includes/views/adminer-runner/tmpl/default.php:73
|
350 |
#: includes/views/connections/tmpl/default.php:43
|
351 |
msgid "DB Type"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: includes/views/adminer-runner/tmpl/default.php:82
|
355 |
#: includes/views/connections/tmpl/default.php:52
|
356 |
msgid "Host"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: includes/views/adminer-runner/tmpl/default.php:83
|
360 |
#: includes/views/connections/tmpl/default.php:53
|
361 |
msgid "Eg. localhost"
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: includes/views/adminer-runner/tmpl/default.php:87
|
365 |
#: includes/views/connections/tmpl/default.php:57
|
366 |
msgid "Path to DB file"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: includes/views/adminer-runner/tmpl/default.php:88
|
370 |
#: includes/views/connections/tmpl/default.php:58
|
371 |
msgid "DB name"
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: includes/views/adminer-runner/tmpl/default.php:89
|
375 |
#: includes/views/connections/tmpl/default.php:59
|
376 |
msgid "Specify database"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: includes/views/adminer-runner/tmpl/default.php:93
|
380 |
#: includes/views/connections/tmpl/default.php:63
|
381 |
msgid "User"
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: includes/views/adminer-runner/tmpl/default.php:98
|
385 |
#: includes/views/connections/tmpl/default.php:68
|
386 |
msgid "Password"
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: includes/views/adminer-runner/tmpl/default.php:103
|
390 |
#: includes/views/connections/tmpl/default.php:74
|
391 |
msgid "Test Connection"
|
392 |
msgstr ""
|
393 |
|
394 |
+
#: includes/views/adminer-runner/tmpl/default.php:108
|
395 |
msgid ""
|
396 |
"Run Adminer in modal "
|
397 |
"window"
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: includes/views/adminer-runner/tmpl/default.php:109
|
401 |
msgid ""
|
402 |
"Run Adminer in a new "
|
403 |
"window"
|
472 |
msgid "Delete"
|
473 |
msgstr ""
|
474 |
|
475 |
+
#: includes/views/connections/class-html.php:145
|
476 |
msgid "Show more details"
|
477 |
msgstr ""
|
478 |
|
479 |
+
#: includes/views/connections/class-html.php:155
|
480 |
msgid "Type"
|
481 |
msgstr ""
|
482 |
|
readme.txt
CHANGED
@@ -4,11 +4,11 @@ Donate link: http://wp-quiz.ari-soft.com/plugins/wordpress-adminer.html
|
|
4 |
Tags: adminer, sql, database, mysql, report, sqlite, table, postgresql, dump, backup, import, export, phpmyadmin
|
5 |
Requires at least: 3.4
|
6 |
Tested up to: 4.7.3
|
7 |
-
Stable tag: 1.0.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
-
WordPress Database Management Tool based on Adminer application.
|
12 |
|
13 |
== Description ==
|
14 |
|
@@ -69,6 +69,9 @@ Sure, it is available [here](http://www.ari-soft.com/docs/wordpress/ari-adminer/
|
|
69 |
|
70 |
== Changelog ==
|
71 |
|
|
|
|
|
|
|
72 |
= 1.0.7 =
|
73 |
* Fix bug: javascript files are not loaded and search and other functions don't work
|
74 |
|
@@ -96,6 +99,9 @@ Sure, it is available [here](http://www.ari-soft.com/docs/wordpress/ari-adminer/
|
|
96 |
|
97 |
== Upgrade Notice ==
|
98 |
|
|
|
|
|
|
|
99 |
= 1.0.7 =
|
100 |
* Fix bug: javascript files are not loaded and search and other functions don't work
|
101 |
|
4 |
Tags: adminer, sql, database, mysql, report, sqlite, table, postgresql, dump, backup, import, export, phpmyadmin
|
5 |
Requires at least: 3.4
|
6 |
Tested up to: 4.7.3
|
7 |
+
Stable tag: 1.0.8
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
+
WordPress Database Management Tool based on Adminer application. Run SQL queries, import/export data, create backup.
|
12 |
|
13 |
== Description ==
|
14 |
|
69 |
|
70 |
== Changelog ==
|
71 |
|
72 |
+
= 1.0.8 =
|
73 |
+
* Update Adminer to v. 4.3.0
|
74 |
+
|
75 |
= 1.0.7 =
|
76 |
* Fix bug: javascript files are not loaded and search and other functions don't work
|
77 |
|
99 |
|
100 |
== Upgrade Notice ==
|
101 |
|
102 |
+
= 1.0.8 =
|
103 |
+
* Update Adminer to v. 4.3.0
|
104 |
+
|
105 |
= 1.0.7 =
|
106 |
* Fix bug: javascript files are not loaded and search and other functions don't work
|
107 |
|