コード例 #1
0
 public function createCourseSession(Course $course, $name = null, $description = null, array $cursus = [], $creationDate = null, $startDate = null, $endDate = null, $defaultSession = false, $publicRegistration = false, $publicUnregistration = false, $registrationValidation = false, $userValidation = false, $organizationValidation = false, $maxUsers = null, $type = 0, array $validators = [], $eventRegistrationType = CourseSession::REGISTRATION_AUTO, $displayOrder = 500, $color = null)
 {
     if (is_null($creationDate)) {
         $creationDate = new \DateTime();
     }
     $session = new CourseSession();
     if ($name) {
         $session->setName($name);
     }
     foreach ($cursus as $c) {
         $session->addCursus($c);
     }
     $session->setDescription($description);
     $session->setCreationDate($creationDate);
     $session->setDefaultSession((bool) $defaultSession);
     $session->setPublicRegistration((bool) $publicRegistration);
     $session->setPublicUnregistration((bool) $publicUnregistration);
     $session->setRegistrationValidation((bool) $registrationValidation);
     $session->setUserValidation((bool) $userValidation);
     $session->setOrganizationValidation((bool) $organizationValidation);
     $session->setMaxUsers($maxUsers);
     $session->setType($type);
     $session->setEventRegistrationType($eventRegistrationType);
     $session->setDisplayOrder($displayOrder);
     $details = [];
     $details['color'] = $color;
     $total = $this->platformConfigHandler->hasParameter('cursus_session_default_total') ? $this->platformConfigHandler->getParameter('cursus_session_default_total') : null;
     $details['total'] = $total;
     $session->setDetails($details);
     if ($defaultSession) {
         $this->resetDefaultSessionByCourse($course);
     }
     if (is_null($startDate)) {
         $startDate = $creationDate;
     }
     $session->setStartDate($startDate);
     if (is_null($endDate)) {
         $endDate = clone $startDate;
         $endDate->add(new \DateInterval('P' . $course->getDefaultSessionDuration() . 'D'));
     }
     $session->setEndDate($endDate);
     foreach ($validators as $validator) {
         $session->addValidator($validator);
     }
     $this->createCourseSessionFromSession($session, $course);
     if ($course->getWithSessionEvent()) {
         $this->createSessionEvent($session);
     }
     return $session;
 }