x

Capitolele principale

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Ghid de pornire rapidă - LimeSurvey 3.0+
  3. Instalare - LimeSurvey CE
  4. Cum să proiectați un sondaj bun (ghid)
  5. Noțiuni de bază
  6. Administrarea LimeSurvey
  7. Sondaje - introducere
  8. Setările sondajului
  9. Meniul sondajului
  10. Structura sondajului
  11. Întrebări - introducere
  12. Grupuri de întrebări - introducere
  13. Sondaje - management
  14. Opțiunile barei de instrumente pentru sondaj
  15. Sondaj multilingv
  16. ExpressionScript Engine - Ghid de pornire rapidă
  17. Funcții neclasificate și avansate
  18. Întrebări frecvente generale
  19. Depanare
  20. Soluții alternative
  21. Licență
  22. Jurnal de modificare a versiunii
  23. Pluginuri - avansate
 Actions

Refactorizarea numelor de câmpuri în LimeSurvey 7

From LimeSurvey Manual

Este posibil ca această pagină să fi fost tradusă automat și să conțină erori. Afișează originalul în engleză · Îmbunătățește această traducere
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refactorizarea numelor de câmpuri și a tabelelor de răspunsuri - LimeSurvey 7

LimeSurvey 7 aduce o curățare majoră a modului în care sunt generate tabelele de răspunsuri și numele de câmpuri. Această actualizare modernizează convenții interne de denumire vechi și creează o bază mai previzibilă și mai robustă pentru pluginuri, integrări și dezvoltarea viitoare.

Această pagină se concentrează pe refactorizarea tabelelor de răspunsuri și a numelor de câmpuri.

Deoarece este o modificare structurală, orice lucrare personalizată care se bazează pe denumirile vechi poate necesita actualizări. Această pagină explică ce se schimbă, cum să testați în siguranță și cum să vă pregătiți pentru actualizare.

1. Ce se schimbă

1.1 Nume noi de tabele

LimeSurvey folosește acum o schemă de denumire consecventă pentru tabelele legate de răspunsuri.

Nume vechi de tabel Nume nou de tabel
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>

Orice interogări SQL, integrări sau pluginuri care fac referire la aceste tabele pot necesita ajustări.

1.2 Structura nouă a numelor de câmpuri

Numele de câmpuri urmează acum un format previzibil și consecvent. Exemple:

  • Q<questionId> - întrebarea principală
  • Q<questionId>_S<subquestionId> - subîntrebări
  • Q<questionId>_C<suffix> - comentariu sau alte câmpuri
  • câmpuri de clasificare: Q<questionId>_S<subquestionId> - elementele de clasificare sunt acum subîntrebări (vezi 1.3)
  • câmpuri de timp: la nivel de întrebare sau la nivel de grup, în funcție de context

Aceasta înlocuiește denumirea veche bazată pe sidXgidXqid.

1.3 Întrebări de clasificare

Întrebările de clasificare funcționează acum ca celelalte tipuri de întrebări bazate pe subîntrebări:

  • Elementele sunt subîntrebări. Elementele care pot fi clasificate sunt stocate ca subîntrebări (tip R), nu ca opțiuni de răspuns.
  • Numele de câmpuri folosesc formatul standard al subîntrebărilor Q<questionId>_S<subquestionId> (unul pentru fiecare element clasificat).
  • Răspunsurile sunt stocate într-o singură coloană JSON Q<questionId>, ca o matrice ordonată de coduri ale elementelor, unde poziția = rangul. Exemplu: ["3", "1", "2"]

2. De ce este important

Această curățare abordează modele de denumire care au fost definite formal și utilizate timp de mulți ani și le aduce într-o structură consecventă și robustă, pe care ne putem baza pentru viitor.

Modificările structurale de acest fel sunt rareori simple. Ele ating părți ale sistemului de care depind multe pluginuri și integrări, motiv pentru care sunt adesea amânate din cauza complexității. Dar menținerea consecvenței și a previzibilității este importantă pentru stabilitatea pe termen lung.

