Skip to content

Plugin-Entwicklung mit OPM-Paketen

This content is not available in your language yet.

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


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.


  • 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ß!