使您的插件兼容 LS4
From LimeSurvey Manual
技术变更
新的 XML 配置文件
自 LimeSurvey 4.0 起,插件需要一个 XML 配置文件才能在应用程序中运行。
这样做的原因是可以存储元数据信息,例如插件作者、支持电子邮件或更新程序信息。
此 XML 文件在 LimeSurvey 4 中是必需的,应位于插件的根目录中。有关更多信息,请查看插件开发文档 插件。
示例:

新的插件目录
LimeSurvey 4 中的插件目录已更改。出于安全原因,由于引入了新的插件管理器(插件上传器),插件目录现在位于上传目录(/upload/plugins)中。 如果手动上传,我们建议将文件上传到新目录,以避免软件出现故障。
如果您的插件中硬编码了目录,请务必更改或添加新目录。
示例:

新的插件事件
LS3 中的一些插件事件已被弃用。请使用 LS4 中引入的新插件事件来替换旧的插件事件。 有关更多信息,请查看我们的开发手册:插件事件。
已弃用的函数和方法
由于 LimeSurvey 4 的代码库或结构发生了变化,许多方法或函数已不再使用。 要解决此问题,您需要先在 config.php 文件中启用调试模式,然后转到插件页面。任何不再存在的方法都会显示在错误页面上。
部分方法在 LS4 中已被重命名或不再使用。为确保您的插件同时适用于 LS3 和 LS4,请在调用所需方法之前检查 LS 的版本。
示例:

最佳实践
避免使用 SVG 文件
出于安全(XSS)原因,不允许上传 SVG 文件。插件上传器将忽略 SVG 文件。请将其替换为 PNG 或 JPEG 文件。 只有在您可以通过 FTP 或其他服务器工具访问安装目录时,才可以上传 SVG 文件(上传任何文件的风险由您自行承担)。
避免使用全局常量
请避免使用可能与核心应用程序或其他插件的变量冲突的全局常量,例如“ROOT_PATH”。在插件开发中,一般不要使用全局常量。
使用命名空间
使用命名空间,将协同完成某项任务的类分组,以便更好地组织插件中的代码。这样可以避免使用核心应用程序中已经在使用的类。
示例:

