Das Plugin gehört in einen eigenen Ordner unter include/plugins/, empfohlen ist der Name custom-css-loader.
/pfad/zu/osticket/include/plugins/custom-css-loader/
Die Plugin-Klasse lädt beim Einbinden vendor/autoload.php. Dieser Composer-Autoloader muss im Plugin-Ordner vorhanden sein, sonst bricht das Laden des Plugins mit einem Fatal Error ab.
include/plugins/custom-css-loader/ hoch.Das Release-ZIP enthält den Autoloader (vendor/autoload.php und vendor/composer/), weitere Schritte sind nicht nötig.
Das Verzeichnis vendor/ steht nicht im Repository. Nach dem Klonen erzeugst du den Autoloader mit Composer.
cd /pfad/zu/osticket/include/plugins
git clone https://github.com/markus-michalski/osticket-custom-css-loader.git custom-css-loader
cd custom-css-loader
composer install --no-dev
Das Plugin hat keine Laufzeit-Abhängigkeiten außer PHP 8.1. Composer wird nur für den Autoloader der eigenen Klassen im Ordner
src/gebraucht.
Beim Aktivieren läuft enable() und erledigt der Reihe nach:
assets/custom/css/ im osTicket-Hauptverzeichnis, wird er mit den Rechten 0755 angelegt..css-Datei, werden custom-staff.css und custom-client.css aus assets/demo/ hineinkopiert. Bereits vorhandene Dateien werden nie überschrieben.installed_version gespeichert.Kann der Webserver den Ordner nicht anlegen, schreibt das Plugin eine Meldung ins PHP-Error-Log. Lege den Ordner dann selbst an:
mkdir -p /pfad/zu/osticket/assets/custom/css
chmod 755 /pfad/zu/osticket/assets/custom/css
Der Ordner muss über den Webserver erreichbar sein, weil der Browser die CSS-Dateien unter <osTicket-Pfad>/assets/custom/css/<datei> lädt.
Bei jedem Start vergleicht das Plugin installed_version mit der Version aus plugin.php. Fehlt der Wert oder ist er niedriger, stellt das Plugin sicher, dass der CSS-Ordner existiert, und speichert die neue Version. Deine CSS-Dateien bleiben unangetastet. Beim Update wird der Ordner vendor/ im Plugin-Ordner mit ausgetauscht, sofern du das ZIP verwendest. Bei einem Git-Clone führst du nach dem Pull composer install --no-dev erneut aus.
Das Deaktivieren im Admin Panel stoppt das Einbinden. Die CSS-Dateien und der Ordner assets/custom/css/ bleiben bestehen, das Plugin löscht nichts.