forked from Wavyzz/dolibarr
Merge backport
This commit is contained in:
@@ -11710,13 +11710,20 @@ function natural_search($fields, $value, $mode = 0, $nofirstand = 0)
|
||||
|
||||
$value = preg_replace('/\s*\|\s*/', '|', $value);
|
||||
|
||||
$crits = explode(' ', $value);
|
||||
// Split criteria on ' '.
|
||||
// For mode 3, the split is done later on the , only and not on the ' '.
|
||||
if ($mode != -3 && $mode != 3) {
|
||||
$crits = explode(' ', $value);
|
||||
} else {
|
||||
$crits = array($value);
|
||||
}
|
||||
|
||||
$res = '';
|
||||
if (!is_array($fields)) {
|
||||
$fields = array($fields);
|
||||
}
|
||||
|
||||
$i1 = 0; // count the nb of and criteria added (all fields / criteria)
|
||||
$i1 = 0; // count the nb of "and" criteria added (all fields / criteria)
|
||||
foreach ($crits as $crit) { // Loop on each AND criteria
|
||||
$crit = trim($crit);
|
||||
$i2 = 0; // count the nb of valid criteria added for this this first criteria
|
||||
@@ -11771,7 +11778,7 @@ function natural_search($fields, $value, $mode = 0, $nofirstand = 0)
|
||||
$listofcodes .= "'".$db->escape($val)."'";
|
||||
}
|
||||
}
|
||||
$newres .= ($i2 > 0 ? ' OR ' : '').$field." ".($mode == -3 ? 'NOT ' : '')."IN (".$db->sanitize($listofcodes, 1).")";
|
||||
$newres .= ($i2 > 0 ? ' OR ' : '').$field." ".($mode == -3 ? 'NOT ' : '')."IN (".$db->sanitize($listofcodes, 1, 0, 1).")";
|
||||
$i2++; // a criteria for 1 more field was added to string
|
||||
}
|
||||
if ($mode == -3) {
|
||||
|
||||
Reference in New Issue
Block a user