From 03190b95cf4df470e2792f4fea678ee1d2b163e3 Mon Sep 17 00:00:00 2001 From: annProg Date: Mon, 28 Sep 2020 22:16:49 +0800 Subject: [PATCH] fix search error when search string '0' --- .../criteriontooql.class.inc.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/sources/application/search/criterionconversion/criteriontooql.class.inc.php b/sources/application/search/criterionconversion/criteriontooql.class.inc.php index cf3e84c8ca..d66f5fd83d 100644 --- a/sources/application/search/criterionconversion/criteriontooql.class.inc.php +++ b/sources/application/search/criterionconversion/criteriontooql.class.inc.php @@ -114,12 +114,21 @@ class CriterionToOQL extends CriterionConversionAbstract return addslashes($aValues[$iIndex]['value']); } + private static function IsEmpty($sValue) + { + if ($sValue === "0") + { + return false; + } + return empty($sValue); + } + protected static function ContainsToOql($oSearch, $sRef, $aCriteria) { $aValues = self::GetValues($aCriteria); $sValue = self::GetValue($aValues, 0); - if (empty($sValue)) + if (self::IsEmpty($sValue)) { return "1"; } @@ -132,7 +141,7 @@ class CriterionToOQL extends CriterionConversionAbstract $aValues = self::GetValues($aCriteria); $sValue = self::GetValue($aValues, 0); - if (empty($sValue)) + if (self::IsEmpty($sValue)) { return "1"; } @@ -145,7 +154,7 @@ class CriterionToOQL extends CriterionConversionAbstract $aValues = self::GetValues($aCriteria); $sValue = self::GetValue($aValues, 0); - if (empty($sValue)) + if (self::IsEmpty($sValue)) { return "1"; } @@ -162,7 +171,7 @@ class CriterionToOQL extends CriterionConversionAbstract return "({$sRef} = '0')"; } - if (empty($sValue) && (!(isset($aCriteria['has_undefined'])) || !($aCriteria['has_undefined']))) + if (self::IsEmpty($sValue) && (!(isset($aCriteria['has_undefined'])) || !($aCriteria['has_undefined']))) { return "1"; } @@ -175,7 +184,7 @@ class CriterionToOQL extends CriterionConversionAbstract $aValues = self::GetValues($aCriteria); $sValue = self::GetValue($aValues, 0); - if (empty($sValue)) + if (self::IsEmpty($sValue)) { return "1"; }