Moodle erweitern mit JavaScript

Szenario 1: Begrüßung mit Anmeldenamen im Kurs

Ziel:
Der Benutzer soll bei der Anmeldung auf der Kurshauptseite mit seinem Anmeldenamen begrüßt werden.

Lösung:
Der Anmeldename wird zunächst ausgelesen und anschließend - ggf. mit ergänzendem Text - an anderer Stelle im Kurs sichtbar eingefügt.

Wenn jQuery verwendet wird, können zum Ansprechen der Quell- und Zielelemente der Seite die CSS-Selektoren verwendet werden in der Form tag.klassenname bzw. tag#id.
Ob deren Bezeichnung in der eigenen Moodle-Instanz von der hier im Beispiel gewählten abweicht, kann man bei im Webbrowser aufgerufener Moodle-Hauptkursseite über Element untersuchen... überprüfen.

Copy&Paste-Quelltext:

Szenario 2: Schüler ohne E-Mail als CSV - Exportbutton im Kurs

Allgemein:
Von der Kurshauptseite eines Moodle-Kurses aus soll direkt auf Informationen aus Kursunterseiten zugegriffen werden, ohne dass diese dazu einzeln besucht werden müssen. Diese Informationen können anschließend z.B. als CSV-Datei oder alternativ auch als HTML-Tabelle o.ä. exportiert und in eine geeignete Darstellungsform gebracht werden.

Beispiel-Szenario:
Falls für die Benutzerregistrierung an der Moodle-Instanz keine E-Mailadresse verwendet wird, sondern z.B. ein vorgeschalteter LDAP-Server, so kommt es häufig vor, dass Schüler in ihrem Benutzer-Profil keine E-Mailadresse eintragen. Dies kann dazu führen, dass versendete Nachrichten nicht ankommen.

Lösung:

  1. Im - über die Schaltfläche <> aktivierbaren - HTML-Bearbeitungsmodus eines auf der Hauptkursseite angelegten Textfelds wird ein Button angelegt.
  2. Für einen bequemen Zugriff auf DOM-Elemente wird jQuery eingebunden. Wenn die Moodle-Instanz per HTTPS gehostet wird, muss auch die externe jQuery-Quelle per HTTPS geholt werden. Alternativ könnte man auch die jQuery-Datei in eine DataURL umwandeln und diese dann als Quelle benutzen.
  3. Es wird ein Script-Tag definiert mit einer "ready"-Funktion, die beim Laden der Seite aufgerufen wird.
  4. An den Button wird die Funktion zum holen der gewünschten Informationen bei einem Click-Ereignis gebunden.
  5. Im Beispiel wird zunächst die aktuelle URL bestimmt und relativ zu dieser die Ziel-URL der Kursunterseite ermittelt, welche die gewünschten Informationen enthält.
  6. Die Inhalte dieser Ziel-Kursunterseite werden über einen Ajax-Aufruf geholt und in ein jQuery-Objekt überführt.
  7. Je nach Struktur der Kursunterseite können dann mit der jQuery-Funktion find bestimmte der dortigen Elemente gesucht werden.
  8. Die so geholten Daten können einfach per Zeichenketten-Verkettung zu einer neuen Zeichenkette zusammengefügt und in eine DataURL umgewandelt werden.
  9. Die so erzeugte DataURL kann z.B. als neues Fenster geöffnet oder als Datei lokal abgespeichert werden.

Beispielquelltext für Copy&Paste:

Szenario 3: ASCIIMath zusätzlich zu TeX verwenden

Falls Schüler selbst Formeln eingeben sollen, kann ASCIIMath eine im Vergleich zu TeX weitaus einfachere Alternative darstellen.

Auf diesem Weg kann man zusätzlich zur Verwendung von TeX-Formeln auch solche mit ASCIIMath in Moodle anzeigen lassen.

Beispielquelltext für Copy&Paste: