Zum Inhalt springen

Plugin-Entwicklung mit OPM-Paketen

In diesem Abschnitt lernst du, wie du eigene Plugins als OPM-Pakete für Znuny erstellst, installierst und verteilst.

Abschnitt betitelt „In diesem Abschnitt lernst du, wie du eigene Plugins als OPM-Pakete für Znuny erstellst, installierst und verteilst.“

Die SOPM-Datei (*.sopm) enthält alle Metadaten deines Pakets: `.sopm“

  • Name/Version/Framework: Eindeutige Paketkennung und kompatible Znuny-Version.
  • Filelist: Alle Dateien, die beim Installieren kopiert werden.

Lege dein Paket in einem eigenen Verzeichnis an, z.B. MyExtension/: *.sopm

  • Kernel/Config/Files/XML/: Registriert Module, Menüs oder Dynamic Fields.
  • Kernel/System/: Geschäftslogik-Klasse.
  • Kernel/Modules/: Frontend-Controller.
  • Templates & Sprache: TT-Dateien + Übersetzungs-.pm.

Nutze das CLI-Tool, um aus deiner SOPM ein OPM zu bauen: MyExtension/

Admin-UI: Paket hochladen unter Admin → Einstellungen → Paketverwaltung. Konsole: Kernel/Config/Files/XML/MyExtension.xml Zum Deinstallieren bzw. Aktualisieren: Kernel/System/DynamicField/Driver/MyCustomField.pm

Abschnitt betitelt „Admin-UI: Paket hochladen unter Admin → Einstellungen → Paketverwaltung. Konsole: Kernel/Config/Files/XML/MyExtension.xml Zum Deinstallieren bzw. Aktualisieren: Kernel/System/DynamicField/Driver/MyCustomField.pm“

In Kernel/Config/Files/XML/MyExtension.xml registrierst du einen neuen Dynamic Field Driver: Kernel/System/Event/Handler/MyHandler.pm Implementiere den Driver in Kernel/System/DynamicField/Driver/MyCustomField.pm.

Melde deinen Event-Handler an: Run() Handler in Kernel/System/Event/Handler/MyHandler.pm implementieren (Run()-Methode).

Kernel/System/Output/Filter/MyFilter.pm Filter in Kernel/System/Output/Filter/MyFilter.pm.

Abschnitt betitelt „Kernel/System/Output/Filter/MyFilter.pm Filter in Kernel/System/Output/Filter/MyFilter.pm.“
  • Repository-Index: Erzeuge Packages.xml für eigenes Repo: Packages.xml
  • Füge unter SysConfig Package::RepositoryList deine Repo-URL ein.
  • OTOpar: Lade dein OPM bei https://otopar.perl-services.de hoch, damit andere es direkt installieren können.

  1. SOPM anlegen mit Name MyCalendar.
  2. DB-Skript sql/create_calendar.sql für Tabelle calendar_events.
  3. Konfig-XML definiert neues Ticket-Feld „Termin“.
  4. Core-Modul Kernel/System/CalendarEvent.pm mit CRUD-Methoden.
  5. Frontend-Module Kernel/Modules/AgentCalendar.pm, Template AgentCalendar.tt.
  6. Paket bauen und in OTOpar upladen.

  • Versionsnummer im sopm anpassen (SemVer).
  • DB-Migrationen in sql/ sauber versionieren.
  • Unit-Tests für System- und Module-Klassen anlegen.
  • Dokumentation im README plus POD in Perl-Modulen.
  • Translations in Language/de_*.pm und en_*.pm. Damit hast du eine solide Basis, um eigene Znuny-Plugins zu entwickeln, zu verteilen und in Kundenprojekten wartbar einzusetzen. Viel Spaß!