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;
 }
Exemple #2
0
 /**
  * Inherit data from an {@link UserInfoInterface}.
  *
  * Copies the user image to an application attachment.
  * @param InfoInterface $info
  * @return $this
  */
 public function inherit(InfoInterface $info)
 {
     $hydrator = new EntityHydrator();
     $imageStrategy = new FileCopyStrategy(new Attachment());
     $hydrator->addStrategy('image', $imageStrategy);
     $data = $hydrator->extract($info);
     $hydrator->hydrate($data, $this);
     return $this;
 }
 public function getHydrator()
 {
     if (!$this->hydrator) {
         $hydrator = new EntityHydrator();
         $collectionStrategy = new CollectionStrategy();
         $hydrator->addStrategy('nativeLanguages', $collectionStrategy)->addStrategy('languageSkills', $collectionStrategy);
         $this->setHydrator($hydrator);
     }
     return $this->hydrator;
 }
 public function getHydrator()
 {
     if (!$this->hydrator) {
         $hydrator = new EntityHydrator();
         $collectionStrategy = new CollectionStrategy();
         $hydrator->addStrategy('educations', $collectionStrategy)->addStrategy('employments', $collectionStrategy)->addStrategy('skills', $collectionStrategy);
         $this->setHydrator($hydrator);
     }
     return $this->hydrator;
 }
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $services = $serviceLocator->getServiceLocator();
     $user = $services->get('AuthenticationService')->getUser();
     $fieldset = new UserInfoFieldset();
     $imageEntity = new UserImage();
     $imageEntity->setUser($user);
     $strategy = new FileUploadStrategy($imageEntity);
     $hydrator = new EntityHydrator();
     $hydrator->addStrategy('image', $strategy);
     $fieldset->setHydrator($hydrator);
     return $fieldset;
 }
 public function getHydrator()
 {
     if (!$this->hydrator) {
         $hydrator = new EntityHydrator();
         $formFactory = $this->getFormFactory();
         $formElementManager = $formFactory->getFormElementManager();
         $serviceLocator = $formElementManager->getServiceLocator();
         $repositoryManager = $serviceLocator->get('repositories');
         $repOrganizationName = $repositoryManager->get('Organizations/OrganizationName');
         $organizationName = new OrganizationNameStrategy($repOrganizationName);
         $hydrator->addStrategy('organizationName', $organizationName);
         $this->setHydrator($hydrator);
     }
     return $this->hydrator;
 }
 /**
  * Creates fieldset
  * {@inheritdoc}
  *
  * @return EmployeesFieldset
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     /* @var $serviceLocator \Zend\ServiceManager\AbstractPluginManager
      * @var $headscript     \Zend\View\Helper\HeadScript */
     $services = $serviceLocator->getServiceLocator();
     $helpers = $services->get('ViewHelperManager');
     $headscript = $helpers->get('headscript');
     $basepath = $helpers->get('basepath');
     $fieldset = new EmployeesFieldset();
     $hydrator = new EntityHydrator();
     $hydrator->addStrategy('employees', new CollectionStrategy());
     $fieldset->setHydrator($hydrator);
     $headscript->appendFile($basepath('Organizations/js/organizations.employees.js'));
     return $fieldset;
 }
Exemple #8
0
 /**
  * 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;
 }