x

Bab utama

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Panduan memulai cepat - LimeSurvey 3.0+
  3. Instalasi - LimeSurvey CE
  4. Cara merancang survei yang baik (panduan)
  5. Memulai
  6. Mengelola LimeSurvey
  7. Survei - pengantar
  8. Pengaturan survei
  9. Menu survei
  10. Struktur survei
  11. Pertanyaan - pengantar
  12. Grup pertanyaan - pengantar
  13. Survei - manajemen
  14. Opsi toolbar survei
  15. Survei multibahasa
  16. ExpressionScript Engine - Panduan memulai cepat
  17. Fitur tanpa kategori dan fitur lanjutan
  18. FAQ Umum
  19. Pemecahan Masalah
  20. Solusi Sementara
  21. Lisensi
  22. Log perubahan versi
  23. Plugin
 Actions

Refaktor Nama Field LimeSurvey 7

From LimeSurvey Manual

Halaman ini mungkin diterjemahkan oleh mesin dan dapat mengandung kesalahan. Tampilkan versi asli bahasa Inggris · Perbaiki terjemahan ini
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refaktor Nama Field dan Tabel Tanggapan - LimeSurvey 7

LimeSurvey 7 menghadirkan pembersihan besar-besaran pada cara tabel tanggapan dan nama field dibuat. Pembaruan ini memodernisasi konvensi penamaan internal yang sudah lama digunakan dan menciptakan fondasi yang lebih dapat diprediksi dan andal untuk plugin, integrasi, dan pengembangan di masa mendatang.

Halaman ini membahas refaktor tabel tanggapan dan nama field.

Karena ini merupakan perubahan struktural, pekerjaan kustom apa pun yang bergantung pada penamaan lama mungkin perlu diperbarui. Halaman ini menjelaskan apa saja yang berubah, cara menguji dengan aman, dan cara mempersiapkan peningkatan versi.

1. Apa yang berubah

1.1 Nama tabel baru

LimeSurvey kini menggunakan skema penamaan yang konsisten untuk tabel terkait tanggapan.

Nama tabel lama Nama tabel baru
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>

Kueri SQL, integrasi, atau plugin apa pun yang merujuk ke tabel-tabel ini mungkin memerlukan penyesuaian.

1.2 Struktur nama field baru

Nama field kini mengikuti format yang dapat diprediksi dan konsisten. Contoh:

  • Q<questionId> - pertanyaan induk
  • Q<questionId>_S<subquestionId> - subpertanyaan
  • Q<questionId>_C<suffix> - komentar atau field lainnya
  • field peringkat: Q<questionId>_S<subquestionId> - item peringkat kini berupa subpertanyaan (lihat 1.3)
  • field waktu: tingkat pertanyaan atau tingkat grup tergantung konteks

Ini menggantikan penamaan lama berbasis sidXgidXqid.

1.3 Pertanyaan peringkat

Pertanyaan peringkat kini bekerja seperti tipe pertanyaan berbasis subpertanyaan lainnya:

  • Item adalah subpertanyaan. Item yang dapat diberi peringkat disimpan sebagai subpertanyaan (tipe R), bukan opsi jawaban.
  • Nama field menggunakan format subpertanyaan standar Q<questionId>_S<subquestionId> (satu untuk setiap item yang diberi peringkat).
  • Tanggapan disimpan dalam satu kolom JSON Q<questionId>, berupa larik berurutan berisi kode item di mana posisi = peringkat. Contoh: ["3", "1", "2"]

2. Mengapa ini penting

Pembersihan ini menangani pola penamaan yang telah didefinisikan secara resmi dan digunakan selama bertahun-tahun, lalu membawanya ke dalam struktur yang konsisten dan andal yang dapat kami andalkan untuk masa depan.

Perubahan struktural seperti ini jarang sekali sederhana. Perubahan ini menyentuh bagian sistem yang diandalkan banyak plugin dan integrasi, itulah sebabnya perubahan semacam ini sering ditunda karena kompleksitasnya. Namun menjaga konsistensi dan keterprediksian sangat penting untuk stabilitas jangka panjang.

