(Moodle/mebis) Kurs reparieren
🚑
Wann brauche ich das?
Wenn man in einen mebis Kursraum
• eigene Skripte,
• eigene Styles oder auch
• nicht geschlossene HTML-Tags (Divs, Listen, Tabellenbruchstücke u.v.m.)
einfügt (dies kann bspw. auch durch Einfügen von Inhalten aus formatierten Textdokumenten
auch außerhalb des HTML-Bearbeitungsmodus verursacht werden),
kann es passieren,
• dass man anschließend nicht mehr in den Bearbeitungsmodus wechseln kann oder
• dass Schaltflächen oder Drop-Down-Menüs auch bei eingeschaltetem
Bearbeitungsmodus nicht mehr anklickbar sind
oder dass diese schlicht nicht angezeigt werden oder außerhalb des durch Scrollen erreichbaren Bereichs liegen.
Weg 1: Ansicht ohne Stil
A Im Firefox
Im Firefox gelangt man bei eingeschalteter Menüleiste über "Ansicht" > "Webseiten-Stil" > "Kein Stil" zu einer Ansicht, bei der alle CSS-Anpassungen der Seite (also sowohl die zentral vorgegeben als auch die ggf. selbst per "Hack" nachgeladenen) nicht eingesetzt werden. Auch JavaScript wird in dieser reduzierten Ansicht nicht interpretiert, so dass alle Schaltflächen innerhalb des ggf. "zerschossenen" Kursraums wieder normal arbeiten, obwohl sie völlig anders dargestellt werden. Auf diesem Weg kann etwa ein selbst hinzugefügtes, die Kursfunktionalität beeinträchtigendes Textfeld (oder Textblock) wieder gelöscht werden. Anschließend schaltet man die Ansicht wieder zurück auf "Standard-Stil" und der Kurs sollte wieder unbeeinträchtigt funktionieren.
Trotz der zwischenzeitlich geänderten Ansicht werden hierbei z.B. das Kursformat oder das Theme des Kurses nicht geändert.
Die Menüleiste (Menu Bar) kann über einen Rechtsklick neben der Adressleiste mit "☒ Menu Bar" eingeblendet werden.
B In Chrome
Mit F12 oder Strg+Umschalt+I werden die Entwicklerwerkzeuge geöffnet.
Anschließend wird im Reiter "Elements" das Element <head> markiert und gelöscht. Da sich in diesem im Regelfall alle Stylesheets und auch extern nachgeladene Skripte befinden, erhält man eine - weitgehend - "stillose" Ansicht der Seite.
Allerdings kann es bei dieser Variante trotzdem vokommen, dass das im fehlerhaften Textfeld nachgeladene JavaScript oder CSS trotzdem die Seite weiterhin unbearbeitbar macht. Der oben für den Firefox beschriebene Weg ist daher stabiler.
Weg 2: JavaScript deaktivieren
Wenn ein eigenes nachgeladenes JavaScript die Bearbeitung des Kurses verhindert,
kann man im Browser auch zwischenzeitlich JavaScript deaktivieren.
A Im Firefox
- In einem neuen Tab in der Adresszeile eingeben about:config
- Filtern nach dem Schlüssel javascript.enabled
- Den Wert auf false statt true (Standard) setzen
- Die Kursseite im anderen Tab neu laden und das defekte Textfeld bzw. den betreffenden Textblock löschen
- Im about:config Tab den Wert wieder auf den Standardwert true zurücksetzen
B In Chrome
- In einem neuen Tab in der Adresszeile eingeben chrome://settings/content/javascript
- Auswahl der Option "☒ Websites dürfen nicht JavaScript verwenden"
- Die Kursseite im anderen Tab neu laden und das defekte Textfeld bzw. den betreffenden Textblock löschen
- Im chrome://settings/content/javascript Tab die Auswahl wieder auf den Standardwert "☒ Websites dürfen JavaScript verwenden" zurücksetzen
Weg 3: Textfeld direkt bearbeiten
Bei dieser Methode muss man zunächst die Aktivitäts-ID des betroffenen Textfelds
(oder einer anderen fehlerhaften Aktivität) herausfinden.
- Zuerst muss in den Bearbeitungsmodus gewechselt werden
- Anschließend führt man auf der Kursseite über dem zu bereinigenden Textfeld
einen Rechtsklick durch und wählt "Untersuchen" und wechselt so in den Entwicklerwerkzeugen in den
Reiter "Inspektor" (Firefox) bzw. "Elements" (Chrome).
- Bei einem Textfeld könnte dieses typischerweise als Listenelement
dann z.B. die Aktivitäts-ID "module-31258433" haben, im Screenshot "module-2".
Diesen Zahlenwert notiert man sich für die spätere Verwendung.
- Mit Hilfe des Werkzeugs unten kann dann der Link zum direkten Betreten des Bearbeitungsmodus des Textfelds erzeugt werden.
- Im Quelltextbearbeitungsmodus können die fehlerhaften CSS- oder JavaScript-Anweisungen dann entfernt werden. Wenn der Atto oder der TinyMCE verwendet werden, filtern diese ggfs. auch in Kombination mit dem Skript-Protection Filter ohnehin beim nächsten Speichern meist script und style Tags heraus.
Ergänzung 1: Direkt in den Bearbeitungsmodus wechseln
Der einfache Weg wenn der Button noch geladen wird
In den Entwicklerwerkzeugen wird im Reiter "Konsole" (Firefox) bzw. "Console" (Chrome) eingegeben:
$('.singlebutton button[type=submit]').trigger('click');
Dies bewirkt auf einer Kursseite im Wechsel das Ein- bzw. Ausschalten des Bearbeitungsmodus.
Voraussetzung für den komplizierten Weg wenn dieser Button komplett fehlt: Den Sessionkey für direkte Bearbeitungslinks herausfinden
Viele Bearbeitungslinks haben eine regelmäßige Struktur, benötigen aber die von der aktuellen Moodle Sitzung abhängigen Sessionkey (kurz sesskey), im Beispiel unten mit dem Wert e0gnBliNez.
Die Aktivitäts-ID in der Beispieltabelle unten ist 31258433. Wie man diese ermittelt ist oben im Weg 3 beschrieben.
Für die Bearbeitung von Kursen wird die Kurs-ID benötigt, bei den Beispiel-Links in der Tabelle unten 837032.
Diese kann nach Betreten des Kurses oben in der Adresszeile des Browsers ausgelesen werden.
Wenn die Abschnitts-ID analog zur Textfeld-ID im Bearbeitungsmodus ausgelesen wurde, können auch dessen Einstellungen zur direkten Bearbeitung aufgerufen werden. Im Beispiel lautet diese 7298023.
In der JavaScript Konsole eintippen und Enter drücken, dann die Ausgabe davon für den Link oben nutzen:
M.cfg.sesskey
Direktlinks für direkten Funktionsaufruf erzeugen
Passe zunächst die für die gewünschte Aktion benötigten Werte für den eigenen Fall an:
Kopiere anschließend aus der Tabelle die vollständige Linkvorlage bestehend aus der Basis-URL und dem spezifischen Anteil
in einen Texteditor (kein Textverarbeitungsprogramm) oder füge ihn direkt in einem neuen Tab
in die Adresszeile des Browser ein und rufe die gewünschte
Funktion auf.
Gewünschte Aktion
|
Basis-URL
|
spezifischer Anteil
|
Kurs Bearbeiten einschalten
|
https://lernplattform.mebis.bayern.de/course/view.php?id=837032§ion=0&sesskey=e0gnBliNez
|
&edit=on
|
Kurs Bearbeiten ausschalten
|
&edit=off
|
Aktivität Einstellungen Bearbeiten
(entspricht funktional dem in Weg 3 ermittelten Link)
|
https://lernplattform.mebis.bayern.de/course/mod.php?sesskey=e0gnBliNez&sr=0
|
&update=31258433
|
Aktivität Duplizieren
|
&duplicate=31258433
|
Aktivität löschen (Vorsicht!)
|
&delete=31258433
|
Aktivität nach rechts schieben
|
https://lernplattform.mebis.bayern.de/course/mod.php?sesskey=e0gnBliNez&sr=0&id=31258433
|
&indent=1
|
Aktivität nach links schieben
|
&indent=-1
|
Aktivität Verbergen
|
&hide=31258433
|
Aktivität Anzeigen
|
&show=31258433
|
Abschnitt bearbeiten
|
https://lernplattform.mebis.bayern.de/course/editsection.php?id=7298023&sr=0
|
|
Ergänzung 2: Das Theme wechseln
Um z.B. ausprobieren zu können, wie sich eine eigene CSS-Anpassung in
anderen Moodle-Themes verhält, kann man temporär für die Dauer der
aktuellen Moodle Sitzung das Theme umschalten
(sofern dies in den Admin-Einstellungen allowthemechangeonurl der Moodle Instanz erlaubt ist)
durch Anhängen des URL-Parameters
&theme=boost
Durch Eingabe des entsprechenden Werts, z.B. mebis
also das Abändern des angehängten Parameters zu
&theme=mebis
kann man auch in der laufenden Sitzung wieder zum Ursprungs-Theme
zurückkehren.
Häufig verfügbare Themes sind:
- boost (Core)
- classic (Core)
- mebis (mebis Lernplattform)
- fordson (Plugin theme_fordson)
- ... und viele weitere,
ggfs. den Admin der eigenen Moodle-Instanz fragen
Den Namen des aktuellen Themes kann man in der JavaScript Konsole auslesen als Ausgabe von
M.cfg.theme