diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php
index 0dee1711..2b3158f5 100644
--- a/adminer/include/adminer.inc.php
+++ b/adminer/include/adminer.inc.php
@@ -723,10 +723,30 @@ class Adminer {
*/
function editInput($table, $field, $attrs, $value) {
if ($field["type"] == "enum") {
- return (isset($_GET["select"]) ? " " : "")
- . ($field["null"] ? " " : "")
- . enum_input("radio", $attrs, $field, $value, 0) // 0 - empty
- ;
+ $options = array();
+ $selected = $value;
+ if (isset($_GET["select"])) {
+ $options[-1] = lang('original');
+ if ($selected === null) {
+ $selected = -1;
+ }
+ }
+ if ($field["null"]) {
+ $options[""] = "NULL";
+ if ($value === null && !isset($_GET["select"])) {
+ $selected = "";
+ }
+ }
+ $options[0] = lang('empty');
+ preg_match_all("~'((?:[^']|'')*)'~", $field["length"], $matches);
+ foreach ($matches[1] as $i => $val) {
+ $val = stripcslashes(str_replace("''", "'", $val));
+ $options[$i + 1] = $val;
+ if ($value === $val) {
+ $selected = $i + 1;
+ }
+ }
+ return ""; // 1 - use keys
}
return "";
}
diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php
index 01b636c1..8d39551c 100644
--- a/editor/include/adminer.inc.php
+++ b/editor/include/adminer.inc.php
@@ -478,9 +478,30 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
function editInput($table, $field, $attrs, $value) {
if ($field["type"] == "enum") {
- return (isset($_GET["select"]) ? " " : "")
- . enum_input("radio", $attrs, $field, ($value || isset($_GET["select"]) ? $value : 0), ($field["null"] ? "" : null))
- ;
+ $options = array();
+ $selected = $value;
+ if (isset($_GET["select"])) {
+ $options[-1] = lang('original');
+ if ($selected === null) {
+ $selected = -1;
+ }
+ }
+ if ($field["null"]) {
+ $options[""] = "NULL";
+ if ($value === null && !isset($_GET["select"])) {
+ $selected = "";
+ }
+ }
+ $options[0] = lang('empty');
+ preg_match_all("~'((?:[^']|'')*)'~", $field["length"], $matches);
+ foreach ($matches[1] as $i => $val) {
+ $val = stripcslashes(str_replace("''", "'", $val));
+ $options[$i + 1] = $val;
+ if ($value === $val) {
+ $selected = $i + 1;
+ }
+ }
+ return ""; // 1 - use keys
}
$options = $this->_foreignKeyOptions($table, $field["field"], $value);
if ($options !== null) {
diff --git a/plugins/enum-option.php b/plugins/enum-option.php
index cc82a125..1e89758c 100644
--- a/plugins/enum-option.php
+++ b/plugins/enum-option.php
@@ -5,6 +5,7 @@
* @author Jakub Vrana, https://www.vrana.cz/
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
+* @depreacted 4.8.4 is now default behavior
*/
class AdminerEnumOption {