Làm cho plugin của bạn tương thích với LS4
From LimeSurvey Manual
Thay đổi kỹ thuật
Tệp cấu hình XML mới
Kể từ LimeSurvey 4.0, các plugin cần có tệp cấu hình XML để chạy trong ứng dụng.
Lý do cho điều này là khả năng lưu trữ thông tin siêu dữ liệu như tác giả plugin, email hỗ trợ hoặc thông tin cập nhật.
Tệp XML này là bắt buộc trong LimeSurvey 4. Nó phải nằm trong thư mục gốc của plugin. Để biết thêm thông tin, hãy kiểm tra quá trình phát triển plugin plugins
Ví dụ:
![](/images/e/e6/Config_xml.png)
Thư mục plugin mới
Thư mục plugin đã được thay đổi trong LimeSurvey 4. Vì lý do bảo mật, thư mục plugin hiện nằm trong thư mục tải lên (/upload/plugins) do trình quản lý plugin mới (Trình tải lên plugin). Đối với tải lên thủ công, chúng tôi khuyên bạn nên tải tệp của mình lên thư mục mới để tránh trục trặc phần mềm.
Đảm bảo thay đổi hoặc thêm thư mục mới nếu nó được mã hóa cứng trong plugin của bạn.
Ví dụ:
Sự kiện plugin mới
Một số sự kiện plugin từ LS3 không còn được dùng nữa. Sử dụng các sự kiện plugin mới được giới thiệu trong LS4 để thay thế các sự kiện plugin cũ. Để biết thêm thông tin, hãy xem hướng dẫn phát triển của chúng tôi về sự kiện plugin.
Các hàm và phương thức không được dùng nữa
Do cơ sở mã hoặc cấu trúc của LimeSurvey 4 đã thay đổi nên có rất nhiều phương thức hoặc hàm không được sử dụng nữa. Để khắc phục sự cố này, trước tiên bạn cần bật chế độ gỡ lỗi trên tệp config.php rồi truy cập trang plugin. Bất kỳ phương thức nào không thoát được nữa sẽ được hiển thị trên trang lỗi.
Một số phương thức được đổi tên trong LS4 hoặc không được sử dụng nữa. Để chắc chắn rằng plugin của bạn hoạt động cho cả LS3 & LS4, hãy kiểm tra phiên bản LS trước khi gọi phương thức bạn cần.
Ví dụ:
![](/images/c/c4/Version.png)
Cách thực hành tốt nhất
Tránh tập tin SVG
Vì lý do bảo mật (XSS), không thể tải lên Tệp SVG. Trình tải lên Plugin sẽ bỏ qua các tệp SVG. Thay thế chúng bằng tệp PNG hoặc JPEG. Việc tải lên các tệp SVG chỉ có thể thực hiện được nếu bạn có quyền truy cập vào thư mục cài đặt qua ftp hoặc các công cụ máy chủ khác (Bạn tự chịu rủi ro khi tải lên bất kỳ tệp nào).
Tránh các hằng số toàn cục
Tránh sử dụng các hằng số chung có thể thu gọn với các biến của ứng dụng cốt lõi hoặc các plugin khác như “ROOT_PATH“. Đừng sử dụng hằng số toàn cục nói chung để phát triển plugin.
Sử dụng không gian tên
Sử dụng không gian tên để tổ chức tốt hơn bằng cách nhóm các lớp hoạt động cùng nhau để thực hiện một tác vụ trong plugin của bạn. Bằng cách đó, bạn tránh được việc sử dụng các lớp đang được sử dụng trong ứng dụng cốt lõi.
Example:
![](/images/e/e7/Helper.png)
![](/images/4/4b/Menu_items.png)