diff --git a/core/module/course/course.php b/core/module/course/course.php index 247e213..207cfac 100644 --- a/core/module/course/course.php +++ b/core/module/course/course.php @@ -274,19 +274,13 @@ class course extends common ) { $_SESSION['ZWII_SITE_CONTENT'] = $courseId; } - // l'étudiant est inscrit dans le cours ET le cours est ouvert + // l'étudiant est inscrit dans le cours ET le cours est ouvert elseif ( $this->courseIsUserEnroled($courseId) && $this->courseIsAvailable($courseId) ) { $_SESSION['ZWII_SITE_CONTENT'] = $courseId; $message = sprintf(helper::translate('Bienvenue dans le cours %s'), $this->getData(['course', $courseId, 'shortTitle'])); - } - // le cours est ouvert mais l'étudiant n'est pas inscrit, on affiche la fenêtre d'inscription - elseif ($this->courseIsAvailable($courseId) && $this->courseIsUserEnroled($courseId) === false) { - $redirect = $redirect . 'course/enrol/' . $courseId; - $message = helper::translate('Veuillez vous inscrire'); - $state = true; } // Le cours est fermé elseif ($this->courseIsAvailable($courseId) === false) { @@ -299,6 +293,41 @@ class course extends common $message = sprintf(helper::translate('Ce cours ouvre le
%s
et ferme le %s'), $from, $to); } } + // le cours est ouvert, l'étudiant n'est pas inscrit, l'accès au cours est anonyme + elseif ( + $this->courseIsAvailable($courseId) && + $this->courseIsUserEnroled($courseId) === false + ) { + // Gérer les modalités d'inscription + switch ($this->getData(['course', $courseId, 'enrolment'])) { + // Anonyme + case self::COURSE_ENROLMENT_GUEST: + $_SESSION['ZWII_SITE_CONTENT'] = $courseId; + break; + // Auto avec ou sans clé + case self::COURSE_ENROLMENT_SELF: + case self::COURSE_ENROLMENT_SELF_KEY: + //L'étudiant dispsoe d'un compte + if ($this->getUser('id')) { + $redirect = $redirect . 'course/enrol/' . $courseId; + $message = helper::translate('Veuillez vous inscrire'); + $state = true; + } else { + $message = helper::translate('Vous devez disposer d\'un compte pour accéder à ce cours'); + $state = false; + } + + break; + // Par le prof + case self::COURSE_ENROLMENT_MANUAL: + $message = helper::translate('L\'enseignant ne vous pas inscrit !'); + $state = false; + break; + default: + # code... + break; + } + } // Valeurs en sortie $this->addOutput([ @@ -393,7 +422,6 @@ class course extends common $r = in_array($userId, array_keys($this->getData(['enrolment', $courseId]))); break; case self::GROUP_MEMBER: - var_dump($group); $r = in_array($userId, array_keys($this->getData(['enrolment', $courseId]))); break; // Visiteur non connecté