Beispiel #1
0
 /**
  * This method is called right after the post is stored in the database during the Form submit.
  *
  * @param FormSubmitEvent $event
  */
 public function postFormSubmit(FormSubmitEvent $event)
 {
     $post = $event->getPost();
     $mailinglists = $email = null;
     foreach ($post->getValueSet()->getValues() as $value) {
         if ($value instanceof MailingListSubscribeValue && $value->getValue() == true) {
             $parameters = $value->getAttribute()->getParameters();
             if (isset($parameters['mailingLists'])) {
                 $mailinglists = $this->mailingListManager->getRepository()->findByIds($parameters['mailingLists']);
             }
         } elseif ($value instanceof EmailValue) {
             $email = $value->getValue();
         }
     }
     if ($email && $mailinglists) {
         foreach ($mailinglists as $mailinglist) {
             $subscription = new Subscription();
             $subscription->setEmail($email);
             $subscription->setMailingList($mailinglist);
             $this->subscriptionManager->save($subscription);
         }
     }
 }
Beispiel #2
0
 /**
  * @inheritdoc
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefaults(['class' => $this->mailingListManager->getClass(), 'choice_label' => 'displayName', 'expanded' => true, 'multiple' => true, 'query_builder' => function (EntityRepository $repository) {
         return $repository->createQueryBuilder('m')->orderBy('m.displayName');
     }]);
 }