/** * @param IRSVPTemplate $template * @param IRSVP $rsvp * @param ISummitEvent $event * @param string $form_name * @return BootstrapForm|PresentationSpeaker */ public function build(IRSVPTemplate $template, IRSVP $rsvp, ISummitEvent $event, $form_name = 'RSVPForm') { $fields = new FieldList(); foreach ($template->getQuestions() as $q) { $type = $q->Type(); $builder_class = $type . 'UIBuilder'; // @IRSVPQuestionTemplateUIBuilder $builder = Injector::inst()->create($builder_class); $answer = $rsvp ? $rsvp->findAnswerByQuestion($q) : null; $field = $builder->build($rsvp, $q, $answer); $fields->add($field); } $validator = null; if ($rsvp) { $fields->add(new HiddenField('rsvp_id', 'rsvp_id', $rsvp->getIdentifier())); } $fields->add(new HiddenField('event_id', 'event_id', $event->getIdentifier())); $fields->add(new HiddenField('summit_id', 'summit_id', $event->Summit()->getIdentifier())); $fields->add(new HiddenField('seat_type', 'seat_type', $event->getCurrentRSVPSubmissionSeatType())); $fields->add(new LiteralField('hr', '<hr>')); $actions = new FieldList(FormAction::create('submit_rsvp')->setTitle('Send RSVP')->addExtraClass('rsvp_submit')); $form = new BootstrapForm(Controller::curr(), $form_name . '_' . $event->getIdentifier(), $fields, $actions, $validator); $form->setAttribute('class', 'rsvp_form'); return $form; }
public function isEventInsideSummitDuration(ISummitEvent $summit_event) { $event_start_date = new DateTime($summit_event->getStartDate()); $event_end_date = new DateTime($summit_event->getEndDate()); $summit_start_date = new DateTime($this->getBeginDate()); $summit_end_date = new DateTime($this->getEndDate()); return $event_start_date >= $summit_start_date && $event_start_date <= $summit_end_date && $event_end_date <= $summit_end_date && $event_end_date >= $event_start_date; }
/** * @param ISummit $summit * @param ISummitEvent $event * @return mixed */ public function unpublishEvent(ISummit $summit, ISummitEvent $event) { $event_repository = $this->event_repository; return $this->tx_service->transaction(function () use($summit, $event, $event_repository) { if (intval($event->SummitID) !== intval($summit->getIdentifier())) { throw new EntityValidationException(array('event doest not belongs to summit')); } $event->unPublish(); return $event; }); }
/** * @param ISummitEvent $event * @return string */ public function getGoogleCalEventId(ISummitEvent $event) { $event_extra_fields = $this->Schedule()->getExtraData('SummitEvent', $event->getIdentifier()); return $event_extra_fields['GoogleCalEventId']; }
/** * @param ISummitEvent $event * @param SummitEventType $type * @return bool */ public static function checkEventType(ISummitEvent $event, SummitEventType $type) { if ($event->isPresentation()) { return self::IsPresentationEventType($type->Type); } return self::IsSummitEventType($type->Type); }