protected function getInputFilter($module, $controller, $inputFilterName = null)
{
$configModule = $this->configFactory->factory($module);
$config = $configModule->fetch(true);
$collectionType = $this->getCollectionType($controller);
$entityType = $this->getEntityType($controller);
if (!isset($config['zf-content-validation'][$controller]['input_filter'])) {
return new $collectionType();
}
$validator = $config['zf-content-validation'][$controller]['input_filter'];
if (!isset($config['input_filter_specs']) || !is_array($config['input_filter_specs']) || !array_key_exists($validator, $config['input_filter_specs'])) {
return false;
}
if ($inputFilterName && $inputFilterName !== $validator) {
return false;
}
// Retrieving the input filter by name
if ($inputFilterName && $inputFilterName === $validator) {
$inputFilter = new $entityType($config['input_filter_specs'][$inputFilterName]);
$inputFilter['input_filter_name'] = $inputFilterName;
return $inputFilter;
}
// Retrieving a collection
$collection = new $collectionType();
$inputFilter = new $entityType($config['input_filter_specs'][$validator]);
$inputFilter['input_filter_name'] = $validator;
$collection->enqueue($inputFilter);
return $collection;
}