/** * @param FilterDatasourceAdapterInterface $ds * @param mixed $data * * @return array|bool */ protected function prepareData(FilterDatasourceAdapterInterface $ds, $data) { if (!is_array($data) || !array_key_exists('value', $data) || !array_key_exists('type', $data) || !$data['value'] && FilterType::TYPE_EMPTY !== $data['type']) { return false; } $data['value'] = preg_quote($data['value']); $data['type'] = isset($data['type']) ? $data['type'] : null; if ('in' === $data['type']) { $data['value'] = explode(',', $data['value']); } else { $format = $ds->getFormatByComparisonType($data['type']); $data['value'] = sprintf($format, $data['value']); } return $data; }