public function addPostFormPart(\Symbb\Core\EventBundle\Event\FormPostEvent $event) { $builder = $event->getBuilder(); $groupManager = $event->getGroupManager(); $groups = $groupManager->findAll(); $groupArray = array(); foreach ($groups as $group) { $groupArray[$group->getId()] = $group->getName(); } $tz = $event->getUserManager()->getTimezone(); $now = new \DateTime(); $now->setTimezone($tz); $builder->add('calendarName', 'text', array('mapped' => false, 'required' => false, 'label' => 'Title', 'constraints' => array(new \Symfony\Component\Validator\Constraints\Length(array('min' => 3))))); $builder->add('calendarStartDate', 'datetime', array('mapped' => false, 'required' => false, 'label' => 'Start Date', 'input' => 'datetime', 'widget' => 'single_text', 'view_timezone' => $tz->getName(), 'format' => \IntlDateFormatter::MEDIUM, 'attr' => array('class' => 'datetime'))); $builder->add('calendarEndDate', 'datetime', array('mapped' => false, 'required' => false, 'label' => 'End Date', 'input' => 'datetime', 'widget' => 'single_text', 'view_timezone' => $tz->getName(), 'format' => \IntlDateFormatter::MEDIUM, 'attr' => array('class' => 'datetime'))); $builder->add('calendarGroups', 'choice', array('mapped' => false, 'required' => false, 'label' => 'Visible to', 'choices' => $groupArray, 'multiple' => true)); }
public function postForm(FormPostEvent $event) { $builder = $event->getBuilder(); $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use($builder) { $form = $event->getForm(); $data = $event->getData(); /* Check we're looking at the right data/form */ if ($data instanceof Post) { $repo = $this->em->getRepository('SymbbExtensionSurveyBundle:Survey'); $survey = $repo->findOneBy(array('post' => $data->getId())); if (!is_object($survey)) { $survey = new Survey(); $survey->setPost($data); $survey->setEnd(null); } if (!$survey->getEnd()) { $survey->setEnd(null); } $form->add("extensionSurvey", new SurveyType($this->user), array("data" => $survey)); } }); }