Torne seu plugin compatível com o LS4
From LimeSurvey Manual
Alterações técnicas
O novo arquivo de configuração XML
Desde o LimeSurvey 4.0, os plugins precisam de um arquivo de configuração XML para serem executados na aplicação.
O motivo é a possibilidade de armazenar metadados, como o autor do plugin, o e-mail de suporte ou informações sobre atualizações.
Este arquivo XML é obrigatório no LimeSurvey 4. Ele deve estar localizado no diretório raiz do plugin. Para mais informações, consulte o desenvolvimento de plugins plugins
Exemplo:

O novo diretório de plugins
O diretório de plugins foi alterado no LimeSurvey 4. Por motivos de segurança, o diretório de plugins agora está localizado no diretório de carregamento (/upload/plugins) devido ao novo gerenciador de plugins (Plugin uploader). Para carregamentos manuais, recomendamos que você envie seus arquivos para o novo diretório, a fim de evitar o mau funcionamento do software.
Certifique-se de alterar ou adicionar o novo diretório caso ele esteja fixo (hard-coded) no seu plugin.
Exemplo:

Os novos eventos de plugin
Alguns eventos de plugin do LS3 foram descontinuados. Use os novos eventos de plugin introduzidos no LS4 para substituir os antigos. Para mais informações, consulte nosso manual de desenvolvimento sobre eventos de plugin.
Funções e métodos descontinuados
Como a base de código ou a estrutura do LimeSurvey 4 mudou, há muitos métodos ou funções que não são mais usados. Para resolver esse problema, primeiro você precisa ativar o modo de depuração no arquivo config.php e depois acessar a página de plugins. Qualquer método que não exista mais será exibido na página de erro.
Alguns métodos foram renomeados no LS4 ou não são mais usados. Para garantir que seu plugin funcione tanto no LS3 quanto no LS4, verifique a versão do LS antes de chamar o método de que você precisa.
Exemplo:

Boas práticas
Evite arquivos SVG
Por motivos de segurança (XSS), o carregamento de arquivos SVG não é possível. O Plugin uploader ignorará arquivos SVG. Substitua-os por arquivos PNG ou JPEG. O carregamento de arquivos SVG só é possível se você tiver acesso ao diretório de instalação via FTP ou outras ferramentas do servidor (envie quaisquer arquivos por sua conta e risco).
Evite constantes globais
Evite o uso de constantes globais que possam entrar em conflito com variáveis da aplicação principal ou de outros plugins, como „ROOT_PATH“. Em geral, não use constantes globais no desenvolvimento de plugins.
Use namespaces
Use namespaces para uma melhor organização, agrupando classes que trabalham juntas para realizar uma tarefa no seu plugin. Dessa forma, você evita usar classes que já são usadas na aplicação principal.
Exemplo:

