Direkt zum Hauptinhalt

Generico-Vorlagen

Generico-Vorlagen werden mit dem Plugin filter_generico verwendet, um Inhalte in standardisierter Form an mehreren Stellen bereitzustellen. Sie können zentral durch Admins verwaltet werden, um schnelle Aktualisierungen zu ermöglichen.

Auf dieser Seite finden sich konkrete Vorlagen zur Verwendung im eigenen Moodle. Die Dateien liegen als JSON .txt Bundle bereit, um einfach in Generico installiert zu werden.

Generelle Einsatzszenarien

  • Wiederverwendung von regelmäßig überarbeiteten Texten wie Anleitungen, rechtliche Informationen, die in vielen Kursen gleichzeitig angepasst werden müssen.
  • Individuelle Ansprachen: Namentliche Ansprachen, Nennung von Supportinformationen (eigene Matrikelnummer, E-Mail).
  • Variablen , die im Kurs wiederverwendet können, um semesterweise Überarbeitungen zu vermeiden, etwa den Namen des Semesters, Kategorienbezeichnungen.
  • Dynamische Links auf Aktivitäten in Moodle: Das Klausurquiz im Kurs, Notenstufen des Kurses.
  • Dynamische Berichte für Teilnehmende: Auflistung der eigenen Gruppenzugehörigkeit, aktuelle Notenstufen des Kurses, Notenverteilung der aktuellen Klausur.
  • Einbauen von zentral verwaltetem Javascript und CSS für Anpassungen an den Kursen: Supportmail-Link mit vorgefertigtem Betreff (Kursname) und Inhalt (z.B. Supportinformationen über die aktuelle URL, Browser und Betriebssystem, Bildschirmauflösung, Zeitzone usw.).

AI Prompts

Folgende Prompts haben sich als hilfreich bei der Erstellung und Anpassung von Generico-Templates erwiesen:

Überarbeitung von Templates

Take the attached .txt file which is a JSON formatted Moodle filter_generico bundle export. Adapt the file to accommodate the mentioned new features and fixes and output a new .txt. If no file is provided, use the provided key.txt of an empty template for the structure. Provide a documentation of the changes in the html, javascript, css and sql.
For Generico-variables use syntax like @@USER:firstname@@. In SQL statements use ? as a placeholder since no named placeholders are possible. For table names use a format like {users} without the prefix `mdl_` . Never use dangerous insert/update/delete statements. Make sure to use the correct amount of datasetvars. 

The HTML of the template should be embedded in a <div class="local-generico"> or <span class="local-generico">. For CSS use class names that are specific (such as "local-generico-quiz-results-table") to avoid collisions with Moodle's classes - unless explicitely specified to alter Moodle's classes.  
HTML should not use style="". Use Bootstrap 5 classes for styling, if possible. Create accessible and responsive HTML. For Icons use FontAwesome free icons.
When JavaScript is used use modular code that can also work when the template is inserted multiple times in the page.

For the version use YYYY-MM-DD_HHMM_initials of the author (e.g. 2026-07-22_14:58_AK). 

Erklären von Templates

Take the attached .txt file which is a JSON formatted Moodle filter_generico bundle export.
Explain what the template does in a course context. List which information, activities etc. the template relies on to function.

Template 'leer'

Datei ```leer.txt```txt >
Bitte den Code über den Kopieren-Button im Textfeld unterhalbkopieren und als .txt-Datei speichern.

{
    "key": "bitte_entfernen_und_speichern",
    "name": "",
    "instructions": "",
    "requirecss": "",
    "requirejs": "",
    "shim": "",
    "defaults": "",
    "amd": "1",
    "body": "",
    "bodyend": "",
    "script": "",
    "style": "",
    "dataset": "",
    "datasetvars": "",
    "alternate": "",
    "alternateend": "",
    "version": ""
}

Beschreibung

Dies ist ein leeres Template. Es ist nützlich, wenn man ein bestehendes Template aus Generico löschen will, da Generico keine Löschfunktion besitzt. 

  1. Die .txt-Datei in der Konfiguration zum Template, das gelöscht werden soll, auf den Badge 'Bundle' ziehen.
  2. Den templatekey löschen.
  3. Leeres Template speichern.

