public function validate($value, Constraint $constraint) { if ($value !== null) { $ical = new ICal($value->getPathName()); $events = $ical->events(); if ($events === null || count($events) === 0) { $this->context->addViolation($constraint->message); } } }
/** * Imports ical files. * * @param UploadedFile $file * @param Workspace $workspace * * @return int number of events saved */ public function importEvents(UploadedFile $file, $workspace = null) { $ical = new ICal($file->getPathname()); $events = $ical->events(); $tabs = []; foreach ($events as $event) { $e = new Event(); $e->setTitle($event->summary); $e->setStart($ical->iCalDateToUnixTimestamp($event->dtstart)); $e->setEnd($ical->iCalDateToUnixTimestamp($event->dtend)); $e->setDescription($event->description); if ($workspace) { $e->setWorkspace($workspace); } $e->setUser($this->tokenStorage->getToken()->getUser()); $e->setPriority('#01A9DB'); $this->om->persist($e); //the flush is required to generate an id $this->om->flush(); $tabs[] = $e->jsonSerialize(); } return $tabs; }
</div> </div> </div> <?php } ?> </div> <?php if ($events) { echo '<h4>All Events:</h4>'; } ?> <div class="row"> <?php $events = $ical->events(); foreach ($events as $event) { ?> <div class="col-sm-6 col-md-4"> <div class="thumbnail"> <div class="caption"> <h3><?php echo $event->summary . ' (' . date('d-m-Y H:i', $ical->iCalDateToUnixTimestamp($event->dtstart)) . ')'; ?> </h3> <?php echo $event->printData(); ?> </div> </div> </div>