WBCE CMS – Way Better Content Editing.
You are not logged in.
Wer Escape Kids schon getestet hat: Jetzt gibt es eine ähnliche, aber doch gänzlich andere Version des Spiels: Escape Kids FE – Escape-/Rätselspiele in WBCE (mit Bildern & Audio) mit Frontend Edit
Mit Escape Kids FE steht ein WBCE-Modul zur Verfügung, mit dem sich kleine Escape- und Rätselspiele direkt im Frontend erstellen und spielen lassen – ohne die Notwendigkeit, sich einloggen zu müssen und ohne zusätzliche Tools. Es eignet sich besonders für Unterricht, Projektwochen, Jugendgruppen oder Aktionen, bei denen Teams spielerisch Aufgaben lösen sollen und diese Spiele ohne großen Umstand (ohne Backend-Login) selbst füreinander erstellen sollen.
Funktionen im Überblick
1) Teilnehmerverwaltung im Backend (Admin-Übersicht)
Im WBCE-Backend können Teilnehmende bzw. Gruppen angelegt und verwaltet werden (z. B. „Gruppe 3 – Lisa & Tom“). Für jede Gruppe wird ein individueller Bearbeitungslink bereitgestellt. Zusätzlich gibt es eine Option, ob eine Frontend-Anmeldung ohne Token erlaubt oder deaktiviert ist. Wenn erlaubt, können sich Teilnehmende über die normale Ansicht der Seite selbst registrieren, wobei sich die Teilnehmerliste im Backend automatisch selbst aktualisiert. Aus dieser Liste kann jedes angelegte Spiel administriert und bei Bedarf gelöscht werden.
2) Frontend-Editor für Teilnehmende
Über die Editorseite können Spiel- und Frageninhalte gepflegt werden:
- Spieltitel
- Zeitlimit (optional)
- Erfolgstext und Game-Over-Text
- Spiellink teilen
3) Fragenliste mit Medien & Aktionen
Für jede Frage lassen sich speichern:
- Aufgabe/Fragetext (mehrzeilig)
- Lösung
- Hinweis (mehrzeilig)
- bis zu 3 Bilder
- optional 1 Audio-Datei
In der Fragenliste können Fragen hoch/runter sortiert, bearbeitet oder gelöscht werden. Medien erscheinen als Vorschau; Audio lässt sich direkt aus der Liste abspielen.
4) Spielmodus über öffentlichen Link
Für das Teilen gibt es einen Spiel-Link (z. B. zur Nutzung als QR-Code). Darüber kann das Spiel gestartet und getestet werden, ohne dass der Editor sichtbar wird.
Es ist für Unterrichtssituationen entworfen, deshalb hier ein paar medienpädagogische Aspekte. Das Modul unterstützt aktive Medienarbeit und fördert:
Gestalten statt Konsumieren: Teams erstellen eigene Rätsel, Hinweise und Medieninhalte.
Multimodales Lernen: Text, Bild und Audio ermöglichen unterschiedliche Zugänge (z. B. sprachsensibel/inklusiv).
Kollaboration & Problemlösen: Aufgaben werden gemeinsam entwickelt, getestet und iterativ verbessert.
Reflexion über Verständlichkeit: Was ist ein guter Hinweis? Welche Medien helfen wirklich beim Lösen?
Technik / Sicherheit
Das Modul nutzt Prepared Statements, prüft Uploads (Erweiterung/MIME/Größe), unterstützt FTAN (wo verfügbar) und behandelt Medienpfade defensiv, um unerwünschte Pfadmanipulationen zu vermeiden.
Viel Spaß beim Ausprobieren!
LG pfreud01
Last edited by pfreud01 (01.03.2026 13:44:24)
Offline
florian
Heute auf anderem Server mit 20 Personen gleichzeitig getestet. Läuft zwar, aber nur die Version auf dem Testserver. ChatGPT hatte den /pages/escape_kids_fe.php fest gecodet.
Ich muss das erst ausbessern. Bis dahin hab ich den Download mal entfernt.
Offline
beach
Sodala, da war mehr nicht in Ordnung.
Inkl. der install.php, der uninstall.php, der view.php war vor allem die modify.php nicht fehlerfrei.
Da ich keine upgrade.php dazugesetzt habe, muss die alte Version, falls die schon runtergeladen wurde, unbedingt deinstalliert werden, bevor man diese Version testen will. Ich habe die Zählung wieder bei v1.0.0 begonnen, ein update funktioniert nicht.
Offline
Neues kleines Update:
Buttonaussehen in den Frontend-Einstellungen vereinheitlicht.
Ein QR-Code zum Spiel ist nun in den Frontendeinstellungen erzeugbar - ohne trackendes Google, sondern onboard per js. Damit können die Spieleersteller ihr gerade erstelltes Escape Game flugs mit ihrer Umgebung teilen.
Im ersten Post Download aktualisiert.
Offline
beach
So, habe das jetzt mal endlich auch getestet. Sehr beeindruckend. Funktioniert tadellos.
Anmerkungen:
1) QR-Code-Generator: Quelle, Lizenz? Ggf. entsprechende readme implementieren
2) helper.php Zeile 196
return WB_URL . '/pages/escape_kids_fe.php?ekfe_play=' . rawurlencode($publicToken);Fest verdrahtetes pages-Verzeichnis und Seitenname. Scheint allerdings nicht weiter zu stören, wenn die Seite anders heißt
3) play.php
a)
if (defined('WB_URL')) {
echo '<link rel="stylesheet" type="text/css" href="' . ekfe_h(WB_URL . '/modules/escape_kids_fe/frontend.css') . '">' . "\n";
}Die Einbindung der frontend.css sollte eigentlich automatisch funktionieren. Mir ist allerdings am blackboard-Template aufgefallen, dass der von dem Template generierte Code nicht ganz korrekt ist, weil der Aufruf der WBCE-eigenen Funktionen an falscher Stelle erfolgt. Weiterhin ist es auch nicht erforderlich, die "sysvars" manuell bzw. escaped auszugeben.
Ändere in der index.php des Templates den betr Bereich mal so:
<?php
/**
* WBCE Template: Blackboard (Escape Edition)
* - Minimaler Vollbildmodus für z. B. Escape Games
* - Schwarzer Hintergrund, helle Schrift
* - WBCE-Sysvars (WB_URL, PAGE_ID, …)
* - „Abbrechen und zurück zur Startseite“-Link am Seitenende
*/
if (!defined('WB_URL')) {
die(header('Location: ../index.php'));
}
// Titel ermitteln
ob_start();
if (function_exists('page_title')) { page_title(); }
$title = trim(strip_tags(ob_get_clean()));
if ($title === '') { $title = 'WBCE'; }
?><!DOCTYPE html>
<html lang="<?php echo defined('LANGUAGE') ? strtolower(LANGUAGE) : 'de'; ?>">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php echo htmlspecialchars($title, ENT_QUOTES, 'UTF-8'); ?></title>
<?php
// Frontend-Modul-Dateien laden (CSS/JS)
register_frontend_modfiles('css');
register_frontend_modfiles('jquery');
register_frontend_modfiles('js');
?>
<style>
...Dann kann die o.g. Zeile in der play.php entfallen.
b)
Frontendausgabe: Der Play-Button für Audios sieht zwar schick aus, wie er sich da ins Texteingabefeld schmiegt, ist dort aber mMn etwas ungünstig/ungewöhnlich platziert. Ich musste erst suchen, bis ich ihn gefunden habe.
4) view.php
a) Es scheint keine Möglichkeit zu geben, zu einer Frage hochgeladene Medien wieder zu löschen
b) Jeder Teilnehmer kann nur ein eigenes Quiz erstellen, sehe ich das richtig?
Last edited by florian (22.01.2026 15:30:28)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Danke für die Rückmeldung! Neue Versionen:
Blackboard-Template mit oben genannten Änderungen und nun ohne festen Backlink unten - Im Ursprungspost ergänzt
Escape_Kids_FE:
helpers.php ohne hart codierte URL
Nun mit beiliegendem readme.txt mit Lizenzhiweis zum QR-Code-JS
Jede Escape_Game_FE-Section zeigt jetzt nur noch die "eigenen" User an. Vorher waren immer alle User auf allen Escape_Game_FE-Instanzen in der Liste, was im Schuleinsatz unbrauchbar ist. Wer schon produktiv damit arbeitet, braucht ein Migrationsscript, um vorher angelegte Nutzer in der neuen Version noch in der richtigen Backendseite (wieder) anzeigen zu können (ein solches habe ich bei Bedarf, ist aber nicht im Zip dabei und sollte nicht auf dem Server bleiben).
Was tatsächlich noch fehlt: Eine Löschfunktion für Medien in der Frageliste. Diese können zwar überspeichert werden, aber noch nicht gelöscht. Dafür muss momentan die Frage noch komplett gelöscht werden. Ich hab´s auf der Liste. 
Last edited by pfreud01 (24.01.2026 21:31:43)
Offline
florian
Jede Escape_Game_FE-Section zeigt jetzt nur noch die "eigenen" User an. Vorher waren immer alle User auf allen Escape_Game_FE-Instanzen in der Liste, was im Schuleinsatz unbrauchbar ist.
Hm, die sind schon noch da und blitzen auch beim Anlegen einer neuen Seite/Section kurz auf, werden also nur ausgeblendet.
Folglich werden auch Spiele, die Spieler A auf Seite 1 angelegt hat, auf Seite 2 im FE angezeigt.
Mir scheint, wenn es auf einer Website z.B. eine Seite für Mathe-Rätsel gibt und eine für Erdkunde-Rätsel, würde ein Schüly kein Erdkunderätsel anlegen können, wenn es schon ein Matherätsel erzeugt hat.
Last edited by florian (25.01.2026 07:43:47)
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Ich will das mal aus pädagogischer Sicht erläutern, da das Modul ja genau dafür gedacht ist.
In den meisten Fällen ist der Einsatz des Moduls im Unterricht ja aus didaktischen Gründen für einen bestimmten Zweck gedacht, um z.B. Wissen wiederholen zu lassen und, wenn mehrere Kids zusammenarbeiten, gruppenbezogene Kompetenzen zu schulen. Da wird die Lehrkraft üblicherweise die Gruppen und Zugänge vorher angelegt haben und nur den Bearbeitungslink an die Personen(gruppen) verteilen. Dies geht auch mehrmals hintereinander mit verschiedenen Links auf einem Browser.
Die Selbstanmeldung ist zum Ausprobieren gedacht, oder wenn man die Kinder nicht so eng führen will. Da ist es jetzt so, dass in einem Browser nur eine Selbstanmeldung geht. Für die nachfolgende andere Unterrichtsstunde müsste das gleiche Schülergerät neu gestartet oder ein anderer Browser gewählt werden, dann klappt Selbstanmeldung auch dort. Aber wie erläutert, den "normalen" Unterrichtseinsatz verorte ich bei "davor der Link von der Lehrperson angelegt", weil auch dann der (Gruppen-)Name keinen Blödsinn zulässt.
Dass nun im Backend selektiert wird, welche Anmeldungen auf welcher angelegten Escape-Game-FE-Page stattgefunden haben, soll lediglich die Übersicht für die Lehrperson erleichtern, die sonst evtl. 3 Klassengruppen in einer Liste hätte, obwohl sie unterschiedliche Pages angelegt hat. Alle Zugänge stammen ja aus einer Datenbank und nun werden die "falschen" eben sofort wieder ausgeblendet. Die Tabelle ist ja so gestrickt, dass Selbstanmeldungen automatisch erscheinen, ohne manuell reloaden zu müssen, damit niemand "übersehen" werden kann. Und da bleiben jetzt eben nur die der betreffenden Section übrig.
Offline
Ich baue das um, so dass serverseitig vorher gefiltert wird, bevor die Tabelle ausgegeben wird. Dann flackert nichts. Kommt mit dem nächsten Update.
Offline
Neue Version v1.0.3 im Ursprungsthread.
Backend-Tabelle zeigt nur Einträge der Section ohne Flackern
Medien können in der Frageliste nachträglich gelöscht werden
Für das nächste Update hab ich auch schon wieder etwas gefunden: Die Einstellung "Frontendanmeldung erlauben" greift global, nicht pro Section. Kommt beim nächsten Mal dran.

