x

Bab utama

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Panduan permulaan pantas - LimeSurvey 3.0+
  3. Pemasangan - LimeSurvey CE
  4. Cara mereka bentuk tinjauan yang baik (panduan)
  5. Bermula
  6. Mentadbir LimeSurvey
  7. Tinjauan - pengenalan
  8. Tetapan tinjauan
  9. Menu tinjauan
  10. Struktur tinjauan
  11. Soalan - pengenalan
  12. Kumpulan soalan - pengenalan
  13. Tinjauan - pengurusan
  14. Pilihan bar alat tinjauan
  15. Tinjauan berbilang bahasa
  16. Enjin ExpressionScript - Panduan mula pantas
  17. Ciri tidak dikategorikan dan ciri lanjutan
  18. Soalan Lazim Umum
  19. Penyelesaian Masalah
  20. Penyelesaian sementara
  21. Lesen
  22. Tukar log versi
  23. Pemalam
 Actions

Pemfaktoran Semula Nama Medan LimeSurvey 7

From LimeSurvey Manual

Halaman ini mungkin telah diterjemahkan oleh mesin dan mungkin mengandungi ralat. Papar teks asal bahasa Inggeris · Perbaiki terjemahan ini
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Pemfaktoran Semula Nama Medan dan Jadual Respons - LimeSurvey 7

LimeSurvey 7 memperkenalkan pembersihan besar-besaran cara jadual respons dan nama medan dijana. Kemas kini ini memodenkan konvensyen penamaan dalaman yang telah lama digunakan dan mewujudkan asas yang lebih boleh diramal dan teguh untuk pemalam, integrasi dan pembangunan masa depan.

Halaman ini memberi tumpuan kepada pemfaktoran semula jadual respons dan nama medan.

Oleh kerana ini ialah perubahan struktur, sebarang kerja tersuai yang bergantung pada penamaan lama mungkin memerlukan kemas kini. Halaman ini menerangkan apa yang berubah, cara menguji dengan selamat dan cara membuat persediaan untuk naik taraf.

1. Apa yang berubah

1.1 Nama jadual baharu

LimeSurvey kini menggunakan skema penamaan yang konsisten untuk jadual berkaitan jawapan.

Nama jadual lama Nama jadual baharu
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>

Sebarang pertanyaan SQL, integrasi atau pemalam yang merujuk jadual ini mungkin memerlukan pelarasan.

1.2 Struktur nama medan baharu

Nama medan kini mengikut format yang boleh diramal dan konsisten. Contoh:

  • Q<questionId> - soalan induk
  • Q<questionId>_S<subquestionId> - subsoalan
  • Q<questionId>_C<suffix> - komen atau medan lain
  • medan kedudukan: Q<questionId>_S<subquestionId> - item kedudukan kini ialah subsoalan (lihat 1.3)
  • medan pemasaan: pada peringkat soalan atau peringkat kumpulan bergantung pada konteks

Ini menggantikan penamaan lama berasaskan sidXgidXqid.

1.3 Soalan kedudukan

Soalan kedudukan kini berfungsi seperti jenis soalan lain yang berasaskan subsoalan:

  • Item ialah subsoalan. Item yang boleh disusun disimpan sebagai subsoalan (jenis R), bukan pilihan jawapan.
  • Nama medan menggunakan format subsoalan standard Q<questionId>_S<subquestionId> (satu bagi setiap item yang disusun).
  • Jawapan disimpan dalam satu lajur JSON Q<questionId>, sebagai tatasusunan tertib kod item di mana kedudukan = peringkat. Contoh: ["3", "1", "2"]

2. Mengapa ini penting

Pembersihan ini menangani corak penamaan yang telah ditakrifkan secara rasmi dan digunakan selama bertahun-tahun, dan membawanya ke dalam struktur yang konsisten dan teguh yang boleh kita bina untuk masa depan.

Perubahan struktur seperti ini jarang mudah. Ia menyentuh bahagian sistem yang menjadi pergantungan banyak pemalam dan integrasi, sebab itulah ia sering ditangguhkan kerana kerumitannya. Namun, mengekalkan konsistensi dan kebolehramalan adalah penting untuk kestabilan jangka panjang.

