Symptome: Ein Ticket öffnet sich normal, aber der Bereich „Parent Ticket / Child Tickets“ fehlt, oder osTicket zeigt nach dem Aktivieren einen PHP-Fehler.
Prüfen:
include/plugins/<Ordner>/vendor/autoload.php? Ohne diese Datei findet das Plugin seine Klassen nicht. Beim Git-Weg fehlt sie, bis du composer install --no-dev ausgeführt hast.[Subticket] Failed to load subticket-panel.js, ist die Datei unter <osTicket>/include/plugins/<Ordner>/js/subticket-panel.js für den Browser nicht erreichbar, zum Beispiel weil der Webserver den Zugriff auf include/ sperrt.Symptome: In der Warteschlange erscheint bei Parent-Tickets kein Code-Fork-Icon.
Prüfen:
tickets.php enthält, und nur auf Zeilen mit einem Link der Form tickets.php?id=<ID>.<osTicket>/scp/ajax-subticket.php?action=batch_parent_status&ticket_ids=15 im Browser auf. Die Antwort muss "success": true enthalten. Existiert die Datei nicht, kopiere sie wie unter Installation beschrieben nach scp/.[SubticketManager].Symptome: Nach Link to Parent erscheint Failed to link tickets oder Invalid parent ticket ID/number.
Prüfen:
You do not have access to this ticket.Das Panel nennt den Grund nicht immer. Bei Fehlern in linkTicket schreibt das Plugin die Ursache mit dem Präfix [SUBTICKET-PLUGIN] ins PHP-Error-Log.
Symptome: Ein normal angelegtes Ticket taucht als Child eines anderen Tickets auf.
Ursache: Du hast zuvor Create Subticket geklickt, das Formular aber nicht abgeschickt. Das Plugin behält die Parent-ID in deiner Session, bis ein Ticket angelegt wird.
Lösung: Löse die Verknüpfung über Unlink from Parent. Lege künftig entweder das Subticket an oder melde dich ab, wenn du das Formular verwirfst.
Die AJAX-Aktionen children, link, unlink und create erlauben 100 Anfragen pro 60 Sekunden und Session. Danach sperrt das Plugin die Session für 60 Sekunden. Das passiert im normalen Betrieb kaum. Eine Schleife in eigenem Code kann das Limit auslösen.
Symptome: Das Aktivieren meldet Target directory not writable: ..., Failed to deploy file to scp/... oder Source file not found: ....
Lösung:
scp/.scp-files/ mit den drei Dateien im Plugin-Ordner vorhanden ist.| Meldung | Ursache |
|---|---|
SubticketPlugin not found |
Unter include/plugins/*/ liegt keine Datei class.SubticketPlugin.php |
Multiple SubticketPlugin installations detected |
Das Plugin liegt mehrfach vor. Entferne die überzählige Kopie |
Controller not found |
ajax/SubticketController.php fehlt im Plugin-Ordner |
Mit SUBTICKET_DEBUG schreibt das Plugin nach /tmp/subticket-debug.log. Typische Zeilen:
Stored subticket_parent in session: 15 und Auto-linking ticket zeigen den Auto-Link-Ablauf.onTicketView() called zeigt, dass das Panel gerendert wird.Deploying file und File deployed zeigen das Kopieren nach scp/.Das Log enthält Ticketdaten. Deaktiviere den Debug-Modus nach der Analyse.
Schließt das Plugin Parent-Tickets automatisch?
Nein. Das Plugin ändert keinen Ticket-Status. Die Konfigurationsfelder dazu (zum Beispiel „Auto-close Parent Ticket“) sind ohne Funktion.
Gibt es eine Baumansicht oder Batch-Funktionen?
Nein. Die Übersichtsseite listet bestehende Beziehungen, höchstens 100 Child-Tickets.
Kann ein Ticket mehrere Parents haben?
Nein. osTicket speichert pro Ticket genau eine ticket_pid.
Wie viele Ebenen sind erlaubt?
Das Plugin begrenzt die Tiefe nicht. Die Schleifenprüfung folgt der Kette höchstens zehn Ebenen weit.
Was bleibt nach dem Deinstallieren?
Die Verknüpfungen in ticket_pid bleiben immer. Tabellen, Spalte version und Indizes entfernt das Plugin nur mit aktiver Option Remove Data on Uninstall, und die beiden Befehle für Spalte und Index funktionieren nur auf MariaDB.
Funktioniert das Plugin mit einem anderen Tabellenpräfix als ost_?
Nein. Alle Abfragen verwenden ost_ fest.
Kann ich Subtickets per REST-API verwalten?
Ja, über das Plugin API Endpoints. Details unter Erweitern und Integration.