From 96e29b2aae257f67e6f258fe2644a879f333d6cb Mon Sep 17 00:00:00 2001 From: sunhao Date: Tue, 9 Dec 2025 14:30:02 +0800 Subject: [PATCH] * [bug #67757] enhance search form handling by introducing condition for zero values. Update default data assignment to replace '0' with 'ZERO' for specific fields. --- module/search/ui/buildform.html.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/module/search/ui/buildform.html.php b/module/search/ui/buildform.html.php index 0e7d90e937..3f92140dc8 100644 --- a/module/search/ui/buildform.html.php +++ b/module/search/ui/buildform.html.php @@ -6,7 +6,8 @@ $operators = array(); foreach($lang->search->operators as $value => $text) $operators[] = array('value' => $value, 'text' => $text); /* Build conditions. */ -$conditions = array(); +$conditions = array(); +$conditionHasZeroValue = array(); foreach($fieldParams as $name => $param) { if(!isset($fields[$name])) continue; @@ -38,6 +39,7 @@ foreach($fieldParams as $name => $param) { if(empty($text)) continue; $condition->items[] = array('value' => $value, 'text' => $text); + if($value === 'ZERO') $conditionHasZeroValue[] = $name; } } @@ -65,7 +67,12 @@ if(is_array($formSession)) $defaultData['field' . $index] = $item['field']; if(isset($item['operator'])) $defaultData['operator' . $index] = $item['operator']; if(isset($item['andOr'])) $defaultData['andOr' . $index] = $item['andOr']; - if(isset($item['value'])) $defaultData['value' . $index] = $item['value']; + if(isset($item['value'])) + { + if($item['value'] === '0' && in_array($item['field'], $conditionHasZeroValue)) $item['value'] = 'ZERO'; + $defaultData['value' . $index] = $item['value']; + } + } $index++; }