]> git.agnieray.net Git - galette.git/commitdiff
Fix saved saerch with dynamic contribution fields; refs #1367
authorJohan Cwiklinski <jcwiklinski@teclib.com>
Sun, 1 Dec 2019 09:24:04 +0000 (10:24 +0100)
committerJohan Cwiklinski <jcwiklinski@teclib.com>
Sun, 1 Dec 2019 09:24:04 +0000 (10:24 +0100)
galette/lib/Galette/Filters/AdvancedMembersList.php

index e547b0a6b9155864eb35c83923388afb16bedf78..e8bfec00ce5c41a8cf1edd1ea2b5087f068ba7c1 100644 (file)
@@ -148,14 +148,7 @@ class AdvancedMembersList extends MembersList
     );
 
     //an empty contributions dynamic field criteria to begin
-    private $_contrib_dynamic = array(
-        'empty' => array(
-            'field'     => '',
-            'search'    => '',
-            'log_op'    => self::OP_AND,
-            'qry_op'    => self::OP_EQUALS
-        )
-    );
+    private $_contrib_dynamic = array();
 
     /**
      * Default constructor
@@ -238,14 +231,7 @@ class AdvancedMembersList extends MembersList
             )
         );
 
-        $this->_contrib_dynamic = array(
-            'empty' => array(
-                'field'     => '',
-                'search'    => '',
-                'log_op'    => self::OP_AND,
-                'qry_op'    => self::OP_EQUALS
-            )
-        );
+        $this->_contrib_dynamic = array();
     }
 
     /**
@@ -551,15 +537,22 @@ class AdvancedMembersList extends MembersList
                         }
                     }
                     break;
+                case 'contrib_dynamic':
+                    if (is_array($value)) {
+                        $this->_contrib_dynamic = $value;
+                    } else {
+                        Analog::log(
+                            '[AdvancedMembersList] Value for dynamic contribution fields filter should be an '
+                            .'array (' . gettype($v) . ' given',
+                            Analog::WARNING
+                        );
+                    }
+                    break;
                 default:
                     if (substr($name, 0, 4) === 'cds_'
                         || substr($name, 0, 5) === 'cdsc_'
                     ) {
                         if (is_array($value) || trim($value) !== '') {
-                            if (isset($this->_contrib_dynamic['empty'])) {
-                                unset($this->_contrib_dynamic['empty']);
-                            }
-
                             $id = null;
                             if (substr($name, 0, 5) === 'cdsc_') {
                                 $id = substr($name, 5, strlen($name));