Skip to content

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 Form
  • module_alias: Technischer Name (kebab-case)
  • moduleNamespace: Vollständiger PHP-Namespace
  • modelNamespace: Namespace für Model-Klassen
  • module_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 UebungenRegistry und die UebungenLibrary-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.