Die Löschung ist erfolgreich, wenn unter /filter/generico/genericotemplatesadmin.php kein Templatekey, sondern eine Nummer angezeigt wird.

Voraussetzungen

Ein bestehendes Template, das gelöscht werden soll.

Template 'Ansprache'

Datei ansprache.txt 
Bitte den Code über den Kopieren-Button im Textfeld unterhalbkopieren und als ...txt-Datei speichern.

{
    "key": "ansprache",
    "name": "Ansprache",
    "instructions": "Zeigt den Namen der eingeloggten Person als Vorname Nachname an.",
    "requirecss": "",
    "requirejs": "",
    "shim": "",
    "defaults": "",
    "amd": "1",
    "body": "@@USER:firstname@@ @@USER:lastname@@",
    "bodyend": "",
    "script": "",
    "style": "",
    "dataset": "",
    "datasetvars": "",
    "alternate": "",
    "alternateend": "",
    "version": ""
}

Beschreibung

...Zeigt den Namen der eingeloggten Person als `Vorname Nachname` an. Nützlich für die persönliche Ansprache,

Voraussetzungen

DamitDie eingeloggte Person muss die Felder firstname und lastname besitzen.

Template 'Kurstitel'

Datei kurstitel.txt 
Bitte den Code über den Kopieren-Button im Textfeld unterhalbkopieren und als .txt-Datei speichern.

{
    "key": "kurstitel",
    "name": "Kurstitel",
    "instructions": "Zeigt den Titel des aktuellen Kurses an.",
    "requirecss": "",
    "requirejs": "",
    "shim": "",
    "defaults": "",
    "amd": "1",
    "body": "@@COURSE:fullname@@",
    "bodyend": "",
    "script": "",
    "style": "",
    "dataset": "",
    "datasetvars": "",
    "alternate": "",
    "alternateend": "",
    "version": ""
}

Beschreibung

Zeigt den Titel des aktuellen Kurses an. 

Voraussetzungen

keine

Template 'Kurskategorie'

Datei kurskategorie.txt 
Bitte den Code über den Kopieren-Button im Textfeld unterhalbkopieren und als .txt-Datei speichern.

{
    "key": "kurskategorie",
    "name": "Kurskategorie",
    "instructions": "Zeigt den Namen der Promptaktuellen Kurskategorie an und verlinkt dorthin.",
    "requirecss": "",
    "requirejs": "",
    "shim": "",
    "defaults": "",
    "amd": "1",
    "body": "<a href=\"/course/index.php?categoryid=@@DATASET:id@@\" aria-label=\"Link zur Kurskategorie @@DATASET:name@@\">\n  @@DATASET:name@@\n</a>",
    "bodyend": "",
    "script": "",
    "style": "",
    "dataset": "SELECT c.id, c.name FROM {course_categories} c WHERE c.id = ?",
    "datasetvars": "@@COURSE:category@@",
    "alternate": "",
    "alternateend": "",
    "version": "2026-10-22_1100_AK"
}

Beschreibung

Zeigt den Namen der Kurskategorie als Link an und verlinkt zur Kurskategorie.