Abordând acest lucru acum, facem LimeSurvey mai curat și mai ușor de extins, chiar dacă modificarea este în mare parte invizibilă la suprafață.

3. Cum să previzualizați noile nume de câmpuri

Pentru a vedea cum va fi transformat orice nume de câmp existent în noua structură LS7, puteți urma pașii de mai jos:

  1. Faceți o copie de rezervă a bazei de date, deoarece modificările nu sunt reversibile, iar dacă ceva nu merge bine, va fi util să aveți baza de date de dinainte de modificare pentru a o recupera
  2. Treceți pe ramura develop-major:
    git checkout develop-major
    sau clonați/descărcați proiectul direct de pe această ramură de la https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Încărcați o pagină de administrare pentru a declanșa scriptul de modificare
  4. Raportați orice eroare apărută în timpul execuției scriptului de modificare
  5. Studiați noile nume de tabele și de câmpuri
  6. Testați pluginurile/temele dvs. și remediați erorile legate de numele tabelelor și/sau ale câmpurilor

Funcția folosită pentru a converti vechile nume de câmpuri în noile nume de câmpuri este următoarea:

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

Parametri

  • $tableName - numele original al tabelului
  • $fieldName - numele original al câmpului
  • $questions - întrebarea principală și subîntrebările ei
  • $sid - ID-ul sondajului
  • $gid - ID-ul grupului
  • $cd - dacă se aplică logica Proiectantului de stare

Rezultat

Funcția returnează noul nume de câmp LS7 pentru acel câmp de răspuns.

4. Cum să testați modificările în siguranță

Este foarte recomandat să testați LS7 într-un mediu dedicat înainte de a actualiza sistemele de producție.

4.1 Instalați LS7 într-un mediu separat

Descărcați cea mai recentă versiune LS7 de la:

https://community.limesurvey.org

Instalați-o separat de configurația dvs. actuală.

4.2 Importați resursele existente

Testați folosind:

  • sondaje
  • Teme de sondaj
  • Temele administratorului
  • Temele între
  • pluginuri
  • JavaScript personalizat
  • orice integrări personalizate pe care le-ați creat

Verificați dacă totul funcționează conform așteptărilor cu noua denumire a tabelelor și a numelor de câmpuri. Actualizați orice cod care se bazează pe denumirile vechi.

4.3 Cum se declanșează migrarea?

Dacă doriți să faceți o previzualizare a logicii de migrare în instalarea de test:

  1. Faceți o copie de rezervă a bazei de date.
  2. Instalați versiunea LS7.
  3. Încărcați orice pagină de administrare pentru a rula scriptul de migrare.
  4. Examinați modificările aduse tabelelor și numelor de câmpuri.
  5. Testați aplicația.
  6. Actualizați codul personalizat, dacă este necesar.

4.4 Raportați problemele

Vă mulțumim că testați din timp. Dacă observați ceva ce pare să nu fie în regulă în nucleul aplicației, vă rugăm să ne informați pentru a putea remedia problema cât mai curând.

https://bugs.limesurvey.org

5. Ce poate necesita actualizări

Următoarele elemente pot necesita ajustări:

  • pluginuri care fac referire la nume de câmpuri sau nume de tabele vechi
  • orice integrări personalizate pe care le-ați creat
  • JavaScript care utilizează selectori bazați pe numele câmpurilor
  • teme personalizate care interacționează cu identificatori legați de răspunsuri
  • integrări care depind de schema de denumire anterioară
  • importul unor exporturi vechi, precum sondaje, teme, Temele între etc.

Acest lucru este normal și face parte din procesul de actualizare.

6. Rezumat

  • LS7 introduce o curățare completă a denumirii tabelelor de răspunsuri și a numelor de câmpuri
  • Aceasta este principala modificare structurală de backend pentru LS7
  • Se recomandă insistent testarea într-un mediu separat
  • getFieldName() ajută la previzualizarea denumirilor viitoare
  • Actualizați codul personalizat acolo unde este necesar
  • Raportați problemele din timp pentru a ajuta la stabilizarea versiunii finale