composer.json deklariert >=7.4, der Code nutzt aber PHP-8.0-Syntax)include/class.thread.php, include/.htaccess und das Verzeichnis api/ (siehe unten)Variante 1: Release-ZIP (empfohlen)
markdown-support nach include/plugins/ im osTicket-Verzeichnis kopieren.Das ZIP enthält die Laufzeit-Abhängigkeit Parsedown im Ordner vendor/.
Variante 2: Git Clone mit Composer
cd /pfad/zu/osticket/include/plugins
git clone https://github.com/markus-michalski/osticket-markdown-support.git markdown-support
cd markdown-support
composer install --no-dev
Das Plugin lädt beim Start
vendor/autoload.php. Ohnecomposer installfehlt dieser Ordner im Git-Checkout, und das Plugin kann nicht starten.
Der Zielpfad ist include/plugins/markdown-support/ mit plugin.php, class.MarkdownPlugin.php und config.php direkt darin.
Beim Aktivieren passiert Folgendes:
Auto-created singleton instance).include/.htaccess um Regeln, die statische Dateien (js, css, Bilder, Fonts) und PHP-Dateien unter plugins/ freigeben.markdown-preview.php nach api/markdown-preview.php (Endpoint der Live-Vorschau).include/class.thread.php um einen case 'markdown': ergänzt. Vorher legt das Plugin die Sicherung include/class.thread.php.markdown-backup an.Die Einstellungen stehen unter Konfiguration.
Ein bereits geöffneter Browser-Tab bekommt den Editor erst nach dem Neuladen der Seite.
Ersetze den Ordner include/plugins/markdown-support/ durch die neue Version. Beim nächsten Start vergleicht das Plugin die gespeicherte installed_version mit der Version in plugin.php. Ist sie älter oder leer, aktualisiert es die .htaccess-Regeln, kopiert den Preview-Endpoint erneut und speichert die neue Version.
Der Core-Patch in include/class.thread.php gehört zu osTicket und geht bei einem osTicket-Update verloren, wenn die Datei ersetzt wird. Das Plugin verhält sich dabei so:
case 'markdown': und patcht die neue Datei erneut. Existiert schon eine Sicherung .markdown-backup, überschreibt es sie nicht. Sie stammt dann noch von der Datei aus der alten osTicket-Version.include/class.thread.php und löscht sie. Damit würde die Core-Datei der neuen osTicket-Version durch die alte ersetzt.case 'markdown': und legt keine neue Sicherung an.Deaktiviere das Plugin deshalb vor dem osTicket-Update. Dabei wird die ursprüngliche Datei wiederhergestellt und die Sicherung gelöscht. Spiele danach das osTicket-Update ein und aktiviere das Plugin wieder. Es legt dann eine frische Sicherung der neuen Datei an und patcht sie.
include/class.thread.php aus der Sicherung wieder her (und löscht die Sicherung), entfernt api/markdown-preview.php und entfernt seine Regeln aus include/.htaccess.include/plugins/markdown-support/ löschen.Das Plugin löscht keine Daten aus der Datenbank. Bestehende Einträge behalten das Format markdown in der Spalte format und ihren Markdown-Text. Wie osTicket solche Einträge ohne das Plugin darstellt, entscheidet der osTicket-Core.