x

Các chương chính

  1. LimeSurvey Cloud so với LimeSurvey CE
  2. Hướng dẫn bắt đầu nhanh - LimeSurvey 3.0+
  3. Lắp đặt - LimeSurvey CE
  4. Cách thiết kế một cuộc khảo sát tốt (hướng dẫn)
  5. Bắt đầu
  6. Quản lý khảo sát vôi
  7. Khảo sát - giới thiệu
  8. Cài đặt khảo sát
  9. Thực đơn khảo sát
  10. Cấu trúc khảo sát
  11. Câu hỏi - giới thiệu
  12. Nhóm câu hỏi - giới thiệu
  13. Khảo sát - quản lý
  14. Tùy chọn thanh công cụ khảo sát
  15. Khảo sát đa ngôn ngữ
  16. Công cụ ExpressionScript - Hướng dẫn bắt đầu nhanh
  17. Không được phân loại và các tính năng nâng cao
  18. Câu hỏi thường gặp chung
  19. Xử lý sự cố
  20. Cách giải quyết
  21. Giấy phép
  22. Nhật ký thay đổi phiên bản
  23. Plugin - nâng cao
 Actions

Tái cấu trúc tên trường trong LimeSurvey 7

From LimeSurvey Manual

Trang này có thể đã được dịch máy và có thể chứa lỗi. Xem bản gốc tiếng Anh · Cải thiện bản dịch này
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Tái cấu trúc tên trường và bảng phản hồi - LimeSurvey 7

LimeSurvey 7 giới thiệu một đợt dọn dẹp lớn về cách tạo các bảng phản hồi và tên trường. Bản cập nhật này hiện đại hóa các quy ước đặt tên nội bộ đã tồn tại từ lâu và tạo ra nền tảng dễ dự đoán, vững chắc hơn cho các plugin, tích hợp và quá trình phát triển trong tương lai.

Trang này tập trung vào việc tái cấu trúc bảng phản hồi và tên trường.

Vì đây là một thay đổi về cấu trúc, mọi tùy biến dựa trên cách đặt tên cũ đều có thể cần được cập nhật. Trang này giải thích những gì thay đổi, cách kiểm thử an toàn và cách chuẩn bị cho việc nâng cấp.

1. Những gì thay đổi

1.1 Tên bảng mới

LimeSurvey hiện sử dụng một quy tắc đặt tên nhất quán cho các bảng liên quan đến phản hồi.

Tên bảng cũ Tên bảng mới
old_survey_<sid>_<timestamp> old_responses_<sid>_<timestamp>
old_survey_<sid>_timings_<timestamp> old_timings_<sid>_<timestamp>
survey_<sid> responses_<sid>
survey_<sid>_timings timings_<sid>

Mọi truy vấn SQL, tích hợp hoặc plugin tham chiếu đến các bảng này có thể cần được điều chỉnh.

1.2 Cấu trúc tên trường mới

Tên trường hiện theo một định dạng dễ dự đoán và nhất quán. Ví dụ:

  • Q<questionId> - câu hỏi gốc
  • Q<questionId>_S<subquestionId> - các câu hỏi phụ
  • Q<questionId>_C<suffix> - dẫn giải hoặc các trường khác
  • trường xếp hạng: Q<questionId>_S<subquestionId> - các mục xếp hạng hiện là câu hỏi phụ (xem 1.3)
  • trường thời gian: ở cấp câu hỏi hoặc cấp nhóm tùy theo ngữ cảnh

Điều này thay thế cách đặt tên cũ dựa trên sidXgidXqid.

1.3 Câu hỏi xếp hạng

Câu hỏi xếp hạng hiện hoạt động giống các loại câu hỏi khác dựa trên câu hỏi phụ:

  • Các mục là câu hỏi phụ. Các mục có thể xếp hạng được lưu dưới dạng câu hỏi phụ (loại R), không phải Tuỳ chọn trả lời.
  • Tên trường sử dụng định dạng câu hỏi phụ tiêu chuẩn Q<questionId>_S<subquestionId> (một trường cho mỗi mục được xếp hạng).
  • Phản hồi được lưu trong một cột JSON duy nhất Q<questionId>, dưới dạng mảng có thứ tự các mã mục, trong đó vị trí = thứ hạng. Ví dụ: ["3", "1", "2"]

2. Tại sao điều này quan trọng

Đợt dọn dẹp này xử lý các mẫu đặt tên đã được định nghĩa chính thức và sử dụng trong nhiều năm, đưa chúng về một cấu trúc nhất quán và vững chắc để chúng tôi có thể xây dựng tiếp trong tương lai.

Những thay đổi cấu trúc như thế này hiếm khi đơn giản. Chúng chạm đến các phần của hệ thống mà nhiều plugin và tích hợp phụ thuộc vào, vì vậy thường bị trì hoãn do độ phức tạp. Tuy nhiên, giữ cho mọi thứ nhất quán và dễ dự đoán là điều quan trọng đối với sự ổn định lâu dài.

