Fixed search criteria handling, added more asserts, 'my-/_' prefix is not allowed
[core.git] / inc / classes / main / criteria / search / class_SearchCriteria.php
index ded04793312a5f9c37b4f40e8d06c10f0b88d5bd..170986c0caf9efc6899ac670cf1e23247189b3ea 100644 (file)
@@ -154,7 +154,7 @@ class SearchCriteria extends BaseCriteria implements LocalSearchCriteria {
                // 'choice' check
                if ((is_array($searchChoice)) && (count($valueArray) == 1)) {
                        // $value is a single-search value, so use in_array()
-                       $isMatching = (((is_null($searchDefault)) || ($isMatching === TRUE)) && ((is_null($searchChoice)) || ((is_array($searchChoice)) && (in_array($value, $searchChoice)))));
+                       $isMatching = ((($isMatching === TRUE) || (is_null($searchDefault))) && ((is_null($searchChoice)) || ((is_array($searchChoice)) && (in_array($value, $searchChoice)))));
 
                        // Debug message
                        //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SEARCH-CRITERIA[' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[]=' . gettype($searchChoice) . ',value=' . $value . ',isMatching=' . intval($isMatching) . ' - SINGLE-MATCH');
@@ -177,7 +177,7 @@ class SearchCriteria extends BaseCriteria implements LocalSearchCriteria {
                        //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SEARCH-CRITERIA[' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[]=' . gettype($searchChoice) . ',valueArray()=' . count($valueArray) . ',idx=' . $idx . ',isMatching=' . intval($isMatching) . ' - CHOICE-MATCH');
                } else {
                        // Choice-match is NULL?
-                       $isMatching = (($isMatching === TRUE) || (is_null($searchChoice)));
+                       $isMatching = (($isMatching === TRUE) || (is_null($searchDefault)));
 
                        // Debug message
                        //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SEARCH-CRITERIA[' . __LINE__ . ']: getCriteriaChoiceElement(' . $key . ')[]=' . gettype($searchChoice) . ',value=' . $value . ',isMatching=' . intval($isMatching) . ' - NULL-MATCH');