diff --git a/adminer/file.inc.php b/adminer/file.inc.php index d2bd2481..9444b295 100644 --- a/adminer/file.inc.php +++ b/adminer/file.inc.php @@ -14,7 +14,16 @@ if ($_GET["file"] == "favicon.ico") { echo lzw_decompress(compile_file('../adminer/static/functions.js;static/editing.js', 'minify_js')); } elseif ($_GET["file"] == "jush.js") { header("Content-Type: text/javascript; charset=utf-8"); - 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')); + 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')); } else { header("Content-Type: image/gif"); switch ($_GET["file"]) { diff --git a/adminer/plugin.php b/adminer/plugin.php index 345a6f29..d95a2f0a 100644 --- a/adminer/plugin.php +++ b/adminer/plugin.php @@ -20,9 +20,7 @@ function adminer_object() { new AdminerDumpXml, new AdminerDumpAlter, //~ new AdminerSqlLog("past-" . rtrim(`git describe --tags --abbrev=0`) . ".sql"), - //~ new AdminerEditCalendar(script_src("../externals/jquery-ui/jquery-1.4.4.js") . script_src("../externals/jquery-ui/ui/jquery.ui.core.js") . script_src("../externals/jquery-ui/ui/jquery.ui.widget.js") . script_src("../externals/jquery-ui/ui/jquery.ui.datepicker.js") . script_src("../externals/jquery-ui/ui/jquery.ui.mouse.js") . script_src("../externals/jquery-ui/ui/jquery.ui.slider.js") . script_src("../externals/jquery-timepicker/jquery-ui-timepicker-addon.js") . "\n\n", "../externals/jquery-ui/ui/i18n/jquery.ui.datepicker-%s.js"), //~ new AdminerTinymce("../externals/tinymce/jscripts/tiny_mce/tiny_mce_dev.js"), - //~ new AdminerWymeditor(array("../externals/wymeditor/src/jquery/jquery.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.explorer.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.mozilla.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.opera.js", "../externals/wymeditor/src/wymeditor/jquery.wymeditor.safari.js")), new AdminerFileUpload(""), new AdminerJsonColumn, new AdminerSlugify, diff --git a/adminer/schema.inc.php b/adminer/schema.inc.php index 3a5d5c3b..680ed288 100644 --- a/adminer/schema.inc.php +++ b/adminer/schema.inc.php @@ -84,7 +84,10 @@ foreach ($schema as $name => $table) { $left1 = $left - $table_pos[$name][1]; $i = 0; foreach ($columns as $target) { - echo "\n
"; + echo "\n
" + . "
" + . "
" + ; } } } diff --git a/compile.php b/compile.php index 25286f9f..1267369a 100755 --- a/compile.php +++ b/compile.php @@ -346,7 +346,7 @@ function compile_file($match) { $file = ""; list(, $filenames, $callback) = $match; if ($filenames != "") { - foreach (explode(";", $filenames) as $filename) { + foreach (preg_split('~;\s*~', $filenames) as $filename) { $file .= file_get_contents(__DIR__ . "/$project/$filename"); } } @@ -448,7 +448,7 @@ if ($driver) { } $file = str_replace(" . script(\"qs('#username').form['auth[driver]'].onchange();\")", "", $file); } - $file = preg_replace('(;../externals/jush/modules/jush-(?!textarea\.|txt\.|js\.|' . preg_quote($driver == "mysql" ? "sql" : $driver) . '\.)[^.]+.js)', '', $file); + $file = preg_replace('(;\s*../externals/jush/modules/jush-(?!textarea\.|txt\.|js\.|' . preg_quote($driver == "mysql" ? "sql" : $driver) . '\.)[^.]+.js)', '', $file); $file = preg_replace_callback('~doc_link\(array\((.*)\)\)~sU', function ($match) use ($driver) { list(, $links) = $match; $links = preg_replace("~'(?!(" . ($driver == "mysql" ? "sql|mariadb" : $driver) . ")')[^']*' => [^,]*,?~", '', $links); diff --git a/phpcs.xml b/phpcs.xml index f51cce2a..699d47c2 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -10,7 +10,6 @@ /(adminer|editor)[^/]*.php - @@ -45,6 +44,13 @@ adminer/plugins/drivers/ + + + + + adminer/lang/ + + plugins/[^/]+\.php editor/(example|sqlite)\.php diff --git a/plugins/foreign-system.php b/plugins/foreign-system.php index 27ba976b..939a53e7 100644 --- a/plugins/foreign-system.php +++ b/plugins/foreign-system.php @@ -40,15 +40,36 @@ class AdminerForeignSystem { "SCHEMATA" => array(array("source" => array("DEFAULT_CHARACTER_SET_NAME")) + $character_sets, array("source" => array("DEFAULT_COLLATION_NAME")) + $collations), "EVENTS" => array_merge(array(array("source" => array("EVENT_CATALOG", "EVENT_SCHEMA")) + $schemata), $routine_charsets), "FILES" => array($schemata, $tables), - "KEY_COLUMN_USAGE" => array(array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA")) + $schemata, $schemata, $tables, $columns, array("source" => array("TABLE_CATALOG", "REFERENCED_TABLE_SCHEMA")) + $schemata, array("source" => array("TABLE_CATALOG", "REFERENCED_TABLE_SCHEMA", "REFERENCED_TABLE_NAME")) + $tables, array("source" => array("TABLE_CATALOG", "REFERENCED_TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "REFERENCED_COLUMN_NAME")) + $columns), + "KEY_COLUMN_USAGE" => array( + array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA")) + $schemata, + $schemata, + $tables, + $columns, + array("source" => array("TABLE_CATALOG", "REFERENCED_TABLE_SCHEMA")) + $schemata, + array("source" => array("TABLE_CATALOG", "REFERENCED_TABLE_SCHEMA", "REFERENCED_TABLE_NAME")) + $tables, + array("source" => array("TABLE_CATALOG", "REFERENCED_TABLE_SCHEMA", "REFERENCED_TABLE_NAME", "REFERENCED_COLUMN_NAME")) + $columns, + ), "PARTITIONS" => array($schemata, $tables), - "REFERENTIAL_CONSTRAINTS" => array(array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA")) + $schemata, array("source" => array("UNIQUE_CONSTRAINT_CATALOG", "UNIQUE_CONSTRAINT_SCHEMA")) + $schemata, array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", "TABLE_NAME")) + $tables, array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", "REFERENCED_TABLE_NAME")) + $tables), + "REFERENTIAL_CONSTRAINTS" => array( + array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA")) + $schemata, + array("source" => array("UNIQUE_CONSTRAINT_CATALOG", "UNIQUE_CONSTRAINT_SCHEMA")) + $schemata, + array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", "TABLE_NAME")) + $tables, + array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA", "REFERENCED_TABLE_NAME")) + $tables, + ), "ROUTINES" => array_merge(array(array("source" => array("ROUTINE_CATALOG", "ROUTINE_SCHEMA")) + $schemata), $routine_charsets), "SCHEMA_PRIVILEGES" => array($schemata), "STATISTICS" => array($schemata, $tables, $columns, array("source" => array("TABLE_CATALOG", "INDEX_SCHEMA")) + $schemata), - "TABLE_CONSTRAINTS" => array(array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA")) + $schemata, array("source" => array("CONSTRAINT_CATALOG", "TABLE_SCHEMA")) + $schemata, array("source" => array("CONSTRAINT_CATALOG", "TABLE_SCHEMA", "TABLE_NAME")) + $tables), + "TABLE_CONSTRAINTS" => array( + array("source" => array("CONSTRAINT_CATALOG", "CONSTRAINT_SCHEMA")) + $schemata, + array("source" => array("CONSTRAINT_CATALOG", "TABLE_SCHEMA")) + $schemata, + array("source" => array("CONSTRAINT_CATALOG", "TABLE_SCHEMA", "TABLE_NAME")) + $tables, + ), "TABLE_PRIVILEGES" => array($schemata, $tables), - "TRIGGERS" => array_merge(array(array("source" => array("TRIGGER_CATALOG", "TRIGGER_SCHEMA")) + $schemata, array("source" => array("EVENT_OBJECT_CATALOG", "EVENT_OBJECT_SCHEMA")) + $schemata, array("source" => array("EVENT_OBJECT_CATALOG", "EVENT_OBJECT_SCHEMA", "EVENT_OBJECT_TABLE")) + $tables), $routine_charsets), + "TRIGGERS" => array_merge(array( + array("source" => array("TRIGGER_CATALOG", "TRIGGER_SCHEMA")) + $schemata, + array("source" => array("EVENT_OBJECT_CATALOG", "EVENT_OBJECT_SCHEMA")) + $schemata, + array("source" => array("EVENT_OBJECT_CATALOG", "EVENT_OBJECT_SCHEMA", "EVENT_OBJECT_TABLE")) + $tables, + ), $routine_charsets), "VIEWS" => array($schemata), ); return $return[$table];