allow empty for regular select menus of config variables

This commit is contained in:
Uwe Steinmann 2024-04-19 17:18:28 +02:00
parent 23b9def5c8
commit bb416ffe56

View File

@ -634,9 +634,10 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
<?php <?php
break; break;
case 'select': case 'select':
$allowempty = empty($conf['allow_empty']) ? false : $conf['allow_empty'];
if(!empty($conf['options'])) { if(!empty($conf['options'])) {
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]); $selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
echo "<select class=\"chzn-select\" name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." style=\"width: 100%;\">"; echo "<select class=\"chzn-select\"".($allowempty ? " data-allow-clear=\"true\"" : "")." name=\"extensions[".$extname."][".$confkey."][]\"".(!empty($conf['multiple']) ? " multiple" : "").(!empty($conf['size']) ? " size=\"".$conf['size']."\"" : "")." style=\"width: 100%;\">";
if(is_array($conf['options'])) { if(is_array($conf['options'])) {
$options = $conf['options']; $options = $conf['options'];
} elseif(is_string($conf['options']) && $conf['options'] == 'hook') { } elseif(is_string($conf['options']) && $conf['options'] == 'hook') {
@ -644,6 +645,8 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
} else { } else {
$options = []; $options = [];
} }
if($allowempty)
echo "<option value=\"\"></option>";
foreach($options as $key=>$opt) { foreach($options as $key=>$opt) {
echo "<option value=\"".$key."\""; echo "<option value=\"".$key."\"";
if(in_array($key, $selections)) if(in_array($key, $selections))
@ -653,7 +656,6 @@ if(($kkk = $this->callHook('getFullSearchEngine')) && is_array($kkk))
echo "</select>"; echo "</select>";
} elseif(!empty($conf['internal'])) { } elseif(!empty($conf['internal'])) {
$selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]); $selections = empty($settings->_extensions[$extname][$confkey]) ? array() : explode(",", $settings->_extensions[$extname][$confkey]);
$allowempty = empty($conf['allow_empty']) ? false : $conf['allow_empty'];
switch($conf['internal']) { switch($conf['internal']) {
case "categories": case "categories":
$categories = $dms->getDocumentCategories(); $categories = $dms->getDocumentCategories();