Markus Michalski FAQ

Subticket Manager: Installation

Subticket Manager für osTicket installieren: Release-ZIP oder Git mit Composer, Aktivierung, was beim Aktivieren in scp/ kopiert wird, Update, manuelles Deployment, Deaktivieren und Deinstallieren.

English Version

Zurück zur Übersicht

Subticket Manager: Installation

Voraussetzungen

Anforderung Wert Hinweise
osTicket 1.18.x Die Plugin-Klasse prüft auf osTicket 1.18.0 oder neuer und auf die Spalte ticket_pid in ost_ticket
PHP 7.4 oder neuer Laut composer.json; die CI prüft 7.4 bis 8.3
Datenbank MySQL oder MariaDB Die README nennt MariaDB 10.3+ oder MySQL 5.7+
Tabellenpräfix ost_ Alle SQL-Abfragen des Plugins verwenden den festen Präfix ost_; ein anderer Präfix wird nicht unterstützt
Dateirechte Schreibzugriff auf scp/ Das Plugin kopiert beim Aktivieren drei Dateien dorthin
Composer nur beim Git-Weg Das Plugin hat keine Laufzeit-Abhängigkeiten, braucht aber den von Composer erzeugten Autoloader

Plugin-Dateien bereitstellen

Release-ZIP (empfohlen)

  1. Lade das neueste Release von GitHub Releases herunter.
  2. Entpacke die ZIP-Datei.
  3. Lade den Plugin-Ordner nach include/plugins/ auf deinen osTicket-Server hoch.

Die Paketliste des Repositorys (.releaseinclude) enthält vendor/autoload.php und vendor/composer/. Genau diese Dateien braucht das Plugin zum Laden seiner Klassen aus src/.

Git Clone mit Composer

cd /pfad/zu/osticket/include/plugins
git clone https://github.com/markus-michalski/osticket-subticket-manager.git subticket-manager
cd subticket-manager
composer install --no-dev

Ein reiner git clone reicht nicht. Das Plugin lädt seine Klassen unter src/ ausschließlich über vendor/autoload.php, und vendor/ gehört nicht zum Repository. Ohne composer install bricht das Plugin mit einem PHP-Fehler (Klasse nicht gefunden) ab.

Ordnername und Mehrfachinstallation

Der Name des Plugin-Ordners ist frei wählbar. Der AJAX-Handler sucht die Plugin-Klasse über include/plugins/*/class.SubticketPlugin.php. Liegt das Plugin mehrfach unter include/plugins/ (zum Beispiel eine alte Kopie mit anderem Ordnernamen), antwortet der Handler mit HTTP 500 und der Meldung Multiple SubticketPlugin installations detected. Entferne dann die überzählige Kopie.

Plugin aktivieren

  1. Melde dich im osTicket Admin Panel an.
  2. Öffne Verwalten → Plugins.
  3. Wähle Subticket Manager, installiere das Plugin und aktiviere es.

Beim Aktivieren (enable()) passiert Folgendes:

Die Datenbank-Änderungen legt das Plugin nicht in enable() an, sondern beim ersten Seitenaufruf nach der Aktivierung (siehe Technische Details).

apps.php wird nach scp/apps.php kopiert. Existiert dort schon eine Datei mit diesem Namen (zum Beispiel aus osTicket selbst), wird sie überschrieben, und beim Deinstallieren des Plugins wird scp/apps.php gelöscht. Sichere die Datei vor der Aktivierung.

Installation prüfen

  1. Ticket-Ansicht: Öffne ein beliebiges Ticket im Staff-Bereich. Über den Ticket-Tabs erscheint das Panel mit den Abschnitten Parent Ticket und Child Tickets.
  2. Übersichtsseite: Im Bereich Applications (Anwendungen) der Staff-Navigation findest du den Eintrag Subtickets.
  3. Queue-Indikator: Verknüpfe ein Ticket mit einem Parent. In der Ticket-Warteschlange zeigt das Parent-Ticket ein Code-Fork-Icon mit der Anzahl der Children.

Update

  1. Ersetze die Plugin-Dateien durch die neue Version (beim Git-Weg git pull und composer install --no-dev).
  2. Rufe eine beliebige osTicket-Seite auf. Das Plugin vergleicht beim Start die Version aus plugin.php mit der Datei scp/.subticket-deployed-version und kopiert die drei Dateien nach scp/ neu, sobald die Versionen abweichen.
  3. Leere den Browser-Cache, damit die aktuellen JavaScript-Dateien geladen werden.

Manuelles Deployment (Fallback)

Ist scp/ für den Webserver nicht beschreibbar, kopierst du die Dateien von Hand:

cd /pfad/zu/osticket
cp include/plugins/subticket-manager/scp-files/subtickets.php scp/subtickets.php
cp include/plugins/subticket-manager/scp-files/ajax-subticket.php scp/ajax-subticket.php
cp include/plugins/subticket-manager/scp-files/apps.php scp/apps.php

Deaktivieren

Das Plugin überschreibt disable() nicht. Beim Deaktivieren bleiben die drei Dateien in scp/ und alle Datenbank-Änderungen bestehen. Die Panels, der Queue-Indikator und die Auto-Verknüpfung sind dann nicht aktiv, weil das Plugin nicht mehr startet.

Deinstallieren

Beim Löschen des Plugins im Admin Panel läuft uninstall():