event search breakage
authorEileen McNaughton <eileen@fuzion.co.nz>
Fri, 17 Jul 2015 04:53:58 +0000 (16:53 +1200)
committerEileen McNaughton <eileen@fuzion.co.nz>
Fri, 17 Jul 2015 04:54:34 +0000 (16:54 +1200)
CRM/Contact/BAO/Query.php
CRM/Core/DAO.php

index edffa26e80108aca4adf8b9eade39323a9f48255..562ed14e1ce352d3e721bf8faf17a6da2ee7561e 100644 (file)
@@ -5181,8 +5181,19 @@ SELECT COUNT( conts.total_amount ) as cancel_count,
           // widely used and consistent across the codebase
           // adding this here won't accept the search functions which don't submit an array
           if (($queryString = CRM_Core_DAO::createSqlFilter($field, $value, $dataType)) != FALSE) {
+
             return $queryString;
           }
+
+          // This is the here-be-dragons zone. We have no other hopes left for an array so lets assume it 'should' be array('IN' => array(2,5))
+          // but we got only array(2,5) from the form.
+          // We could get away with keeping this in 4.6 if we make it such that it throws an enotice in 4.7 so
+          // people have to de-slopify it.
+          if (!empty($value[0])) {
+            if (($queryString = CRM_Core_DAO::createSqlFilter($field, array($op => $value), $dataType)) != FALSE) {
+              return $queryString;
+            }
+          }
         }
         $value = CRM_Utils_Type::escape($value, $dataType);
         // if we don't have a dataType we should assume
index 6bba6d741a37218f22414c5d374234b5929e72f7..a08600a82663e97d2e3b5d2f4aa1ba4fbbac8b1d 100644 (file)
@@ -2274,7 +2274,7 @@ SELECT contact_id
     // http://issues.civicrm.org/jira/browse/CRM-9150 - stick with 'simple' operators for now
     // support for other syntaxes is discussed in ticket but being put off for now
     foreach ($filter as $operator => $criteria) {
-      if (in_array($operator, self::acceptedSQLOperators())) {
+      if (in_array($operator, self::acceptedSQLOperators(), TRUE)) {
         switch ($operator) {
           // unary operators
           case 'IS NULL':