Rendre votre plugin compatible avec LS4
From LimeSurvey Manual
Modifications techniques
Le nouveau fichier de configuration XML
Depuis LimeSurvey 4.0, les plugins nécessitent un fichier de configuration XML pour être exécutés dans l'application.
La raison en est la possibilité de stocker des informations de métadonnées telles que l'auteur du plugin, l'e-mail d'assistance ou les informations sur les mises à jour.
Ce fichier XML est obligatoire dans LimeSurvey 4. Il doit se trouver dans le répertoire racine du plugin. Pour plus d'informations, consultez le développement du plugin plugins
Exemple:
![](/images/e/e6/Config_xml.png)
Le nouveau répertoire du plugin
Le répertoire des plugins est modifié dans LimeSurvey 4. Pour des raisons de sécurité, le répertoire des plugins se trouve désormais dans le répertoire de téléchargement (/upload/plugins) grâce au nouveau gestionnaire de plugins (Plugin uploader). Pour les téléchargements manuels, nous vous recommandons de télécharger vos fichiers dans le nouveau répertoire pour éviter un dysfonctionnement du logiciel.
Assurez-vous de modifier ou d'ajouter le nouveau répertoire s'il est codé en dur dans votre plugin.
Exemple:
![](/images/f/fa/Path_possiblity.png)
Les nouveaux événements du plugin
Certains événements de plugin de LS3 sont obsolètes. Utilisez les nouveaux événements de plugin introduits dans LS4 pour remplacer les anciens événements de plugin. Pour plus d'informations, consultez notre manuel de développement sur les plugin events.
Fonctions et méthodes obsolètes
Depuis que la base de code ou la structure de LimeSurvey 4 a changé, de nombreuses méthodes ou fonctions ne sont plus utilisées. Pour résoudre ce problème, vous devez d'abord activer le mode débogage sur le fichier config.php, puis accéder à la page du plugin. Toute méthode qui ne se termine plus sera affichée sur la page d'erreur.
Certaines méthodes sont renommées dans LS4 ou ne sont plus utilisées. Pour être sûr que votre plugin fonctionne à la fois pour LS3 et LS4, vérifiez la version de LS avant d'appeler la méthode dont vous avez besoin.
Exemple:
![](/images/c/c4/Version.png)
Meilleure pratique
Évitez les fichiers SVG
Pour des raisons de sécurité (XSS), le téléchargement de fichiers SVG n'est pas possible. Le téléchargeur de plugin ignorera les fichiers SVG. Remplacez-les par des fichiers PNG ou JPEG. Le téléchargement de fichiers SVG n'est possible que si vous avez accès au répertoire d'installation via FTP ou d'autres outils serveur (Téléchargez tous les fichiers à vos propres risques).
Éviter les constantes globales
Évitez l'utilisation de constantes globales qui peuvent s'effondrer avec les variables de l'application principale ou d'autres plugins comme « ROOT_PATH ». N'utilisez pas de constante globale en général pour le développement de plugins.
Utiliser les espaces de noms
Utilisez l'espace de noms pour une meilleure organisation en regroupant les classes qui travaillent ensemble pour effectuer une tâche dans votre plugin. De cette façon, vous évitez d’utiliser des classes déjà utilisées dans l’application principale.
Example:
![](/images/e/e7/Helper.png)
![](/images/4/4b/Menu_items.png)