x

Glavna poglavlja

  1. LimeSurvey Cloud u usporedbi s LimeSurvey CE
  2. Vodič za brzi početak - LimeSurvey 3.0+
  3. Instalacija - LimeSurvey CE
  4. Kako izraditi dobar upitnik (vodič)
  5. Početak rada
  6. Administriranje LimeSurveya
  7. Upitnici - uvod
  8. Postavke upitnika
  9. Izbornik upitnika
  10. Struktura upitnika
  11. Pitanja - uvod
  12. Skupine pitanja - uvod
  13. Upitnici - upravljanje
  14. Opcije alatne trake upitnika
  15. Višejezični upitnik
  16. ExpressionScript Engine - Vodič za brzi početak
  17. Nekategorizirane i napredne značajke
  18. Opći FAQ
  19. Rješavanje problema
  20. Zaobilazna rješenja
  21. Licenca
  22. Popis izmjena po verzijama
  23. Dodaci
 Actions

Refaktoriranje naziva polja u LimeSurvey 7

From LimeSurvey Manual

Ova je stranica možda strojno prevedena i može sadržavati pogreške. Prikaži engleski izvornik · Poboljšaj ovaj prijevod
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refaktoriranje naziva polja i tablica odgovora - LimeSurvey 7

LimeSurvey 7 donosi veliko čišćenje načina na koji se generiraju tablice odgovora i nazivi polja. Ovo ažuriranje moderinizira dugogodišnje interne konvencije imenovanja i stvara predvidljiviju i robusniju osnovu za dodatke, integracije i budući razvoj.

Ova stranica posvećena je refaktoriranju tablica odgovora i naziva polja.

Budući da je riječ o strukturnoj promjeni, svaki prilagođeni rad koji se oslanja na stara imena možda će zahtijevati ažuriranje. Ova stranica objašnjava što se mijenja, kako sigurno testirati i kako se pripremiti za nadogradnju.

1. Što se mijenja

1.1 Novi nazivi tablica

LimeSurvey sada koristi dosljednu shemu imenovanja za tablice povezane s odgovorima.

Stari naziv tablice Novi naziv tablice
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>

Svi SQL upiti, integracije ili dodaci koji se pozivaju na ove tablice možda će zahtijevati prilagodbu.

1.2 Nova struktura naziva polja

Nazivi polja sada slijede predvidljiv i dosljedan format. Primjeri:

  • Q<questionId> - korijensko pitanje
  • Q<questionId>_S<subquestionId> - potpitanja
  • Q<questionId>_C<suffix> - komentar ili ostala polja
  • polja rangiranja: Q<questionId>_S<subquestionId> - stavke rangiranja sada su potpitanja (vidi 1.3)
  • polja vremena: na razini pitanja ili grupe, ovisno o kontekstu

Ovo zamjenjuje stariji način imenovanja temeljen na sidXgidXqid.

1.3 Pitanja rangiranja

Pitanja rangiranja sada rade kao i ostali tipovi pitanja temeljeni na potpitanjima:

  • Stavke su potpitanja. Stavke koje se rangiraju pohranjuju se kao potpitanja (tip R), a ne kao opcije odgovora.
  • Nazivi polja koriste standardni format potpitanja Q<questionId>_S<subquestionId> (jedan po rangiranoj stavci).
  • Odgovori se pohranjuju u jedan JSON stupac Q<questionId>, kao poredani niz kodova stavki gdje pozicija = rang. Primjer: ["3", "1", "2"]

2. Zašto je ovo važno

Ovo čišćenje rješava obrasce imenovanja koji su formalno definirani i korišteni tijekom mnogo godina te ih dovodi u dosljednu i robusnu strukturu na kojoj možemo graditi u budućnosti.

Ovakve strukturne promjene rijetko su jednostavne. Dotiču dijelove sustava na koje se oslanjaju mnogi dodaci i integracije, zbog čega se zbog složenosti često odgađaju. No dosljednost i predvidljivost važne su za dugoročnu stabilnost.

