From 21b2f6d9c68c96c447b5e6f24a5d4a8265d43c89 Mon Sep 17 00:00:00 2001 From: Luca Haid Date: Thu, 28 Nov 2024 13:35:57 +0000 Subject: [PATCH] =?UTF-8?q?improved=20search=20with=20ss=20or=20=C3=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/Address/AddressController.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/application/Address/AddressController.php b/application/Address/AddressController.php index 319b63571..7a10638df 100644 --- a/application/Address/AddressController.php +++ b/application/Address/AddressController.php @@ -79,7 +79,15 @@ class AddressController extends mfBaseController { if(array_key_exists("kunde", $filter) && $filter["kunde"]) { $kunde = $this->db()->escape($filter['kunde']); - $new_filter['add-where'] .= " AND (company like '%$kunde%' OR firstname like '%$kunde%' OR lastname like '%$kunde%' OR concat(firstname, ' ', lastname) like '%$kunde%' OR concat(lastname, ' ', firstname) like '%$kunde%')"; + // if kunde contains ß or ss we want to search both cases but not with % because it can lead to wrong results + if (strpos($kunde, "ß") !== false || strpos($kunde, "ss") !== false) { + $kundeWithSS = str_replace("ß", "ss", $kunde); + $kundeWithoutSS = str_replace("ss", "ß", $kunde); + $new_filter['add-where'] .= " AND (company like '%$kundeWithoutSS%' OR firstname like '%$kundeWithoutSS%' OR lastname like '%$kundeWithoutSS%' OR concat(firstname, ' ', lastname) like '%$kundeWithoutSS%' OR concat(lastname, ' ', firstname) like '%$kundeWithoutSS%')"; + $new_filter['add-where'] .= " OR (company like '%$kundeWithSS%' OR firstname like '%$kundeWithSS%' OR lastname like '%$kundeWithSS%' OR concat(firstname, ' ', lastname) like '%$kundeWithSS%' OR concat(lastname, ' ', firstname) like '%$kundeWithSS%')"; + } else { + $new_filter['add-where'] .= " AND (company like '%$kunde%' OR firstname like '%$kunde%' OR lastname like '%$kunde%' OR concat(firstname, ' ', lastname) like '%$kunde%' OR concat(lastname, ' ', firstname) like '%$kunde%')"; + } } if(!array_key_exists("parents_only", $filter)) { @@ -110,7 +118,7 @@ class AddressController extends mfBaseController { $new_filter[$name] = $value; } } - + return $new_filter; }