From a5e33c6a36352e2f6917fa1131c7e5fa2f5fc77f Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 13 Sep 2022 12:14:08 +0200 Subject: [baseconfig/baseconfig_bwlp] Make preferred sound output free text --- modules-available/baseconfig/inc/validator.inc.php | 2 ++ modules-available/baseconfig/page.inc.php | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'modules-available/baseconfig') diff --git a/modules-available/baseconfig/inc/validator.inc.php b/modules-available/baseconfig/inc/validator.inc.php index 38c595c4..23e3e8f8 100644 --- a/modules-available/baseconfig/inc/validator.inc.php +++ b/modules-available/baseconfig/inc/validator.inc.php @@ -33,6 +33,8 @@ class Validator return self::validateMultiList($data[1], $displayValue); case 'multiinput': return self::validateMultiInput($data[1] ?? [], $displayValue); + case 'suggestions': + return true; default: ErrorHandler::traceError('Unknown validation method: ' . $data[0]); } diff --git a/modules-available/baseconfig/page.inc.php b/modules-available/baseconfig/page.inc.php index 7f9bef1f..a1921084 100644 --- a/modules-available/baseconfig/page.inc.php +++ b/modules-available/baseconfig/page.inc.php @@ -294,7 +294,7 @@ class Page_BaseConfig extends Page if ($disabled) { $args['disabled'] = true; } - $inner = ""; + $extra = $inner = ""; /* -- */ $parts = explode(':', $validator, 2); @@ -314,6 +314,21 @@ class Page_BaseConfig extends Page unset($args['type']); $current = ''; + } elseif ($parts[0] === 'suggestions') { + + $extra = ''; + $items = explode('|', $parts[1]); + foreach ($items as $item) { + $extra .= ''; + } + $extra .= ''; + + $tag = 'input'; + $args['value'] = $current; + $args['type'] = 'text'; + $args['list'] = 'list-' . $setting; + $current = ''; + } elseif ($parts[0] == 'multilist') { $items = explode('|', $parts[1]); @@ -362,7 +377,7 @@ class Page_BaseConfig extends Page $output .= '>' . $inner . ""; } - return $output; + return $output . $extra; } } -- cgit v1.2.3-55-g7522