From 5b8ac830f5088afc3e3623bae05593eb3e4f19fb Mon Sep 17 00:00:00 2001 From: Andre Lorbach Date: Fri, 26 Sep 2008 16:23:59 +0200 Subject: [PATCH] Fixed bug when excluding more then one string filter from the same field type --- src/classes/logstreamdisk.class.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/classes/logstreamdisk.class.php b/src/classes/logstreamdisk.class.php index 625c420..b46fe83 100644 --- a/src/classes/logstreamdisk.class.php +++ b/src/classes/logstreamdisk.class.php @@ -758,11 +758,13 @@ class LogStreamDisk extends LogStream { // Otherwise we use OR Handling! else { - $bIsOrFilter = true; // Set isOrFilter to true - // Include Filter if ( $myfilter[FILTER_MODE] & FILTER_MODE_INCLUDE ) { + + // Set isOrFilter to true in this case + $bIsOrFilter = true; + if ( $myfilter[FILTER_MODE] & FILTER_MODE_SEARCHFULL ) { if ( strtolower($propertyvalue) == strtolower($myfilter[FILTER_VALUE]) ) @@ -774,18 +776,20 @@ class LogStreamDisk extends LogStream { $bOrFilter = true; } } - // Exclude Filter + // Exclude Filter - handeled with AND filtering! else if ( $myfilter[FILTER_MODE] & FILTER_MODE_EXCLUDE ) { if ( $myfilter[FILTER_MODE] & FILTER_MODE_SEARCHFULL ) { - if ( strtolower($propertyvalue) != strtolower($myfilter[FILTER_VALUE]) ) - $bOrFilter = true; +// if ( strtolower($propertyvalue) != strtolower($myfilter[FILTER_VALUE]) ) + if ( strtolower($propertyvalue) == strtolower($myfilter[FILTER_VALUE]) ) + $bEval = false; } else { - if ( stripos($propertyvalue, $myfilter[FILTER_VALUE]) === false ) - $bOrFilter = true; +// if ( stripos($propertyvalue, $myfilter[FILTER_VALUE]) === false ) + if ( stripos($propertyvalue, $myfilter[FILTER_VALUE]) !== false ) + $bEval = false; } } break;