From 3abb1b88ff83dfe6fa7b14d01aa16b09c047203e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 9 Oct 2012 18:33:02 +0200 Subject: [PATCH] Fix: best method --- htdocs/societe/class/societe.class.php | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 2436435d492..63c546b85b7 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -862,7 +862,16 @@ class Societe extends CommonObject if (! empty($name)) { if (! $exact) - $name = '%'.str_replace('*', '%', $name).'%'; + { + if (preg_match('/^([\*]+)[^*]+([\*]+)$/', $name)) + { + $name = str_replace('*', '%', $name); + } + else + { + $name = '%'.$name.'%'; + } + } $sql.= " AND "; if (is_array($filters) && ! empty($filters)) $sql.= "("; @@ -876,7 +885,16 @@ class Societe extends CommonObject foreach($filters as $field => $value) { if (! $exact) - $value = str_replace('*', '%', $value); + { + if (preg_match('/^([\*]+)[^*]+([\*]+)$/', $value)) + { + $value = str_replace('*', '%', $value); + } + else + { + $value = '%'.$value.'%'; + } + } if (! $case) $sql.= " ".$clause." ".$field." LIKE '".$this->db->escape($value)."'"; else