Gör ditt plugin kompatibelt med LS4
From LimeSurvey Manual
Tekniska ändringar
Den nya XML-konfigurationsfilen
Sedan LimeSurvey 4.0 kräver plugin en XML-konfigurationsfil för att kunna köras i applikationen.
Anledningen är att det går att lagra metadata, till exempel pluginets upphovsperson, supportens e-postadress eller information om uppdaterare.
Den här XML-filen är obligatorisk i LimeSurvey 4. Den ska ligga i pluginets rotkatalog. Mer information finns i utvecklingsdokumentationen för plugin
Exempel:

Den nya plugin-katalogen
Plugin-katalogen har ändrats i LimeSurvey 4. Av säkerhetsskäl ligger plugin-katalogen nu i uppladdningskatalogen (/upload/plugins) på grund av den nya plugin-hanteraren (Plugin uploader). Vid manuell uppladdning rekommenderar vi att du laddar upp dina filer till den nya katalogen för att undvika att programvaran fungerar felaktigt.
Se till att ändra eller lägga till den nya katalogen om sökvägen är hårdkodad i ditt plugin.
Exempel:

De nya plugin-händelserna
Vissa plugin-händelser från LS3 har blivit föråldrade. Använd de nya plugin-händelserna som introducerades i LS4 för att ersätta de gamla. Mer information finns i vår utvecklingsmanual om plugin-händelser.
Föråldrade funktioner och metoder
Eftersom kodbasen och strukturen i LimeSurvey 4 har ändrats finns det många metoder och funktioner som inte används längre. För att åtgärda problemet måste du först aktivera felsökningsläget i filen config.php och sedan gå till plugin-sidan. Alla metoder som inte längre finns visas på felsidan.
Vissa metoder har bytt namn i LS4 eller används inte längre. För att vara säker på att ditt plugin fungerar i både LS3 och LS4 bör du kontrollera LS-versionen innan du anropar den metod du behöver.
Exempel:

Bästa praxis
Undvik SVG-filer
Av säkerhetsskäl (XSS) går det inte att ladda upp SVG-filer. Plugin uploader ignorerar SVG-filer. Ersätt dem med PNG- eller JPEG-filer. SVG-filer kan endast laddas upp om du har tillgång till installationskatalogen via ftp eller andra serververktyg (ladda upp filer på egen risk).
Undvik globala konstanter
Undvik globala konstanter som kan kollidera med variabler i kärnapplikationen eller andra plugin, till exempel „ROOT_PATH“. Använd som regel inte globala konstanter vid utveckling av plugin.
Använd namnrymder
Använd namnrymder för bättre organisation genom att gruppera klasser som samarbetar för att utföra en uppgift i ditt plugin. På så sätt undviker du att använda klasser som redan används i kärnapplikationen.
Exempel:

