From a195fab2f160c399575c7b1a24e77a3d16733dcf Mon Sep 17 00:00:00 2001 From: Brian Shaughnessy Date: Wed, 27 Nov 2013 15:36:17 -0500 Subject: [PATCH] CRM-13851 phone search wildcard handling --- CRM/Contact/BAO/Query.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/CRM/Contact/BAO/Query.php b/CRM/Contact/BAO/Query.php index 5d5a8174c3..d670cd4b5f 100644 --- a/CRM/Contact/BAO/Query.php +++ b/CRM/Contact/BAO/Query.php @@ -3183,11 +3183,15 @@ WHERE id IN ( $groupIDs ) */ function phone_numeric(&$values) { list($name, $op, $value, $grouping, $wildcard) = $values; - // Strip non-numeric characters - $number = preg_replace('/[^\d]/', '', $value); + // Strip non-numeric characters; allow wildcards + $number = preg_replace('/[^\d%]/', '', $value); if ($number) { + if ( strpos($number, '%') === FALSE ) { + $number = "%$number%"; + } + $this->_qill[$grouping][] = ts('Phone number contains') . " $number"; - $this->_where[$grouping][] = self::buildClause('civicrm_phone.phone_numeric', 'LIKE', "%$number%", 'String'); + $this->_where[$grouping][] = self::buildClause('civicrm_phone.phone_numeric', 'LIKE', "$number", 'String'); $this->_tables['civicrm_phone'] = $this->_whereTables['civicrm_phone'] = 1; } } -- 2.25.1