Bằng cách xử lý vấn đề này ngay bây giờ, chúng tôi giúp LimeSurvey gọn gàng hơn và dễ mở rộng hơn, ngay cả khi thay đổi này phần lớn không hiển thị bên ngoài.

3. Cách xem trước tên trường mới

Để xem tên trường hiện có sẽ được ánh xạ như thế nào sang cấu trúc LS7 mới, bạn có thể thực hiện các bước sau:

  1. Sao lưu cơ sở dữ liệu, vì các thay đổi không thể hoàn tác và nếu có sự cố, việc có cơ sở dữ liệu trước khi thay đổi sẽ hữu ích để khôi phục
  2. Checkout nhánh develop-major:
    git checkout develop-major
    hoặc clone/tải xuống trực tiếp dự án ở nhánh này tại https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Tải một trang quản trị để kích hoạt tập lệnh thay đổi
  4. Báo cáo mọi lỗi bạn gặp trong quá trình thực thi tập lệnh thay đổi
  5. Nghiên cứu các tên bảng và tên trường mới
  6. Kiểm thử các plugin/giao diện của bạn và sửa các lỗi liên quan đến tên bảng và/hoặc tên trường

Hàm dùng để chuyển đổi tên trường cũ thành tên trường mới như sau:

getFieldName($tableName, $fieldName, $questions, $sid, $gid, $cd)

Tham số

  • $tableName - tên bảng gốc
  • $fieldName - tên trường gốc
  • $questions - câu hỏi gốc và các câu hỏi phụ của nó
  • $sid - ID khảo sát
  • $gid - Id nhóm
  • $cd - có áp dụng logic của Trình thiết kế điều kiện hay không

Kết quả

Hàm trả về tên trường LS7 mới cho trường phản hồi đó.

4. Cách kiểm thử các thay đổi một cách an toàn

Chúng tôi khuyến nghị mạnh mẽ nên kiểm thử LS7 trong một môi trường riêng trước khi nâng cấp các hệ thống đang vận hành.

4.1 Cài đặt LS7 trong một môi trường riêng

Tải phiên bản LS7 mới nhất từ:

https://community.limesurvey.org

Cài đặt nó tách biệt với hệ thống hiện tại của bạn.

4.2 Tải nhập các tài nguyên hiện có của bạn

Hãy thử nghiệm với:

  • khảo sát
  • chủ đề khảo sát
  • chủ đề quản trị
  • chủ đề câu hỏi
  • plugin
  • JavaScript tùy chỉnh
  • mọi tích hợp tùy chỉnh mà bạn đã xây dựng

Kiểm tra xem mọi thứ có hoạt động như mong đợi với cách đặt tên bảng và tên trường mới hay không. Cập nhật mọi mã phụ thuộc vào cách đặt tên cũ.

4.3 Cách kích hoạt quá trình di chuyển dữ liệu?

Nếu bạn muốn xem trước logic di chuyển dữ liệu trong bản cài đặt thử nghiệm của mình:

  1. Sao lưu cơ sở dữ liệu của bạn.
  2. Cài đặt phiên bản LS7.
  3. Tải bất kỳ trang quản trị nào để chạy tập lệnh di chuyển dữ liệu.
  4. Xem lại các thay đổi về tên bảng và tên trường.
  5. Kiểm thử ứng dụng.
  6. Cập nhật mã tùy chỉnh nếu cần.

4.4 Báo cáo sự cố

Cảm ơn bạn đã thử nghiệm sớm. Nếu bạn phát hiện điều gì bất thường từ phần lõi, vui lòng báo cáo để chúng tôi có thể khắc phục sớm nhất có thể.

https://bugs.limesurvey.org

5. Những phần có thể cần cập nhật

Những phần sau có thể cần điều chỉnh:

  • plugin tham chiếu đến tên trường hoặc tên bảng cũ
  • mọi tích hợp tùy chỉnh mà bạn đã xây dựng
  • JavaScript sử dụng bộ chọn dựa trên tên trường
  • chủ đề tùy chỉnh tương tác với các định danh liên quan đến phản hồi
  • các tích hợp phụ thuộc vào cách đặt tên trước đây
  • tải nhập các bản xuất cũ như khảo sát, chủ đề, chủ đề câu hỏi, v.v.

Điều này là bình thường và là một phần của quá trình nâng cấp.

6. Tóm tắt

  • LS7 giới thiệu một đợt dọn dẹp toàn diện cách đặt tên bảng phản hồi và tên trường
  • Đây là thay đổi cấu trúc backend chính của LS7
  • Rất khuyến nghị thử nghiệm trong một môi trường riêng biệt
  • getFieldName() giúp xem trước cách đặt tên trong tương lai
  • Cập nhật mã tùy chỉnh khi cần thiết
  • Báo cáo sự cố sớm để giúp ổn định bản phát hành cuối cùng