diff --git a/core/module/course/course.php b/core/module/course/course.php index b121048..69e4bef 100644 --- a/core/module/course/course.php +++ b/core/module/course/course.php @@ -22,6 +22,7 @@ class course extends common 'add' => self::GROUP_ADMIN, 'delete' => self::GROUP_ADMIN, 'swap' => self::GROUP_VISITOR, + 'enrol' => self::GROUP_VISITOR, ]; public static $courseAccess = [ @@ -261,6 +262,54 @@ class course extends common * Fonction utilisée par le noyau */ public function swap() + { + $courseId = $this->getUrl(2); + $message = ''; + $redirect = helper::baseUrl(); + $state = true; + // Afficher le cous + if ( + // Sortir du cours et afficher l'accueil + $courseId === 'home' + // l'étudiant est inscrit dans le cours ET le cours est ouvert + || + ( + $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 fermé + if ($this->courseIsAvailable($courseId) === false) { + // Génération du message + $message = 'Ce cours est fermé.'; + if ($this->getData(['course', $courseId, 'access']) === self::COURSE_ACCESS_DATE) { + $from = helper::dateUTF8('%m %B %Y', $this->getData(['course', $courseId, 'openingDate'])) . helper::translate(' à ') . helper::dateUTF8('%H:%M', $this->getData(['course', $courseId, 'openingDate'])); + $to = helper::dateUTF8('%m %B %Y', $this->getData(['course', $courseId, 'closingDate'])) . helper::translate(' à ') . helper::dateUTF8('%H:%M', $this->getData(['course', $courseId, 'closingDate'])); + $message = sprintf(helper::translate('Ce cours ouvre le
%s
et ferme le %s'), $from, $to); + $state = false; + } + } + // le cours est ouvert mais l'étudiant n'est pas inscrit, on affiche la bannière + if ($this->courseIsAvailable($courseId) && $this->courseIsUserEnroled($courseId) === false ) { + $redirect = $redirect . 'course/enrol/' . $courseId; + $message = helper::translate('Veuillez vous inscrire'); + $state = true; + } + + // Valeurs en sortie + $this->addOutput([ + 'redirect' => $redirect, + 'notification' => helper::translate($message), + 'state' => $state, + ]); + + } + + // Génération du message d'inscription + public function enrol() { $courseId = $this->getUrl(2); $userId = $this->getUser('id'); @@ -293,33 +342,6 @@ class course extends common ]); } } - // Le cours est disponible ? - if ( - $courseId === 'home' || - $this->courseIsUserEnroled($courseId) === true - ) { - $_SESSION['ZWII_SITE_CONTENT'] = $courseId; - // Valeurs en sortie - $this->addOutput([ - 'redirect' => helper::baseUrl(), - ]); - return; - } else { - $message = 'Ce cours est fermé.'; - if ($this->getData(['course', $courseId, 'access']) === self::COURSE_ACCESS_DATE) { - $from = helper::dateUTF8('%m %B %Y', $this->getData(['course', $courseId, 'openingDate'])) . helper::translate(' à ') . helper::dateUTF8('%H:%M', $this->getData(['course', $courseId, 'openingDate'])); - $to = helper::dateUTF8('%m %B %Y', $this->getData(['course', $courseId, 'closingDate'])) . helper::translate(' à ') . helper::dateUTF8('%H:%M', $this->getData(['course', $courseId, 'closingDate'])); - $message = sprintf(helper::translate('Ce cours ouvre le
%s
et ferme le %s'), $from, $to); - } - // Valeurs en sortie - $this->addOutput([ - 'redirect' => helper::baseUrl(), - 'notification' => helper::translate($message), - 'state' => false, - ]); - } - - // Génération du message d'inscription // L'étudiant est-il inscrit self::$swapMessage['submitLabel'] = 'Se connecter'; self::$swapMessage['enrolmentMessage'] = ''; @@ -346,12 +368,10 @@ class course extends common // Valeurs en sortie $this->addOutput([ 'title' => sprintf(helper::translate('Accéder au cours %s'), $this->getData(['course', $this->getUrl(2), 'shortTitle'])), - 'view' => 'swap', + 'view' => 'enrol', 'display' => self::DISPLAY_LAYOUT_LIGHT, ]); - // l'étudiant est inscrit } - } /** @@ -360,7 +380,7 @@ class course extends common * @param string $userId identifiant de l'utilisateur * @param string $courseId identifiant du cours sollicité */ - private function courseIsUserEnroled($courseId) + public function courseIsUserEnroled($courseId) { $userId = $this->getUser('id'); $group = $userId ? $this->getData(['user', $userId, 'group']) : false; @@ -385,7 +405,7 @@ class course extends common return $r; } - private function courseEnrolUser($courseId, $userId) + public function courseEnrolUser($courseId, $userId) { $this->setData([ 'enrolment', @@ -403,7 +423,7 @@ class course extends common * @param @return bool le user a le droit d'entrée dans le cours * @param string $courseId identifiant du cours sollicité */ - private function courseIsAvailable($courseId) + public function courseIsAvailable($courseId) { if ($courseId === 'home') { return true; diff --git a/core/module/course/view/swap/swap.css b/core/module/course/view/enrol/enrol.css similarity index 100% rename from core/module/course/view/swap/swap.css rename to core/module/course/view/enrol/enrol.css diff --git a/core/module/course/view/swap/swap.php b/core/module/course/view/enrol/enrol.php similarity index 92% rename from core/module/course/view/swap/swap.php rename to core/module/course/view/enrol/enrol.php index acf2f63..9d1914e 100644 --- a/core/module/course/view/swap/swap.php +++ b/core/module/course/view/enrol/enrol.php @@ -30,7 +30,7 @@
$module::$swapMessage['submitLabel'], - 'disabled' => !$this->courseIsAvailable($this->getUrl(2)), + 'disabled' => !$module->courseIsAvailable($this->getUrl(2)), 'ico' => '' ]); ?>