3. Anpassung der Konfigurationsdateien
3.3 Nötige Anpassungen in der module.json
Die module.json enthält grundlegende Modulinformationen und Namespaces:
json
{
"module_title": "Übung-Vokabeltrainer",
"module_alias": "uebung-vokabeltrainer",
"module_category": "Uebungen",
"module_description": "Ein Modul zum Vokabeltraining",
"version": "1.0.0",
"author": "Entwicklername",
"license": "MIT",
"moduleNamespace": "Modules\\Uebungen\\UebungVokabeltrainer",
"modelNamespace": "Modules\\Uebungen\\UebungVokabeltrainer\\app\\Models",
"module_model": "UebungVokabeltrainer",
"controllerNamespace": "Modules\\Uebungen\\UebungVokabeltrainer\\app\\Controllers"
}Erklärung
module_title: Anzeigename des Moduls in menschenlesbarer Formmodule_alias: Technischer Name (kebab-case)moduleNamespace: Vollständiger PHP-NamespacemodelNamespace: Namespace für Model-Klassenmodule_model: Das Eloquent-Hauptmodell des Moduls: Welches Eloquent-Model repräsentiert die Übung im Wesentlichen und ist z.B. mit einer gleichnamigen Datenbanktabelle verknüpft?
3.4 Nötige Anpassungen in der config.json
Die config.json definiert das Modul-Verhalten und die Datenbankstruktur, darunter:
- Anzeigename, Alias, Kategorie, Beschreibung für die
UebungenRegistryund dieUebungenLibrary-Komponente - Datenbankrelevante Informationen (Felder, Tabellenname, ...)
- Validierungslogik (Datentypen, Validation-Errors, ...)
- Pfade zu den Vue-Komponenten für entsprechende Übungsaktionen (Create, Absolve, ...)
- Einige Frontend-Einstellungen (Icons, ...)
- Vorgegebene Konfigurationsoptionen (s.
options) - Globale Konfigurationsvariablen (s.
config_variables): Mit globalen Konfigurationsvariablen lassen sich Konfigurationsoptionen für den Admin-Bereich hinterlegen, die in der Datenbank persistiert werden.
Es wird empfohlen, das Übungsmodul zunächst vollständig zu konzipieren und die config.json entsprechend anzupassen.
Hier ein Auszug der config.json-Datei:
json
{
"title": "Vokabeltrainer",
"alias": "uebung-vokabeltrainer",
"table": "uebung_vokabeltrainer",
"category": "uebung-classic",
"description": "Ein Modul zum Vokabeltraining",
"appearance": {
"icon": "fas fa-book"
},
"components": {
"create": {
"path": "resources/vue/UebungVokabeltrainerCreateComponent.vue",
"title": "Vokabeltrainer erstellen"
}
},
"fields": {
"title": {
"type": "string",
"descriptor": {
"de": "Titel"
},
"validation": {
"is_enabled": true,
"rules": "required|string|min:3",
"messages": {
"de": {
"required": "Der Titel ist erforderlich."
}
}
}
},
"description": {
// ... Weiteres String-Feld
},
"content_data": {
// ... JSON-Feld, das den Übungsinhalt speichern soll
},
"options": {
"is_auto_validated": true
}
}Eine ausführliche Beschreibung der Konfigurationsoptionen findet sich im entsprechenden Dokumentationsartikel.