Jak zajistit kompatibilitu vašeho zásuvného modulu s LS4
From LimeSurvey Manual
Technické změny
Nový konfigurační soubor XML
Od verze LimeSurvey 4.0 vyžadují zásuvné moduly ke spuštění v aplikaci konfigurační soubor XML.
Důvodem je možnost ukládat metadata, například autora zásuvného modulu, e-mail podpory nebo informace o aktualizacích.
Tento soubor XML je v LimeSurvey 4 povinný. Měl by být umístěn v kořenovém adresáři zásuvného modulu. Další informace naleznete ve vývojářské dokumentaci zásuvných modulů.
Příklad:

Nový adresář zásuvných modulů
Adresář zásuvných modulů se v LimeSurvey 4 změnil. Z bezpečnostních důvodů se nyní nachází v adresáři pro nahrávání (/upload/plugins) kvůli novému správci zásuvných modulů (nástroj pro nahrávání zásuvných modulů). Při ručním nahrávání doporučujeme nahrát soubory do nového adresáře, aby nedošlo k poruchám softwaru.
Pokud je adresář v zásuvném modulu zapsán napevno, nezapomeňte jej změnit nebo přidat nový.
Příklad:

Nové události zásuvných modulů
Některé události zásuvných modulů z LS3 jsou zastaralé. Místo starých událostí použijte nové události zavedené v LS4. Další informace naleznete v naší vývojářské příručce o událostech zásuvných modulů.
Zastaralé funkce a metody
Protože se kódová základna a struktura LimeSurvey 4 změnila, mnoho metod a funkcí se již nepoužívá. Chcete-li tento problém vyřešit, nejprve povolte režim ladění v souboru config.php a poté přejděte na stránku zásuvných modulů. Každá metoda, která již neexistuje, se zobrazí na chybové stránce.
Některé metody byly v LS4 přejmenovány nebo se již nepoužívají. Aby váš zásuvný modul fungoval v LS3 i LS4, zkontrolujte před voláním požadované metody verzi LS.
Příklad:

Osvědčené postupy
Vyhněte se souborům SVG
Z bezpečnostních důvodů (XSS) není nahrávání souborů SVG možné. Nástroj pro nahrávání zásuvných modulů soubory SVG ignoruje. Nahraďte je soubory PNG nebo JPEG. Nahrání souborů SVG je možné pouze tehdy, pokud máte přístup k instalačnímu adresáři přes FTP nebo jiné serverové nástroje (nahráváte libovolné soubory na vlastní riziko).
Vyhněte se globálním konstantám
Vyhněte se používání globálních konstant, které mohou kolidovat s proměnnými jádra aplikace nebo jiných zásuvných modulů, například „ROOT_PATH“. Globální konstanty obecně při vývoji zásuvných modulů nepoužívejte.
Používejte jmenné prostory
Používejte jmenné prostory pro lepší organizaci – seskupují třídy, které společně plní určitý úkol ve vašem zásuvném modulu. Tak se vyhnete použití tříd, které již používá jádro aplikace.
Příklad:

