/**
  * {@inheritDoc}
  */
 protected function marshalInputFilter(array &$config, ServiceLocatorInterface $services, FormFactory $formFactory)
 {
     if ($services->has('InputFilterManager')) {
         $inputFilterFactory = $formFactory->getInputFilterFactory();
         $inputFilterFactory->setInputFilterManager($services->get('InputFilterManager'));
     }
     parent::marshalInputFilter($config, $services, $formFactory);
 }
Esempio n. 2
0
 /**
  * Get InputFilter factory
  *
  * @{inheritdoc}
  * @return InputFilterFactory
  */
 public function getInputFilterFactory()
 {
     $factory = parent::getInputFilterFactory();
     // Ensure Pi\Filter\FilterChain is used
     if (!$factory->getDefaultFilterChain() instanceof FilterChain) {
         $factory->setDefaultFilterChain(new FilterChain());
     }
     return $factory;
 }
Esempio n. 3
0
 /**
  * Get current input filter factory
  *
  * If none provided, uses an unconfigured instance.
  *
  * @return InputFilterFactory
  */
 public function getInputFilterFactory()
 {
     $inputFilterFactory = parent::getInputFilterFactory();
     if (!$this->inputFilterFactoryDefaultsInitialized) {
         $this->inputFilterFactoryDefaultsInitialized = true;
         $dfc = $inputFilterFactory->getDefaultFilterChain();
         $dvc = $inputFilterFactory->getDefaultValidatorChain();
         if (empty($dfc)) {
             $inputFilterFactory->setDefaultFilterChain($dfc = new FilterChain());
         }
         if (empty($dvc)) {
             $inputFilterFactory->setDefaultValidatorChain($dvc = new ValidatorChain());
         }
         $initializer = array($this, 'initializeApplicationServiceLocators');
         $dfc->getPluginManager()->addInitializer($initializer, false);
         $dvc->getPluginManager()->addInitializer($initializer, false);
     }
     return $inputFilterFactory;
 }
 /**
  * Marshal the input filter into the configuration
  *
  * If an input filter is specified:
  * - if the InputFilterManager is present, checks if it's there; if so,
  *   retrieves it and resets the specification to the instance.
  * - otherwise, pulls the input filter factory from the form factory, and
  *   attaches the FilterManager and ValidatorManager to it.
  *
  * @param array $config
  * @param ServiceLocatorInterface $services
  * @param Factory $formFactory
  */
 protected function marshalInputFilter(array &$config, ServiceLocatorInterface $services, Factory $formFactory)
 {
     if (!isset($config['input_filter'])) {
         return;
     }
     if ($config['input_filter'] instanceof InputFilterInterface) {
         return;
     }
     if (is_string($config['input_filter']) && $services->has('InputFilterManager')) {
         $inputFilters = $services->get('InputFilterManager');
         if ($inputFilters->has($config['input_filter'])) {
             $config['input_filter'] = $inputFilters->get($config['input_filter']);
             return;
         }
     }
     $inputFilterFactory = $formFactory->getInputFilterFactory();
     $inputFilterFactory->getDefaultFilterChain()->setPluginManager($services->get('FilterManager'));
     $inputFilterFactory->getDefaultValidatorChain()->setPluginManager($services->get('ValidatorManager'));
 }
 /**
  * Inject the annotation builder's factory instance with the FormElementManager.
  *
  * Also injects the factory with the InputFilterManager if present.
  *
  * @param Factory $factory
  * @param ContainerInterface $container
  */
 private function injectFactory(Factory $factory, ContainerInterface $container)
 {
     $factory->setFormElementManager($container->get('FormElementManager'));
     if ($container->has('InputFilterManager')) {
         $inputFilters = $container->get('InputFilterManager');
         $factory->getInputFilterFactory()->setInputFilterManager($inputFilters);
     }
 }