Offline
v1.0.4 im Ursprungsthread wegen Fehlerverbesserungen:
Sprachdateien hatten fehlendes Komma
modify.php selektierte nicht nach Sections
Offline
Größeres Update!
Bitte alte Version erst deinstallieren und dann die v1.0.7 neu installieren! Es gibt keine Updatelogik und auch keine upgrade.php, da die Änderungen zu groß waren, als dass ich das für die paar Test-Accounts extra umgesetzt hätte:
Etliche Sicherheitsverbesserungen hinsichtlich Prepared Statements, FTAN, Uploads und Security-Header.
Das Modul legt die hochgeladenen Dateien jetzt besser versteckt im Modulordner ab und nicht mehr in media/ wo auch andere Backendnutzer unabsichtlich rankönnten. Alle Dateien werden umbenannt, falls Kids (unbewusst) urheberrechtlich geschützte Dateien ablegen. Der Admin muss die Spiele dennoch kontrollieren, auch wenn die Dateien jetzt nicht mehr so leicht gefunden werden können.
Es sind jetzt auch m4a-Audios möglich (für iPad-Sprachmemos - häufig in Schulen eingesetzt).
Im Backend ist ein QR für die Selbstregistrierung der Kinder für´s praktische Teilen.
Die Selbstregistrierung funktioniert für jede EKFE-Instanz separat und nicht mehr global. Sie startet immer im Modus deaktiviert und soll nur bei Bedarf eingeschaltet werden (und danach wieder ausgemacht werden, um "Fremde" nicht einzuladen).
Jede EKFE-Seite zeigt nur ihre eigenen Registrierungen und die Tabelle aktualisiert sich ohne Flackern selbst, auch hinsichtlich Spielname und Play-Link.
Also wenn jetzt keine Fehler mehr auftauchen, ist das eine produktive Version. Vielleicht schreib ich noch eine (pädagogische) Anleitung dazu. 
Last edited by pfreud01 (07.02.2026 19:38:38)
Offline
Kleines Update v1.0.8 im Ursprungsthread:
Auf Instanzen mit Maria-DB hat die Anzeige von selbstregistrierten Spielen nicht zuverlässig funktionieren wollen. Keine Ahnung warum, aber die KI hat die view.php robuster gemacht, so dass es dort jetzt auch funktioniert.
Offline
Pages: 1