[ENTWURF] Generico Filter (für Vorlagen) filter_generico

Das Plugin Generico Filter (filter_generico) ermöglicht es, Vorlagen mit Text und Code zentral in der Website-Administration abzulegen und diese dann in Moodle an vielen Orten einzufügen, in denen der HTML-Editor verfügbar ist.

Beispiele für Templates befinden sich in der Knowledge Base ... ###LINK##

Template erstellen

Templates können von Admins in den Website-Einstellungen zum Plugin erstellt und bearbeitet werden.

Ein Generico Template besteht aus folgenden Feldern:

templatekey

Der Bezeichner eines Templates. Dieser Name solle einzigartig und sprechend sein und den Vorgaben entsprechen, z.B. `qr_code`.

templatename

Dieser Name erscheint im Editor-Plugin (tiny_generico) auf. Er sollte die Funktion des Templates widerspiegeln und nicht zu sehr vom templatekey abweichen, z.B. `QR Code aktuelle Seite`.

templateinstructions

Der Text erscheint im Editor-Plugin nach der Auswahl des Templates. Er liefert eine Beschreibung der Funktion des Templates. Hier können auch die einstellbaren Optionen und Variablen (wenn im Template vorhanden) erläutert werden. Die Anweisungen lassen sich leider nicht als HTML formatieren.

template

Dieser Abschnitt beinhaltet den HTML-Code des Templates. Hier kann nach Belieben gestaltet werden. In diesem Abschnitt sind Variablen verfügbar.

Achtung: Moodle escaped diesen Text nicht und korrigiert keine Fehler wie offen gelassene Tags. Ein fehlerhaftes Template kann die Ansicht der Seite zerstören.

Tipps:

JavaScript-Code und CSS gehören hier nicht hinwein, sondern in die dafür vorgesehenen Bereiche.

templateend

In Generico-Variablen kann kein nutzerseitiges HTML eingegeben werden. Möchte man vom User bereitgestelltes HTML in Templates verwenden, kann man es zwischen den Beginn und das Ende einer Template einbauen - und dann weiterverarbeiten. In das Feld templateend wird dann das HTML eingetragen, das ein Template abschließt, z.B. abschließende HTML-Tags

Beispiel: ###

templatedefaults (Variablen)

Der Vorteil von Generico besteht darin, Templates generisch passend für viele Kurse zu erstellen. Mit Hilfe von Variablen können die Vorlagen dann angepasst werden. Generico-Variablen haben die Syntax @@variablenname@@. 

templatescript

In diesem Teil wird das JavaScript des Templates erstellt. Es wird nach dem erfolgten Laden der Seite ausgeführt.

templatestyle

In diesem Teil wird das Styling des Templates mit CSS vorgenommen.

Tipps:

Beispiel:

<div class="generico-template generico-warnhinweis">
  Hier ist der Inhalt des Templates.
</div>

Ein solches Element lässt sich mit CSS dann gezielt gestalten, ohne andere Elemente zu beeinflussen:

.generico-warnhinweis {
  border-style: dotted; 
  }

Falls doch moodle-eigene Klassen umgestaltet werden sollen, sollte dies vorher auf einer Testinsatz ausprobiert werden. Es ist sinnvoll, das Template geöffnet zu haben, um die Änderung rückgängig zu machen, falls man versehentlich Teile der Seite unbrauchbar macht.

dataset

Hier werden Datenbankabfragen als SQL-Anweisungen eingetragen. Es lassen sich Platzhalter als `?` definieren. Die Platzhalter werden nacheinander in den `datasetvars` definiert. Jeder Platzhalter, auch wenn er mehrfach vorkommt, muss einzeln in den datasetvars definiert werden.

Beispiel:

SELECT 
    c.id AS course_id,
    c.fullname AS course_name,
    cat.name AS category_name
FROM {course} c
JOIN {course_categories} cat ON c.category = cat.id
WHERE c.id = ?; -- dies ist der Platzhalter - er wird in den datasetvars durch @@COURSE:id@@ ersetzt

Tipp: 

datasetvars

Alle im dataset vorhandenen Platzhalter (`?`) müssen in der richtigen Reihenfolge in den datasetvars definiert werden, z.B. `@@COURSE:id@@;@@COURSE:id@@;@@USER:id@@`. 

Achtung:

Template löschen

Es existiert keine Funktion zur Löschung. Templates werden gelöscht, indem alle Formularfelder geleert werden und das Template gespeichert wird. Befindet sich das Template in Verwendung, wird nach dieser Löschung im Kurs an Stelle des Templateaufrufs nichts angezeigt.

Tipp: Ein leeres Template (nur mit einem Template key versehen) kann als Bundle importiert werden, um alle Felder des Formulars schnell zu leeren. Nach dem Löschen des Keys im Formular und dem Speichern ist das Template gelöscht.

Template einfügen

Templates können entweder händisch durch die Eingabe der Template-Namen oder über den dazugehörigen Editor (tiny_generico) per Formular eingefügt werden. Das Editor-Plugin unterstützt bei der Eingabe, wenn das Template Variablen oder Optionen enthält.

Einschränkungen

Versionierung

Backups

In den Template-Einstellungen lassen sich keine Versionen verwalten. Ein manuelles Backup ist über den Bundle Button möglich. Dann wird eine JSON-formatierte .txt Datei heruntergeladen, mit der sich (fast) alle Einstellungen eines Templates herunterladen lassen.

Vor dem Bearbeiten eines Templates, ist es ratsam, ein manuelles Backup zu erstellen. Bei Fehlern und Problemen kann das Backup schnell wiederhergestellt werden.

Wiederherstellung

Um ein Template auf eine vorherige Version wiederherzustellen, kann man einen .txt Export auf den Bundle Button ziehen. Das Formular wird mit den Werten der .txt Datei überschrieben. Nach einem Speichern des Formulars, ist diese Version in Kraft.

Bei ungültigen .txt Dateien meldet die Seite keinen Fehler. Um manuell festzustellen, ob der Import funktioniert hat, kann man vor dem Import einen Teil des Formulars (z.B. die Versionsinfo) löschen. Ist nach dem Drag-and-Drop der Bundle-Datei das Feld wieder gefüllt, hat der Import funktioniert. 

Warnung und generelle Tipps

Nachfolge-Plugin generico two

Das Plugin genericotwo befindet sich in Entwicklung. Es hat noch nicht die gleiche Reife erreicht, wie das ursprüngliche filter_generico, bietet jedoch einige interessante Funktionen:

Derzeit gibt es noch einige Einschränkungen:

GitHub Repository: https://github.com/justinhunt/moodle-filter_genericotwo


Version #3
Erstellt: 2026-07-24 06:41:56 UTC von Andreas Kempka
Zuletzt aktualisiert: 2026-07-27 14:13:52 UTC von Andreas Kempka