Machen Sie Ihr Plugin mit LS4 kompatibel
From LimeSurvey Manual
Technische Änderungen
Die neue XML-Konfigurationsdatei
Seit LimeSurvey 4.0 benötigen Plugins eine XML-Konfigurationsdatei, um in der Anwendung ausgeführt zu werden.
Der Grund dafür ist die Möglichkeit, Metadateninformationen wie Plugin-Autor, Support-E-Mail-Adresse oder Updater-Informationen zu speichern.
Diese XML-Datei ist in LimeSurvey 4 obligatorisch. Sie sollte sich im Stammverzeichnis des Plugins befinden. Weitere Informationen finden Sie in der Plugin-Entwicklung plugins.
Beispiel:
Das neue Plugin-Verzeichnis
Das Plugin-Verzeichnis wurde in LimeSurvey 4 geändert. Aus Sicherheitsgründen befindet sich das Plugin-Verzeichnis aufgrund des neuen Plugin-Managers (Plugin-Uploader) jetzt im Upload-Verzeichnis (/upload/plugins). Bei manuellen Uploads empfehlen wir, Ihre Dateien in das neue Verzeichnis hochzuladen, um Fehlfunktionen der Software zu vermeiden.
Stellen Sie sicher, dass Sie das neue Verzeichnis ändern oder hinzufügen, wenn es in Ihrem Plugin fest codiert ist.
Beispiel:
Die neuen Plugin-Ereignisse
Einige Plugin-Ereignisse von LS3 waren veraltet. Verwenden Sie die in LS4 eingeführten neuen Plugin-Ereignisse, um die alten Plugin-Ereignisse zu ersetzen. Weitere Informationen finden Sie in unserem Entwicklungshandbuch zu plugin events.
Veraltete Funktionen und Methoden
Da sich die Codebasis oder Struktur von LimeSurvey 4 geändert hat, gibt es viele Methoden oder Funktionen, die nicht mehr verwendet werden. Um dieses Problem zu beheben, müssen Sie zuerst den Debug-Modus in der Datei config.php aktivieren und dann zur Plugin-Seite gehen. Jede Methode, die nicht mehr beendet wird, wird auf der Fehlerseite angezeigt.
Einige der Methoden werden in LS4 umbenannt oder nicht mehr verwendet. Um sicherzustellen, dass Ihr Plugin sowohl für LS3 als auch für LS4 funktioniert, überprüfen Sie die Version von LS, bevor Sie die benötigte Methode aufrufen.
Beispiel:
Best Practice
SVG-Dateien vermeiden
Aus Sicherheitsgründen (XSS) ist das Hochladen von SVG-Dateien nicht möglich. Der Plugin-Uploader ignoriert SVG-Dateien. Ersetzen Sie sie durch PNG- oder JPEG-Dateien. Das Hochladen von SVG-Dateien ist nur möglich, wenn Sie über FTP oder andere Server-Tools Zugriff auf das Installationsverzeichnis haben (das Hochladen aller Dateien erfolgt auf eigene Gefahr).
Globale Konstanten vermeiden
Vermeiden Sie die Verwendung globaler Konstanten, die mit Variablen der Kernanwendung oder anderen Plugins wie „ROOT_PATH“ kollidieren können. Verwenden Sie im Allgemeinen keine globalen Konstanten für die Plugin-Entwicklung.
Namespaces verwenden
Verwenden Sie Namespaces für eine bessere Organisation, indem Sie Klassen gruppieren, die zusammenarbeiten, um eine Aufgabe in Ihrem Plugin auszuführen. Auf diese Weise vermeiden Sie die Verwendung von Klassen, die bereits in der Kernanwendung verwendet werden.
Beispiel: