if (isset($this->_free_search['empty'])) {
unset($this->_free_search['empty']);
}
- if (is_array($value)) {
- if (isset($value['field'])
- && isset($value['search'])
- && isset($value['log_op'])
- && isset($value['qry_op'])
- && isset($value['idx'])
- && isset($value['type'])
- ) {
+
+ if ($this->isValidFreeSearch($value)) {
+ //should this happen?
+ $values = [$value];
+ } else {
+ $values = $value;
+ }
+
+ foreach ($values as $value) {
+ if ($this->isValidFreeSearch($value)) {
$id = $value['idx'];
- unset($value['idx']);
//handle value according to type
switch ($value['type']) {
Analog::WARNING
);
}
- } else {
- Analog::log(
- '[AdvancedMembersList] Value for free filter should be an '
- .'array (' . gettype($value) . ' given',
- Analog::WARNING
- );
}
break;
default:
}
}
}
+
+ /**
+ * Validate free search internal array
+ *
+ * @param array $data Array to validate
+ *
+ * @return boolean
+ */
+ public static function isValidFreeSearch($data)
+ {
+ if (!is_array($data)) {
+ Analog::log(
+ '[AdvancedMembersList] Value for free filter should be an '
+ .'array (' . gettype($data) . ' given',
+ Analog::WARNING
+ );
+ return false;
+ }
+ return isset($data['field'])
+ && isset($data['search'])
+ && isset($data['log_op'])
+ && isset($data['qry_op'])
+ && isset($data['idx'])
+ && isset($data['type']);
+ }
}