public function createService(ServiceLocatorInterface $serviceLocator) { $form = new Form(); $serviceLocator->injectFactory($form); $form->add(array('type' => $this->fileElement, 'name' => $this->fileName, 'attributes' => array('class' => 'hide'))); $form->get($this->fileName)->setIsMultiple($this->multiple); $user = $serviceLocator->getServiceLocator()->get('AuthenticationService')->getUser(); $fileEntity = new $this->fileEntityClass(); if ($user instanceof AnonymousUser) { $fileEntity->getPermissions()->grant($user, 'all'); } else { $fileEntity->setUser($user); } $strategy = new FileUploadStrategy($fileEntity); if ($this->multiple) { $hydrator = new FileCollectionUploadHydrator($this->fileName, $strategy); $form->add(array('type' => 'button', 'name' => 'remove', 'options' => array('label' => 'Remove all'), 'attributes' => array('class' => 'fu-remove-all btn btn-danger btn-xs pull-right'))); } else { $hydrator = new EntityHydrator(); $hydrator->addStrategy($this->fileName, $strategy); } $form->setHydrator($hydrator); $form->setOptions(array('use_files_array' => true)); $this->configureForm($form); return $form; }
/** * The configuration from the FileUploadFactory configuration * * @param ServiceLocatorInterface $serviceLocator * @return Form */ public function createService(ServiceLocatorInterface $serviceLocator) { /* @var $serviceLocator \Zend\Form\FormElementManager */ $service = $serviceLocator->getServiceLocator(); $options = null; if ($this->options) { $options = $service->get($this->options); } // Retrieve configuration. if ($this->configKey) { $services = $serviceLocator->getServiceLocator(); $config = $services->get('config'); $config = isset($config['form_elements_config']['file_upload_factories'][$this->configKey]) ? $config['form_elements_config']['file_upload_factories'][$this->configKey] : array(); $this->config = $config; } $form = new Form(); $serviceLocator->injectFactory($form); $form->add(array('type' => $this->fileElement, 'name' => $this->fileName, 'options' => array('use_formrow_helper' => false), 'attributes' => array('class' => 'hide'))); /* @var $element \Core\Form\Element\FileUpload */ $element = $form->get($this->fileName); $element->setIsMultiple($this->multiple); $user = $serviceLocator->getServiceLocator()->get('AuthenticationService')->getUser(); /* @var $fileEntity \Core\Entity\FileInterface */ $fileEntity = new $this->fileEntityClass(); if ($user instanceof AnonymousUser) { $fileEntity->getPermissions()->grant($user, 'all'); } else { $fileEntity->setUser($user); } $strategy = new FileUploadStrategy($fileEntity); if ($this->multiple) { $hydrator = new FileCollectionUploadHydrator($this->fileName, $strategy); $form->add(array('type' => 'button', 'name' => 'remove', 'options' => array('label' => 'Remove all'), 'attributes' => array('class' => 'fu-remove-all btn btn-danger btn-xs pull-right'))); } else { $hydrator = new EntityHydrator(); $hydrator->addStrategy($this->fileName, $strategy); } $form->setHydrator($hydrator); $form->setOptions(array('use_files_array' => true)); $this->configureForm($form, $options); return $form; }