Dengan menanganinya sekarang, kami menjadikan LimeSurvey lebih bersih dan lebih mudah dikembangkan, walaupun perubahan ini kebanyakannya tidak kelihatan di permukaan.

3. Cara pratonton nama medan baharu

Untuk melihat bagaimana mana-mana nama medan sedia ada dipetakan kepada struktur LS7 yang baharu, anda boleh melakukan langkah berikut:

  1. Buat sandaran pangkalan data, kerana perubahan ini tidak boleh dipulihkan dan jika berlaku kesilapan, pangkalan data sebelum perubahan akan berguna untuk pemulihan
  2. Checkout cabang develop-major:
    git checkout develop-major
    atau klon/muat turun projek terus pada cabang ini di https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Muatkan halaman pentadbir untuk mencetuskan skrip perubahan
  4. Laporkan sebarang ralat yang anda temui semasa skrip perubahan dijalankan
  5. Kaji nama jadual dan nama medan yang baharu
  6. Uji pemalam/tema anda dan baiki ralat yang berkaitan dengan nama jadual dan/atau nama medan

Fungsi yang digunakan untuk menukar nama medan lama kepada nama medan baharu ialah seperti berikut:

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

Parameter

  • $tableName - nama jadual asal
  • $fieldName - nama medan asal
  • $questions - soalan induk dan subsoalannya
  • $sid - ID tinjauan
  • $gid - ID kumpulan
  • $cd - sama ada logik Pereka syarat digunakan

Hasil

Fungsi ini mengembalikan nama medan LS7 yang baharu bagi medan jawapan tersebut.

4. Cara menguji perubahan dengan selamat

Anda amat disyorkan menguji LS7 dalam persekitaran khusus sebelum menaik taraf sistem pengeluaran.

4.1 Pasang LS7 dalam persekitaran berasingan

Muat turun LS7 terkini dari:

https://community.limesurvey.org

Pasangnya secara berasingan daripada persediaan semasa anda.

4.2 Import aset sedia ada anda

Uji menggunakan:

  • tinjauan
  • Tema tinjauan
  • Tema pentadbir
  • Tema soalan
  • pemalam
  • JavaScript tersuai
  • sebarang integrasi tersuai yang telah anda bina

Semak sama ada semuanya berfungsi seperti yang dijangkakan dengan penamaan jadual dan nama medan yang baharu. Kemas kini sebarang kod yang bergantung pada penamaan lama.

4.3 Bagaimana untuk mencetuskan migrasi?

Jika anda ingin pratonton logik migrasi dalam pemasangan ujian anda:

  1. Sandarkan pangkalan data anda.
  2. Pasang versi LS7.
  3. Muatkan mana-mana halaman pentadbir untuk menjalankan skrip migrasi.
  4. Semak perubahan pada jadual dan nama medan.
  5. Uji aplikasi tersebut.
  6. Kemas kini kod tersuai jika perlu.

4.4 Laporkan isu

Terima kasih kerana menguji lebih awal. Jika anda menemui sesuatu yang kelihatan tidak betul daripada teras, sila laporkannya supaya kami dapat membetulkannya secepat mungkin.

https://bugs.limesurvey.org

5. Perkara yang mungkin memerlukan kemas kini

Perkara berikut mungkin memerlukan pelarasan:

  • plugin yang merujuk nama medan atau nama jadual lama
  • sebarang integrasi tersuai yang telah anda bina
  • JavaScript yang menggunakan pemilih berasaskan nama medan
  • tema tersuai yang berinteraksi dengan pengecam berkaitan jawapan
  • integrasi yang bergantung pada skema penamaan sebelumnya
  • mengimport eksport lama seperti tinjauan, tema, Tema soalan dan sebagainya.

Ini adalah dijangka dan merupakan sebahagian daripada proses naik taraf.

6. Ringkasan

  • LS7 memperkenalkan pembersihan menyeluruh bagi penamaan jadual respons dan nama medan
  • Ini ialah perubahan struktur bahagian belakang yang utama untuk LS7
  • Pengujian dalam persekitaran yang berasingan amat disyorkan
  • getFieldName() membantu pratonton penamaan akan datang
  • Kemas kini kod tersuai jika diperlukan
  • Laporkan isu lebih awal untuk membantu menstabilkan keluaran akhir