Gør dit plugin kompatibelt med LS4
From LimeSurvey Manual
Tekniske ændringer
Den nye XML-konfigurationsfil
Siden LimeSurvey 4.0 har plugins brug for en XML-konfigurationsfil for at blive kørt i applikationen.
Årsagen til dette er muligheden for at gemme metadataoplysninger såsom plugin-forfatter, support-e-mail eller opdateringsoplysninger.
Denne XML-fil er obligatorisk i LimeSurvey 4. Den skal være placeret i pluginnets rodbibliotek. For mere information se plugin-udviklingen plugins
Eksempel:
Den nye plugin-mappe
Plugin-mappen er ændret i LimeSurvey 4. Af sikkerhedsmæssige årsager er plugin-mappen nu placeret i upload-mappen (/upload/plugins) på grund af den nye plugin-manager (Plugin-uploader). For manuelle uploads anbefaler vi at uploade dine filer til den nye mappe for at undgå softwarefejl.
Sørg for at ændre eller tilføje den nye mappe, hvis den er hårdkodet i dit plugin.
Eksempel:
De nye plugin-begivenheder
Nogle plugin-begivenheder fra LS3 blev forældet. Brug de nye plugin-begivenheder introduceret i LS4 til at erstatte de gamle plugin-begivenheder. For mere information se vores udviklingsmanual om plugin begivenheder.
Udgåede funktioner og metoder
Siden kodebasen eller strukturen af LimeSurvey 4 ændrede sig, er der en masse metoder eller funktioner, der ikke bruges længere. For at løse dette problem skal du først aktivere debug-tilstanden på filen config.php og derefter gå til plugin-siden. Enhver metode, der ikke afsluttes længere, vil blive vist på fejlsiden.
Nogle af metoderne er omdøbt i LS4 eller bruges ikke længere. For at være sikker på, at dit plugin fungerer til både LS3 og LS4, skal du tjekke versionen af LS, før du kalder den metode, du har brug for.
Eksempel:
Bedste praksis
Undgå SVG-filer
Af sikkerhedshensyn (XSS) er upload af SVG-filer ikke muligt. Plugin-uploaderen ignorerer SVG-filer. Erstat dem med PNG- eller JPEG-filer. Upload af SVG-filer er kun mulig, hvis du har adgang til installationsmappen via ftp eller andre serverværktøjer (Upload alle filer på egen risiko).
Undgå globale konstanter
Undgå brugen af globale konstanter, der kan kollapse med variabler i kerneapplikationen eller andre plugins som "ROOT_PATH". Brug ikke global konstant generelt til plugin-udvikling.
Brug navnerum til bedre organisering ved at gruppere klasser, der arbejder sammen om at udføre en opgave i dit plugin. På den måde undgår du at bruge klasser, der allerede bruges i kerneapplikationen.
Eksempel: