protected function addInputFilter($module, $controller, $inputFilter, $validatorName = null)
{
if (!$this->controllerExists($module, $controller)) {
return false;
}
$configModule = $this->configFactory->factory($module);
$config = $configModule->fetch(true);
if (!isset($config['zf-content-validation'][$controller])) {
$validatorName = $validatorName ?: $this->generateValidatorName($controller);
$config = $configModule->patchKey(['zf-content-validation', $controller, 'input_filter'], $validatorName);
}
$validator = $config['zf-content-validation'][$controller]['input_filter'];
if (!isset($config['input_filter_specs'])) {
$config['input_filter_specs'] = [];
}
if (!isset($config['input_filter_specs'][$validator])) {
$config['input_filter_specs'][$validator] = [];
}
$config['input_filter_specs'][$validator] = $inputFilter;
$updated = $configModule->patchKey(['input_filter_specs', $validator], $inputFilter);
if (!is_array($updated)) {
return false;
}
$entityType = $this->getEntityType($controller);
$return = new $entityType($updated['input_filter_specs'][$validator]);
$return['input_filter_name'] = $validator;
return $return;
}