Merge pull request #180 from parsecsv/more-conditions-bu

Bugfix for verbal conditions
This commit is contained in:
susgo
2019-11-04 21:20:58 +01:00
committed by GitHub
3 changed files with 93 additions and 8 deletions

View File

@@ -1054,8 +1054,20 @@ class Csv {
if (preg_match('/^(.+) (' . $operators_regex . ') (.+)$/i', trim($condition), $capture)) {
$field = $capture[1];
$op = $capture[2];
$op = strtolower($capture[2]);
$value = $capture[3];
if ($op == 'equals' && preg_match('/^(.+) is (less|greater) than or$/i', $field, $m)) {
$field = $m[1];
$op = $m[2] == 'less' ? '<=' : '>=';
}
if ($op == 'is' && preg_match('/^(less|greater) than (.+)$/i', $value, $m)) {
$value = $m[2];
$op = $m[1] == 'less' ? '<' : '>';
}
if ($op == 'is' && preg_match('/^not (.+)$/i', $value, $m)) {
$value = $m[1];
$op = '!=';
}
if (preg_match('/^([\'"])(.*)([\'"])$/', $value, $capture) && $capture[1] == $capture[3]) {
$value = strtr($capture[2], array(