Dengan menanganinya sekarang, kami membuat LimeSurvey lebih bersih dan lebih mudah dikembangkan, meskipun perubahan ini sebagian besar tidak terlihat di permukaan.

3. Cara melihat pratinjau nama field baru

Untuk melihat bagaimana nama field yang ada akan dipetakan ke struktur LS7 yang baru, Anda dapat melakukan langkah-langkah berikut:

  1. Cadangkan basis data, karena perubahan ini tidak dapat dibatalkan dan jika terjadi kesalahan, akan berguna memiliki basis data sebelum perubahan untuk pemulihan
  2. Checkout cabang develop-major:
    git checkout develop-major
    atau lakukan clone/unduh proyek langsung pada cabang ini di https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Muat halaman admin untuk memicu skrip perubahan
  4. Laporkan setiap kesalahan yang Anda temui selama eksekusi skrip perubahan
  5. Pelajari nama tabel dan nama field yang baru
  6. Uji plugin/tema Anda dan perbaiki kesalahan terkait nama tabel dan/atau nama field

Fungsi yang digunakan untuk mengonversi nama field lama menjadi nama field baru adalah sebagai berikut:

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

Parameter

  • $tableName - nama tabel asli
  • $fieldName - nama field asli
  • $questions - pertanyaan induk dan subpertanyaannya
  • $sid - ID survei
  • $gid - ID grup
  • $cd - apakah logika Desainer kondisi berlaku

Hasil

Fungsi ini mengembalikan nama field LS7 yang baru untuk field tanggapan tersebut.

4. Cara menguji perubahan dengan aman

Sangat disarankan untuk menguji LS7 di lingkungan khusus sebelum meningkatkan versi sistem produksi.

4.1 Instal LS7 di lingkungan terpisah

Unduh LS7 terbaru dari:

https://community.limesurvey.org

Instal secara terpisah dari penyiapan Anda saat ini.

4.2 Impor aset Anda yang sudah ada

Uji menggunakan:

  • survei
  • Tema survei
  • Tema admin
  • Tema pertanyaan
  • plugin
  • JavaScript kustom
  • integrasi kustom apa pun yang telah Anda buat

Periksa apakah semuanya berfungsi seperti yang diharapkan dengan penamaan tabel dan nama bidang yang baru. Perbarui kode apa pun yang bergantung pada penamaan lama.

4.3 Cara memicu migrasi

Jika Anda ingin melihat pratinjau logika migrasi di instalasi pengujian Anda:

  1. Cadangkan basis data Anda.
  2. Instal LimeSurvey versi LS7.
  3. Buka halaman admin mana pun untuk menjalankan skrip migrasi.
  4. Tinjau perubahan pada tabel dan nama bidang.
  5. Uji aplikasi.
  6. Perbarui kode kustom jika diperlukan.

4.4 Laporkan masalah

Terima kasih telah menguji sejak dini. Jika Anda menemukan sesuatu yang tampak janggal pada inti sistem, silakan laporkan agar kami dapat segera memperbaikinya.

https://bugs.limesurvey.org

5. Apa saja yang mungkin perlu diperbarui

Hal-hal berikut mungkin perlu disesuaikan:

  • plugin yang merujuk ke nama bidang atau nama tabel lama
  • integrasi kustom apa pun yang Anda buat
  • JavaScript yang menggunakan selektor berbasis nama bidang
  • tema kustom yang berinteraksi dengan pengenal terkait tanggapan
  • integrasi yang bergantung pada skema penamaan sebelumnya
  • mengimpor ekspor lama seperti survei, tema, tema pertanyaan, dan sebagainya.

Hal ini wajar dan merupakan bagian dari proses peningkatan versi.

6. Ringkasan

  • LS7 menghadirkan pembersihan menyeluruh pada penamaan tabel tanggapan dan nama bidang
  • Ini adalah perubahan struktural backend utama pada LS7
  • Sangat disarankan untuk melakukan pengujian di lingkungan terpisah
  • getFieldName() membantu melihat pratinjau penamaan di masa mendatang
  • Perbarui kode kustom jika diperlukan
  • Laporkan masalah sejak dini untuk membantu menstabilkan rilis final