Rješavanjem ovoga sada LimeSurvey činimo urednijim i lakšim za proširivanje, iako je promjena na površini uglavnom nevidljiva.

3. Kako pregledati nove nazive polja

Da biste vidjeli kako će se bilo koji postojeći naziv polja preslikati u novu strukturu LS7, možete slijediti ove korake:

  1. Napravite sigurnosnu kopiju baze podataka jer se promjene ne mogu poništiti, a ako nešto pođe po zlu, bit će korisno imati bazu podataka prije promjene za oporavak
  2. Prebacite se na granu develop-major:
    git checkout develop-major
    ili klonirajte/preuzmite projekt izravno s ove grane na https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Učitajte administratorsku stranicu kako biste pokrenuli skriptu za promjenu
  4. Prijavite sve pogreške koje se pojave tijekom izvođenja skripte za promjenu
  5. Proučite nove nazive tablica i polja
  6. Testirajte svoje dodatke/teme i ispravite pogreške povezane s nazivima tablica i/ili polja

Funkcija koja se koristi za pretvaranje starih naziva polja u nove je sljedeća:

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

Parametri

  • $tableName - izvorni naziv tablice
  • $fieldName - izvorni naziv polja
  • $questions - korijensko pitanje i njegova potpitanja
  • $sid - ID upitnika
  • $gid - ID skupine
  • $cd - primjenjuje li se logika dizajnera uvjeta

Rezultat

Funkcija vraća novi naziv polja LS7 za to polje odgovora.

4. Kako sigurno testirati promjene

Toplo se preporučuje testirati LS7 u zasebnom okruženju prije nadogradnje produkcijskih sustava.

4.1 Instalirajte LS7 u zasebno okruženje

Preuzmite najnoviji LS7 s:

https://community.limesurvey.org

Instalirajte ga odvojeno od svoje trenutne instalacije.

4.2 Uvezite svoje postojeće sadržaje

Testirajte pomoću:

  • upitnika
  • tema upitnika
  • tema administratora
  • tema pitanja
  • dodataka
  • prilagođenog JavaScripta
  • svih prilagođenih integracija koje ste izradili

Provjerite radi li sve prema očekivanjima s novim nazivima tablica i polja. Ažurirajte sav kôd koji se oslanja na stare nazive.

4.3 Kako pokrenuti migraciju?

Ako želite pregledati logiku migracije u svojoj testnoj instalaciji:

  1. Izradite sigurnosnu kopiju baze podataka.
  2. Instalirajte LS7 verziju.
  3. Učitajte bilo koju administratorsku stranicu kako biste pokrenuli skriptu za migraciju.
  4. Pregledajte promjene naziva tablica i polja.
  5. Testirajte aplikaciju.
  6. Po potrebi ažurirajte prilagođeni kôd.

4.4 Prijava problema

Hvala vam što ovo testirate već sada. Ako primijetite nešto u jezgri sustava što ne izgleda ispravno, prijavite to kako bismo to mogli ispraviti što je prije moguće.

https://bugs.limesurvey.org

5. Što bi moglo zahtijevati ažuriranje

Sljedeće bi moglo zahtijevati prilagodbe:

  • dodaci koji referenciraju stare nazive polja ili tablica
  • sve prilagođene integracije koje ste izradili
  • JavaScript koji koristi selektore temeljene na nazivima polja
  • prilagođene teme koje koriste identifikatore povezane s odgovorima
  • integracije koje ovise o prethodnoj shemi imenovanja
  • uvoz starih izvoza kao što su upitnik, teme, teme pitanja itd.

To je očekivano i dio procesa nadogradnje.

6. Sažetak

  • LS7 uvodi potpuno čišćenje imenovanja tablica odgovora i naziva polja
  • Ovo je glavna strukturna promjena pozadinskog sustava u LS7
  • Testiranje u zasebnom okruženju se snažno preporučuje
  • getFieldName() pomaže u pregledu budućeg imenovanja
  • Ažurirajte prilagođeni kôd gdje je potrebno
  • Probleme prijavite što ranije kako biste pomogli stabilizirati završno izdanje