Die Vorlage kann z.B. verwendet werden, um ein Semester, ein Modul oder eine Fakultät zu benennen, wenn die übergeordnete Kurskategorie entsprechend benannt ist. Falls nur der Name (ohne Link benötigt wird, reicht auch @@DATASET:name@@ im KursText.

funktioniert,

Voraussetzungen

müssen

keine

folgende

Template Elemente''

Datei leer.txt 
Bitte den Code über den Kopieren-Button im KursTextfeld existieren:unterhalbkopieren und als ...txt-Datei speichern.

{
    "key": "bitte_entfernen_und_speichern",
    "name": "",
    "instructions": "",
    "requirecss": "",
    "requirejs": "",
    "shim": "",
    "defaults": "",
    "amd": "1",
    "body": "",
    "bodyend": "",
    "script": "",
    "style": "",
    "dataset": "",
    "datasetvars": "",
    "alternate": "",
    "alternateend": "",
    "version": ""
}

Beschreibung

ImDies Systemist müssenein folgendeleeres OptionenTemplate. /Es Kursfelderist /nützlich, wenn man ein bestehendes Template aus Generico löschen will, da Generico keine Löschfunktion besitzt. 

    Die ...txt-Datei vorhandenin sein:der Konfiguration zum Template, das gelöscht werden soll, auf den Badge 'Bundle' ziehen. Den templatekey löschen. Leeres Template speichern.

    Die Löschung ist erfolgreich, wenn unter /filter/generico/genericotemplatesadmin.php kein Templatekey, sondern eine Nummer angezeigt wird.

    Voraussetzungen

    Ein bestehendes Template, das gelöscht werden soll.

    Template ''

    Datei leer.txt 
    Bitte den Code über den Kopieren-Button im Textfeld unterhalbkopieren und als ...txt-Datei speichern.

    {
        "key": "bitte_entfernen_und_speichern",
        "name": "",
        "instructions": "",
        "requirecss": "",
        "requirejs": "",
        "shim": "",
        "defaults": "",
        "amd": "1",
        "body": "",
        "bodyend": "",
        "script": "",
        "style": "",
        "dataset": "",
        "datasetvars": "",
        "alternate": "",
        "alternateend": "",
        "version": ""
    }

    Beschreibung

    Datei:Dies ist ein leeres Template. Es ist nützlich, wenn man ein bestehendes Template aus Generico löschen will, da Generico keine Löschfunktion besitzt. 

      Die .txt-Datei in der Konfiguration zum Template, das gelöscht werden soll, auf den Badge 'Bundle' ziehen. Den templatekey löschen. Leeres Template speichern.

      Die Löschung ist erfolgreich, wenn unter /filter/generico/genericotemplatesadmin.php kein Templatekey, sondern eine Nummer angezeigt wird.

      Voraussetzungen

      Ein bestehendes Template, das gelöscht werden soll.

      Template 'leer'

      Datei leer.txt 
      Bitte den Code über den Kopieren-Button im Textfeld unterhalbkopieren und als .txt-Datei speichern.

      {
          "key": "bitte_entfernen_und_speichern",
          "name": "",
          "instructions": "",
          "requirecss": "",
          "requirejs": "",
          "shim": "",
          "defaults": "",
          "amd": "1",
          "body": "",
          "bodyend": "",
          "script": "",
          "style": "",
          "dataset": "",
          "datasetvars": "",
          "alternate": "",
          "alternateend": "",
          "version": ""
      }

      Beschreibung

      Dies ist ein leeres Template. Es ist nützlich, wenn man ein bestehendes Template aus Generico löschen will, da Generico keine Löschfunktion besitzt. 

        Die .txt-Datei in der Konfiguration zum Template, das gelöscht werden soll, auf den Badge 'Bundle' ziehen. Den templatekey löschen. Leeres Template speichern.

        Die Löschung ist erfolgreich, wenn unter /filter/generico/genericotemplatesadmin.php kein Templatekey, sondern eine Nummer angezeigt wird.

        Voraussetzungen

        Ein bestehendes Template, das gelöscht werden soll.

        Template 'leer'

        Datei leer.txt 
        Bitte den Code über den Kopieren-Button im Textfeld unterhalbkopieren und als .txt-Datei speichern.

        {
            "key": "bitte_entfernen_und_speichern",
            "name": "",
            "instructions": "",
            "requirecss": "",
            "requirejs": "",
            "shim": "",
            "defaults": "",
            "amd": "1",
            "body": "",
            "bodyend": "",
            "script": "",
            "style": "",
            "dataset": "",
            "datasetvars": "",
            "alternate": "",
            "alternateend": "",
            "version": ""
        }

        Beschreibung

        Dies ist ein leeres Template. Es ist nützlich, wenn man ein bestehendes Template aus Generico löschen will, da Generico keine Löschfunktion besitzt. 

          Die .txt-Datei in der Konfiguration zum Template, das gelöscht werden soll, auf den Badge 'Bundle' ziehen. Den templatekey löschen. Leeres Template speichern.

          Die Löschung ist erfolgreich, wenn unter /filter/generico/genericotemplatesadmin.php kein Templatekey, sondern eine Nummer angezeigt wird.

          Voraussetzungen

          Ein bestehendes Template, das gelöscht werden soll.