Tornar o seu plugin compatível com o LS4
From LimeSurvey Manual
Alterações técnicas
O novo ficheiro de configuração XML
Desde o LimeSurvey 4.0, os plugins precisam de um ficheiro de configuração XML para serem executados na aplicação.
A razão para isto é a possibilidade de guardar metadados, como o autor do plugin, o email de suporte ou informações sobre atualizações.
Este ficheiro XML é obrigatório no LimeSurvey 4. Deve estar localizado na pasta raiz do plugin. Para mais informações, consulte o desenvolvimento de plugins plugins
Exemplo:

A nova pasta de plugins
A pasta de plugins foi alterada no LimeSurvey 4. Por razões de segurança, a pasta de plugins está agora localizada na pasta de carregamento (/upload/plugins), devido ao novo gestor de plugins (carregador de plugins). Para carregamentos manuais, recomendamos que carregue os seus ficheiros para a nova pasta, para evitar o mau funcionamento do software.
Certifique-se de que altera ou adiciona a nova pasta, caso esta esteja definida diretamente no código do seu plugin.
Exemplo:

Os novos eventos de plugins
Alguns eventos de plugins do LS3 foram descontinuados. Utilize os novos eventos de plugins introduzidos no LS4 para substituir os antigos. Para mais informações, consulte o nosso manual de desenvolvimento sobre eventos de plugins.
Funções e métodos descontinuados
Dado que o código base ou a estrutura do LimeSurvey 4 mudou, existem muitos métodos ou funções que já não são utilizados. Para resolver este problema, deve primeiro ativar o modo de debug no ficheiro config.php e depois aceder à página do plugin. Qualquer método que já não exista será apresentado na página de erro.
Alguns dos métodos foram renomeados no LS4 ou já não são utilizados. Para garantir que o seu plugin funciona tanto no LS3 como no LS4, verifique a versão do LS antes de chamar o método de que necessita.
Exemplo:

Boas práticas
Evite ficheiros SVG
Por razões de segurança (XSS), o carregamento de ficheiros SVG não é possível. O carregador de plugins irá ignorar os ficheiros SVG. Substitua-os por ficheiros PNG ou JPEG. O carregamento de ficheiros SVG só é possível se tiver acesso à pasta de instalação através de FTP ou de outras ferramentas do servidor (carregue quaisquer ficheiros por sua conta e risco).
Evite constantes globais
Evite a utilização 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 utilize constantes globais no desenvolvimento de plugins.
Utilize Namespaces
Utilize namespaces para uma melhor organização, agrupando as classes que trabalham em conjunto para realizar uma tarefa no seu plugin. Desta forma, evita utilizar classes que já estão a ser usadas na aplicação principal.
Exemplo:

