diff --git a/app/controllers/SeminaryRoleController.inc b/app/controllers/SeminaryRoleController.inc index 69e9a38b..f6f0007e 100644 --- a/app/controllers/SeminaryRoleController.inc +++ b/app/controllers/SeminaryRoleController.inc @@ -80,8 +80,11 @@ // Get Seminary and Character data try { self::$seminary = $this->Seminaries->getSeminaryByUrl($this->request->getParam(3)); - self::$user['seminaryroles'] = array_map(function($r) { return $r['name']; }, $this->Userseminaryroles->getUserseminaryrolesForUserById(self::$user['id'], self::$seminary['id'])); - self::$character = $this->Characters->getCharacterForUserAndSeminary(self::$user['id'], self::$seminary['id']); + if(!is_null(self::$user)) + { + self::$user['seminaryroles'] = array_map(function($r) { return $r['name']; }, $this->Userseminaryroles->getUserseminaryrolesForUserById(self::$user['id'], self::$seminary['id'])); + self::$character = $this->Characters->getCharacterForUserAndSeminary(self::$user['id'], self::$seminary['id']); + } } catch(\nre\exceptions\IdNotFoundException $e) { } diff --git a/controllers/ErrorController.inc b/controllers/ErrorController.inc index efdae4f4..a27e3afd 100644 --- a/controllers/ErrorController.inc +++ b/controllers/ErrorController.inc @@ -23,6 +23,8 @@ + + /** * Action: index. * @@ -41,6 +43,7 @@ // Display statuscode and message $this->set('code', $httpStatusCode); $this->set('string', \nre\core\WebUtils::$httpStrings[$httpStatusCode]); + $this->set('userId', $this->Auth->getUserId()); } } diff --git a/controllers/UsersController.inc b/controllers/UsersController.inc index 90e50912..f0888cce 100644 --- a/controllers/UsersController.inc +++ b/controllers/UsersController.inc @@ -117,11 +117,13 @@ public function login() { $username = ''; + $referrer = null; // Log the user in if($this->request->getRequestMethod() == 'POST' && !is_null($this->request->getPostParam('login'))) { $username = $this->request->getPostParam('username'); + $referrer = $this->request->getPostParam('referrer'); $userId = $this->Users->login( $username, $this->request->getPostParam('password') @@ -131,14 +133,20 @@ { $this->Auth->setUserId($userId); $user = $this->Users->getUserById($userId); - - $this->redirect($this->linker->link(array($user['url']), 1)); + + if(!empty($referrer)) { + $this->redirect($referrer); + } + else { + $this->redirect($this->linker->link(array($user['url']), 1)); + } } } // Pass data to view $this->set('username', $username); + $this->set('referrer', $referrer); $this->set('failed', ($this->request->getRequestMethod() == 'POST')); } diff --git a/views/html/error/index.tpl b/views/html/error/index.tpl index 0f68bc07..a0b02462 100644 --- a/views/html/error/index.tpl +++ b/views/html/error/index.tpl @@ -1,2 +1,17 @@
=$code?>: =$string?>
+ + +Ein Projekt zum Thema „Gamification im Lehrumfeld“ – basierend auf Die Legende von Zyren.
-Bereits im Sommersemester 2013 wurde das Projekt „Die Legende von Zyren“ unterstützt durch den Lehrförderungsfond der Heinrich-Heine-Universität Düsseldorf ins Leben gerufen, um die Inhalte der Vorlesung „Wissensrepräsentation“ den Studierenden des Faches Informationswissenschaft mit Hilfe von Spielelementen und -modellen zu vermitteln. Die innovative Lernumgebung besteht aus einem virtuellen Textadventure, dass über eine webbasierte Plattform zugänglich ist und realen Spielen in einer Präsenzveranstaltung, in denen die Studierenden unmittelbar in das Abenteuer eintauchen und in Teams spielerisch gegeneinander antreten.
+Auf der Plattform spielt sich jeder der Studierenden mit seinem virtuellen Avatar durch das Reich von Zyren und erlernt und vertieft auf spielerische Weise die Inhalte der Vorlesung „Wissensrepräsentation“, die in Form von Herausforderungen oder Rätseln in das Abenteuer eingebunden wurden und über den Fortlauf und den Erfolg des Spiels entscheiden.
+In der zusätzlichen Präsenzveranstaltung tauchen die Studierenden direkt in das Abenteuer ein und die vertiefen die Inhalte spielerisch. Hier schließen sich die Studierenden in Teams (Gilden) zusammen, müssen eigenverantwortlich Lerninhalte erarbeiten, Probleme lösen und in speziellen Gildenaufgaben gegen andere Teams antreten, um ihr kollaborativ erarbeitetes Wissen auf die Probe zu stellen.
+Für jede erfolgreiche absolvierte Herausforderung auf der Plattform oder in der Übung erhalten die Studierenden Erfahrungspunkte und Belohnungen.
+Um das Konzept auch anderen Fachbereichen und Lehrveranstaltungen zugänglich zu machen, wurde im Frühjahr 2014 das Projekt Questlab (Arbeitstitel „The Legend of Z“) gestartet um das Konzept zu generalisieren. Lehrende können die Plattform nun nutzen um eigene Aufgaben (Quests) zu kreieren und hochzuladen und sie optional in eine Geschichte einzubinden, die sie selbst gestalten können. Zudem wurde das Responsive Design überarbeitet und bietet nun optimalen Zugriff auf die Plattform über alle mobilen Endgeräte.
+ +- Heinrich-Heine-Universität Düsseldorf -
+