Membuat plugin Anda kompatibel dengan LS4
From LimeSurvey Manual
Perubahan teknis
File konfigurasi XML baru
Sejak LimeSurvey 4.0, plugin memerlukan file konfigurasi XML agar dapat dijalankan di aplikasi.
Alasannya adalah agar informasi metadata, seperti penulis plugin, surel dukungan, atau informasi pembaruan, dapat disimpan.
File XML ini wajib ada di LimeSurvey 4. File ini harus diletakkan di direktori root plugin. Untuk informasi lebih lanjut, lihat pengembangan plugin plugin
Contoh:

Direktori plugin baru
Direktori plugin berubah di LimeSurvey 4. Demi alasan keamanan, direktori plugin kini berada di direktori unggahan (/upload/plugins) karena adanya pengelola plugin baru (Plugin uploader). Untuk unggahan manual, kami menyarankan agar Anda mengunggah berkas Anda ke direktori baru tersebut untuk menghindari gangguan fungsi perangkat lunak.
Pastikan Anda mengubah atau menambahkan direktori baru tersebut jika direktori ditulis secara langsung (hard-coded) di plugin Anda.
Contoh:

Event plugin baru
Beberapa event plugin dari LS3 sudah tidak digunakan lagi (deprecated). Gunakan event plugin baru yang diperkenalkan di LS4 untuk menggantikan event plugin lama. Untuk informasi lebih lanjut, lihat manual pengembangan kami tentang event plugin.
Fungsi dan metode yang sudah tidak digunakan
Karena basis kode atau struktur LimeSurvey 4 berubah, ada banyak metode atau fungsi yang tidak digunakan lagi. Untuk mengatasi masalah ini, aktifkan terlebih dahulu mode debug pada file config.php, lalu buka halaman plugin. Setiap metode yang sudah tidak ada akan ditampilkan pada halaman error.
Beberapa metode diganti namanya di LS4 atau tidak digunakan lagi. Agar plugin Anda berfungsi di LS3 maupun LS4, periksa versi LS sebelum memanggil metode yang Anda perlukan.
Contoh:

Praktik terbaik
Hindari file SVG
Demi alasan keamanan (XSS), mengunggah file SVG tidak dimungkinkan. Plugin uploader akan mengabaikan file SVG. Gantilah dengan file PNG atau JPEG. Mengunggah file SVG hanya dimungkinkan jika Anda memiliki akses ke direktori instalasi melalui ftp atau alat server lainnya (unggah file apa pun dengan risiko Anda sendiri).
Hindari konstanta global
Hindari penggunaan konstanta global yang dapat bentrok dengan variabel aplikasi inti atau plugin lain, seperti „ROOT_PATH“. Pada umumnya, jangan gunakan konstanta global dalam pengembangan plugin.
Gunakan namespace
Gunakan namespace untuk organisasi yang lebih baik dengan mengelompokkan kelas-kelas yang bekerja sama menjalankan suatu tugas di plugin Anda. Dengan begitu, Anda menghindari penggunaan kelas yang sudah digunakan di aplikasi inti.
Contoh:

