ZSK AI course labelling - Transparenz, wo KI in Moodle eingesetzt wurde
Versions
Current version
2.5.1 (2025070900)
2.5.1
Plugin type: Local plugins
Frankenstyle component name: local_zsk_ai_generated
Version build number: 2025070900
Version release name: 2.5.1
Maturity: Stable
Supported Moodle versions: 4.1, 4.2, 4.3, 4.4, 4.5, 5.0, 5.1, 5.2
Repository URL (Git): https://github.com/SilvioKahl/AI-Transparency
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/SilvioKahl/AI-Transparency/issues
Changelog
All notable changes to local_zsk_ai_generated are documented here.
2.5.0 – 2025-06-22
- moodle.org review: Kurs-Backup/Restore für KI-Flags, Metadaten und Abgabe-Konfiguration
- JavaScript in AMD-Module (
tooltip,badges,submission_display) statt Inline-js_init_code - Stylesheet über
get_stylesheets_for_context(); manuellerequires->css()entfernt
2.4.20 – 2025-06-22
- Badge-Tooltip und -Label folgen der aktiven Moodle-Session-Sprache (Sprachmenü), nicht mehr bevorzugt der Profilsprache
- Kurslisten-Badges: kursbezogene Tooltips in der gewählten Sprache; deutscher JS-Fallback entfernt
2.4.18 – 2025-06-10
- Kursseite: Badge über
stretched-link-Overlay gehoben (z-index, eigener Wrapper) – Mouseover wieder möglich - Wiki/Forum/Glossar/Datenbank: Sichtbarkeit für eingeschriebene Teilnehmer vereinfacht; Metadaten-Fallback ohne strikte userid-"bereinstimmung
2.4.17 – 2025-06-10
- Tooltip: zentral per
js_init_code(Footer), globalerbindZskFloatingTooltips, MutationObserver – Kursseite, Aufgaben-Bewertung, alle Badges - Wiki/Datenbank: Sichtbarkeit für eingeschriebene Teilnehmer über
uservisible(nicht nur spezielle Capabilities) - Datenbank: Badges auch in der Eintragsliste (nicht nur Einzelansicht)
2.4.16 – 2025-06-10
- Kursseite: Tooltip per Fixed-Position-Overlay (nicht mehr vom Moodle-Layout abgeschnitten)
- Forum/Glossar/Wiki/Datenbank: KI-Abgabe-Badges für eingeschriebene Teilnehmer sichtbar (nicht nur Admin/Lehrende)
2.4.15 – 2025-06-10
- Forum: Tooltip unterhalb des Badges; Badge neben Betreff statt unter Autorzeile
2.4.14 – 2025-06-10
- Kursseite: Tooltip liegt beim Mouseover über dem Badge der nächsten Aktivität (z-index /
:has())
2.4.13 – 2025-06-10
- Kritisch: Badge-JavaScript war seit 2.4.10 defekt (PHP-Heredoc hat
\nim Regex zerstört) – keine Badges systemweit - Fallback für leere Tooltip-/Label-Werte im Badge-Skript
2.4.12 – 2025-06-10
- Wiki: Core-Patch
wiki_pagelib_saverobuster (mehrere Anker inpagelib.php, Reparatur bei fehlendem Marker)
2.4.11 – 2025-06-10
- Kursseite (auch Bearbeitungsmodus): Aktivitäts-Badge wieder neben dem Titel, auch ohne Klick-Link
- Datenbank: doppelte „KI-Unterstützung"-Felder verhindert (Deduplizierung im Core-Patch und beim Rendern)
2.4.10 – 2025-06-10
- Kursseite: Mouseover-Tooltip bei Aktivitäts-Badges (z. B. Datenbank) wieder sichtbar – Tooltip unterhalb des Badges, kein Abschneiden durch Moodle-Layout
- Tooltip-Text: Zeilenumbrüche aus Metadaten werden für die Anzeige normalisiert
2.4.9 – 2025-06-10
- Abgabe-Transparenz (Forum, Glossar, Wiki, Workshop, Datenbank, Assign): wieder kompaktes Badge mit Mouseover-Tooltip statt großem Infopanel
- Tooltip enthält Werkzeug, Umfang und Beschreibung; Badge-Text wie Kurs-Kennzeichnung („KI generiert")
- Badge-Position: inline neben Titel/Begriff (Glossar, Wiki) bzw. Beitragskopf (Forum)
2.4.8 – 2025-06-10
- Glossar: keine View-Panels mehr auf dem Eintrag-Formular (edit.php); behebt viele vorausgefüllte KI-Kästchen beim Anlegen
- Glossar: Listen-Panels nur noch bei passendem DOM-Eintrag (kein Fallback mehr auf
#region-main) - Abgabe-Speichern: Deduplizierung pro Request (Patch + Event-Observer); Audit nur bei geänderten Daten
2.4.7 – 2025-06-10
- Audit-Log: Aktivitätsname wird mitgespeichert; Studierenden-Abgaben werden protokolliert
2.4.6 – 2025-06-10
- Glossar: vollständiges KI-Panel unter jedem Eintrag (nicht nur Badge); präzise Link-Erkennung gegen Doppel-Badges
- Wiki: Seiten-ID auch aus
$PAGE->url; bessere DOM-Position unter Seiteninhalt - CLI: klare Fehlermeldung bei Platzhaltern; listet entryid/pageid/discussionid
2.4.5 – 2025-06-10
- Wiki: Seiten-ID aus
pageid,swid+titleoderwid+group+title(typische Wiki-URLs ohne pageid) - Glossar: robustere DOM-Selektoren, Panel unter dem Eintrag
- CLI:
lib.php-Include behoben; Optionen--entryidund--pageid - Wiki: optionaler Speicher-Patch in
pagelib.php(zusätzlich zu Events)
2.4.4 – 2025-06-10
- Anzeige: JS über
$PAGE->requires->js_init_code()(DOM-ready, zuverlässiger als Inline-Script im Footer) - Forum 4.5: Selektoren für Nested-Posts (
.post-message), Badge neben Thementitel, Panel unter Beitragstext - Fallback: Seitenkontext auch über
discuss.php?d=/view.php?f=wenn$PAGE->cmfehlt - CLI
check_activity_submission.php: Metadaten-Zuordnung (firstpost vs. itemid) + Panel-Simulation
2.4.3 – 2025-06-09
- Speichern liest KI-Felder zuverlässig aus
$_POST; Core-Save-Patches neu angewendet - Anzeige zusätzlich über
course_module_viewed(Fallback ohne Moodle-4.4-Hooks) - CLI:
php local/zsk_ai_generated/cli/check_submission_meta.php --cmid=…
2.3.5 – 2025-06-09
- Forum: Speichern bei neuen Themen (
discussion_created) und direkt aus Formulardaten - Anzeige: Detailbox + KI-Badge in Themen- und Glossarlisten, robusteres DOM-Injection
2.3.4 – 2025-06-09
- Anzeige KI-Transparenz: Forum-Selektor für Moodle 4.x, Glossar-URL
mode=entry&hook=, Berechtigung für Autor:innen
2.3.3 – 2025-06-09
- Datenbank: Core-Patch
data_save– Anker-Einrückung für Moodle 4.x korrigiert
2.3.2 – 2025-06-09
- Glossar: KI-Felder via
glossary_entry_form-Unterklasse und Patch inmod/glossary/edit.php
2.3.1 – 2025-06-09
- Forum: KI-Felder erscheinen wieder (lib.php wurde auf Forum-Seiten nicht geladen; direkte Klassenaufrufe)
- Forum: eigene Formular-Klasse
forum_post_formstatt Patch inpost_form.php - Core-Patcher: Patches in
post.phpunddiscussion_list.php; CRLF-tolerant
2.3.0 – 2025-06-09
- KI-Transparenz für Forum, Glossar, Wiki, Datenbank und Workshop
- Modul-Adapter + Core-Patcher (
core_patcher) für Abgabeformulare - Modus (deaktiviert/optional/verpflichtend) in Aktivitätseinstellungen für alle genannten Typen
- Event-Observer für Speichern/Löschen; Anzeige für Lehrende auf Aktivitätsseiten
- CLI:
local/zsk_ai_generated/cli/apply_core_patches.php
2.2.4 – 2025-06-02
- Removed repository path
mod/zskassign/(caused misplaced-plugin error on upgrade) - Bridge source only under
local/zsk_ai_generated/bridge/zskassign/ - Installer removes mistaken
moodle/mod/zskassign/when upgrade can proceed
2.2.3 – 2025-06-02
- Assign bridge source moved to repository path
mod/zskassign/(ZSK convention, likemod/zsktermine/) - Runtime deploy target:
mod/assign/submission/zskassign/(Moodle requirement) - Component renamed to
assignsubmission_zskassign
2.2.2 – 2025-06-02
- Assign bridge folder renamed to
mod/assign/submission/zsk_ai_generated/(ZSK naming convention) - Legacy folder
zskairemoved automatically on upgrade
2.2.1 – 2025-06-02
- Assign bridge bundled inside
local/zsk_ai_generated/bridge/(single moodle.org package) - Bridge auto-deploys to
mod/assign/submission/zsk_ai_generated/on install/upgrade - Removed separate top-level
mod/assign/submission/zskaifrom repository layout
2.2.0 – 2025-06-02
- Student submission AI transparency (first stage:
mod_assignonly) - Generic metadata table
local_zsk_ai_generated_item_meta(contextid,component,itemid,userid, …) - Activity configuration table
local_zsk_ai_generated_cm_config(disabled / optional / required) - Service API:
transparency_service,activity_mode,usage_types,assign_adapter - Assign submission bridge plugin
assignsubmission_zsk_ai_generated(delegates to local plugin) - Privacy provider extended for submission metadata
- Site setting: submission transparency enabled/disabled
- Backup helper scaffold for future course backup integration
2.1.0 – 2025-06-22
- Documentation and packaging prepared for moodle.org plugins directory
- README, changelog, and submission guide updated for current feature set
2.0.3 – 2025-06-22
- Badge text managed via language packs (
badge_default) instead of per-language admin fields - Language customisation documented in admin settings
2.0.2 – 2025-06-22
- Multilingual badge text support via
{mlang}blocks (superseded by 2.0.3 approach)
2.0.1 – 2025-06-22
- Per-language badge label fields (superseded by 2.0.3)
2.0.0 – 2025-06-22
- Compliance dashboard with CSV export
- Audit log for marking and metadata changes
- Capability
local/zsk_ai_generated:viewcompliance
1.3.x – 2025-06
- Transparency metadata (AI level, tool, reviewer, disclaimer)
- Activity-level labelling and course-page metadata display
- Privacy provider for metadata fields
- Freemium license support (25 free markings)
1.0.0 – 2025-06
- Initial public release: course labelling, badges, tooltips, learner notices
2.5.0 (2025061017)
2.5.0
Plugin type: Local plugins
Frankenstyle component name: local_zsk_ai_generated
Version build number: 2025061017
Version release name: 2.5.0
Maturity: Stable
Supported Moodle versions: 4.5
Repository URL (Git): https://github.com/SilvioKahl/AI-Transparency
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/SilvioKahl/AI-Transparency/issues
Changelog
All notable changes to local_zsk_ai_generated are documented here.
2.5.0 – 2025-06-22
- moodle.org review: Kurs-Backup/Restore für KI-Flags, Metadaten und Abgabe-Konfiguration
- JavaScript in AMD-Module (
tooltip,badges,submission_display) statt Inline-js_init_code - Stylesheet über
get_stylesheets_for_context(); manuellerequires->css()entfernt
2.4.20 – 2025-06-22
- Badge-Tooltip und -Label folgen der aktiven Moodle-Session-Sprache (Sprachmenü), nicht mehr bevorzugt der Profilsprache
- Kurslisten-Badges: kursbezogene Tooltips in der gewählten Sprache; deutscher JS-Fallback entfernt
2.4.18 – 2025-06-10
- Kursseite: Badge über
stretched-link-Overlay gehoben (z-index, eigener Wrapper) – Mouseover wieder möglich - Wiki/Forum/Glossar/Datenbank: Sichtbarkeit für eingeschriebene Teilnehmer vereinfacht; Metadaten-Fallback ohne strikte userid-"bereinstimmung
2.4.17 – 2025-06-10
- Tooltip: zentral per
js_init_code(Footer), globalerbindZskFloatingTooltips, MutationObserver – Kursseite, Aufgaben-Bewertung, alle Badges - Wiki/Datenbank: Sichtbarkeit für eingeschriebene Teilnehmer über
uservisible(nicht nur spezielle Capabilities) - Datenbank: Badges auch in der Eintragsliste (nicht nur Einzelansicht)
2.4.16 – 2025-06-10
- Kursseite: Tooltip per Fixed-Position-Overlay (nicht mehr vom Moodle-Layout abgeschnitten)
- Forum/Glossar/Wiki/Datenbank: KI-Abgabe-Badges für eingeschriebene Teilnehmer sichtbar (nicht nur Admin/Lehrende)
2.4.15 – 2025-06-10
- Forum: Tooltip unterhalb des Badges; Badge neben Betreff statt unter Autorzeile
2.4.14 – 2025-06-10
- Kursseite: Tooltip liegt beim Mouseover über dem Badge der nächsten Aktivität (z-index /
:has())
2.4.13 – 2025-06-10
- Kritisch: Badge-JavaScript war seit 2.4.10 defekt (PHP-Heredoc hat
\nim Regex zerstört) – keine Badges systemweit - Fallback für leere Tooltip-/Label-Werte im Badge-Skript
2.4.12 – 2025-06-10
- Wiki: Core-Patch
wiki_pagelib_saverobuster (mehrere Anker inpagelib.php, Reparatur bei fehlendem Marker)
2.4.11 – 2025-06-10
- Kursseite (auch Bearbeitungsmodus): Aktivitäts-Badge wieder neben dem Titel, auch ohne Klick-Link
- Datenbank: doppelte „KI-Unterstützung"-Felder verhindert (Deduplizierung im Core-Patch und beim Rendern)
2.4.10 – 2025-06-10
- Kursseite: Mouseover-Tooltip bei Aktivitäts-Badges (z. B. Datenbank) wieder sichtbar – Tooltip unterhalb des Badges, kein Abschneiden durch Moodle-Layout
- Tooltip-Text: Zeilenumbrüche aus Metadaten werden für die Anzeige normalisiert
2.4.9 – 2025-06-10
- Abgabe-Transparenz (Forum, Glossar, Wiki, Workshop, Datenbank, Assign): wieder kompaktes Badge mit Mouseover-Tooltip statt großem Infopanel
- Tooltip enthält Werkzeug, Umfang und Beschreibung; Badge-Text wie Kurs-Kennzeichnung („KI generiert")
- Badge-Position: inline neben Titel/Begriff (Glossar, Wiki) bzw. Beitragskopf (Forum)
2.4.8 – 2025-06-10
- Glossar: keine View-Panels mehr auf dem Eintrag-Formular (edit.php); behebt viele vorausgefüllte KI-Kästchen beim Anlegen
- Glossar: Listen-Panels nur noch bei passendem DOM-Eintrag (kein Fallback mehr auf
#region-main) - Abgabe-Speichern: Deduplizierung pro Request (Patch + Event-Observer); Audit nur bei geänderten Daten
2.4.7 – 2025-06-10
- Audit-Log: Aktivitätsname wird mitgespeichert; Studierenden-Abgaben werden protokolliert
2.4.6 – 2025-06-10
- Glossar: vollständiges KI-Panel unter jedem Eintrag (nicht nur Badge); präzise Link-Erkennung gegen Doppel-Badges
- Wiki: Seiten-ID auch aus
$PAGE->url; bessere DOM-Position unter Seiteninhalt - CLI: klare Fehlermeldung bei Platzhaltern; listet entryid/pageid/discussionid
2.4.5 – 2025-06-10
- Wiki: Seiten-ID aus
pageid,swid+titleoderwid+group+title(typische Wiki-URLs ohne pageid) - Glossar: robustere DOM-Selektoren, Panel unter dem Eintrag
- CLI:
lib.php-Include behoben; Optionen--entryidund--pageid - Wiki: optionaler Speicher-Patch in
pagelib.php(zusätzlich zu Events)
2.4.4 – 2025-06-10
- Anzeige: JS über
$PAGE->requires->js_init_code()(DOM-ready, zuverlässiger als Inline-Script im Footer) - Forum 4.5: Selektoren für Nested-Posts (
.post-message), Badge neben Thementitel, Panel unter Beitragstext - Fallback: Seitenkontext auch über
discuss.php?d=/view.php?f=wenn$PAGE->cmfehlt - CLI
check_activity_submission.php: Metadaten-Zuordnung (firstpost vs. itemid) + Panel-Simulation
2.4.3 – 2025-06-09
- Speichern liest KI-Felder zuverlässig aus
$_POST; Core-Save-Patches neu angewendet - Anzeige zusätzlich über
course_module_viewed(Fallback ohne Moodle-4.4-Hooks) - CLI:
php local/zsk_ai_generated/cli/check_submission_meta.php --cmid=…
2.3.5 – 2025-06-09
- Forum: Speichern bei neuen Themen (
discussion_created) und direkt aus Formulardaten - Anzeige: Detailbox + KI-Badge in Themen- und Glossarlisten, robusteres DOM-Injection
2.3.4 – 2025-06-09
- Anzeige KI-Transparenz: Forum-Selektor für Moodle 4.x, Glossar-URL
mode=entry&hook=, Berechtigung für Autor:innen
2.3.3 – 2025-06-09
- Datenbank: Core-Patch
data_save– Anker-Einrückung für Moodle 4.x korrigiert
2.3.2 – 2025-06-09
- Glossar: KI-Felder via
glossary_entry_form-Unterklasse und Patch inmod/glossary/edit.php
2.3.1 – 2025-06-09
- Forum: KI-Felder erscheinen wieder (lib.php wurde auf Forum-Seiten nicht geladen; direkte Klassenaufrufe)
- Forum: eigene Formular-Klasse
forum_post_formstatt Patch inpost_form.php - Core-Patcher: Patches in
post.phpunddiscussion_list.php; CRLF-tolerant
2.3.0 – 2025-06-09
- KI-Transparenz für Forum, Glossar, Wiki, Datenbank und Workshop
- Modul-Adapter + Core-Patcher (
core_patcher) für Abgabeformulare - Modus (deaktiviert/optional/verpflichtend) in Aktivitätseinstellungen für alle genannten Typen
- Event-Observer für Speichern/Löschen; Anzeige für Lehrende auf Aktivitätsseiten
- CLI:
local/zsk_ai_generated/cli/apply_core_patches.php
2.2.4 – 2025-06-02
- Removed repository path
mod/zskassign/(caused misplaced-plugin error on upgrade) - Bridge source only under
local/zsk_ai_generated/bridge/zskassign/ - Installer removes mistaken
moodle/mod/zskassign/when upgrade can proceed
2.2.3 – 2025-06-02
- Assign bridge source moved to repository path
mod/zskassign/(ZSK convention, likemod/zsktermine/) - Runtime deploy target:
mod/assign/submission/zskassign/(Moodle requirement) - Component renamed to
assignsubmission_zskassign
2.2.2 – 2025-06-02
- Assign bridge folder renamed to
mod/assign/submission/zsk_ai_generated/(ZSK naming convention) - Legacy folder
zskairemoved automatically on upgrade
2.2.1 – 2025-06-02
- Assign bridge bundled inside
local/zsk_ai_generated/bridge/(single moodle.org package) - Bridge auto-deploys to
mod/assign/submission/zsk_ai_generated/on install/upgrade - Removed separate top-level
mod/assign/submission/zskaifrom repository layout
2.2.0 – 2025-06-02
- Student submission AI transparency (first stage:
mod_assignonly) - Generic metadata table
local_zsk_ai_generated_item_meta(contextid,component,itemid,userid, …) - Activity configuration table
local_zsk_ai_generated_cm_config(disabled / optional / required) - Service API:
transparency_service,activity_mode,usage_types,assign_adapter - Assign submission bridge plugin
assignsubmission_zsk_ai_generated(delegates to local plugin) - Privacy provider extended for submission metadata
- Site setting: submission transparency enabled/disabled
- Backup helper scaffold for future course backup integration
2.1.0 – 2025-06-22
- Documentation and packaging prepared for moodle.org plugins directory
- README, changelog, and submission guide updated for current feature set
2.0.3 – 2025-06-22
- Badge text managed via language packs (
badge_default) instead of per-language admin fields - Language customisation documented in admin settings
2.0.2 – 2025-06-22
- Multilingual badge text support via
{mlang}blocks (superseded by 2.0.3 approach)
2.0.1 – 2025-06-22
- Per-language badge label fields (superseded by 2.0.3)
2.0.0 – 2025-06-22
- Compliance dashboard with CSV export
- Audit log for marking and metadata changes
- Capability
local/zsk_ai_generated:viewcompliance
1.3.x – 2025-06
- Transparency metadata (AI level, tool, reviewer, disclaimer)
- Activity-level labelling and course-page metadata display
- Privacy provider for metadata fields
- Freemium license support (25 free markings)
1.0.0 – 2025-06
- Initial public release: course labelling, badges, tooltips, learner notices
1.0.0 (2025060500)
1.0.0
Plugin type: Local plugins
Frankenstyle component name: local_zsk_ai_generated
Version build number: 2025060500
Version release name: 1.0.0
Maturity: Stable
Supported Moodle versions: 4.4
Repository URL (Git):
Repository branch:
Repository tag:
Issue/bug tracker URL: https://github.com/SilvioKahl/AI-Transparency/issues
ZSK AI course labelling (local_zsk_ai_generated)
Mark individual Moodle courses as containing AI-generated content and display a visible badge with tooltip on course pages and in standard course listings.
Requirements
- Moodle 4.1 or later (4.4+ recommended for hook-based course form integration)
- No other plugins required
Installation
- Copy the folder
zsk_ai_generatedintomoodle/local/. - Log in as administrator and open Site administration ' Notifications to install the plugin.
- Configure the plugin under Site administration ' Plugins ' Local plugins ' ZSK AI course labelling.
Usage
- Edit a course (Course administration ' Edit settings).
- In the section AI labelling, enable AI-generated content.
- Save the course.
Flagged courses show:
- A notice box at the top of the course page
- A badge in the course header
- Badges in course lists (dashboard, site home, My courses, category pages, search results)
Hover over the badge to read the explanatory tooltip.
Settings
| Setting | Description |
|---------|-------------|
| Enable AI labelling | Turn the feature on or off site-wide |
| Badge text | Short label on the badge (default: AI / KI) |
Dynamic course lists
If your theme or another plugin renders course cards after the page loads, trigger a refresh:
document.dispatchEvent(new CustomEvent('local-zsk-ai-generated-refresh'));
Privacy
The plugin stores one flag per course (no personal user data). See the privacy provider in the plugin.
License
GNU GPL v3 or later. See LICENSE.
Author
Silvio Kahl