x

Glavna poglavja

  1. LimeSurvey Cloud proti LimeSurvey CE
  2. Vodnik za hitri začetek - LimeSurvey 3.0+
  3. Namestitev - LimeSurvey CE
  4. Kako oblikovati dobro anketo (vodnik)
  5. Začetek
  6. Upravljanje LimeSurvey
  7. Ankete – uvod
  8. Nastavitve ankete
  9. Anketni meni
  10. Struktura ankete
  11. Vprašanja - uvod
  12. Skupine vprašanj – uvod
  13. Ankete - upravljanje
  14. Možnosti orodne vrstice ankete
  15. Večjezična anketa
  16. ExpressionScript Engine – Hitri vodnik
  17. Nekategorizirane in napredne funkcije
  18. Splošni FAQ
  19. Odpravljanje težav
  20. Rešitve
  21. Licenca
  22. Dnevnik sprememb različice
  23. Vtičniki - napredno
 Actions

Prenova imen polj v LimeSurvey 7

From LimeSurvey Manual

Ta stran je morda strojno prevedena in lahko vsebuje napake. Prikaži angleški izvirnik · Izboljšaj ta prevod
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Prenova imen polj in tabel odzivov - LimeSurvey 7

LimeSurvey 7 prinaša obsežno prenovo načina, kako se ustvarjajo tabele odzivov in imena polj. Posodobitev posodablja dolgoletne interne konvencije poimenovanja in ustvarja predvidljivejšo ter robustnejšo osnovo za vtičnike, integracije in prihodnji razvoj.

Ta stran se osredotoča na prenovo tabel odzivov in imen polj.

Ker gre za strukturno spremembo, bo morda treba posodobiti vse prilagojene rešitve, ki se zanašajo na staro poimenovanje. Na tej strani je pojasnjeno, kaj se spreminja, kako varno testirati in kako se pripraviti na nadgradnjo.

1. Kaj se spreminja

1.1 Nova imena tabel

LimeSurvey zdaj uporablja enotno shemo poimenovanja za tabele, povezane z odzivi.

Staro ime tabele Novo ime tabele
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>

Vse poizvedbe SQL, integracije ali vtičniki, ki se sklicujejo na te tabele, bodo morda potrebovali prilagoditve.

1.2 Nova struktura imen polj

Imena polj zdaj sledijo predvidljivi in enotni obliki. Primeri:

  • Q<questionId> - korensko vprašanje
  • Q<questionId>_S<subquestionId> - podvprašanja
  • Q<questionId>_C<suffix> - komentar ali druga polja
  • polja za razvrščanje: Q<questionId>_S<subquestionId> - elementi za razvrščanje so zdaj podvprašanja (glejte 1.3)
  • polja za čas: na ravni vprašanja ali skupine, odvisno od konteksta

To nadomešča starejše poimenovanje, ki temelji na sidXgidXqid.

1.3 Vprašanja z razvrščanjem

Vprašanja z razvrščanjem zdaj delujejo enako kot druge vrste vprašanj, ki temeljijo na podvprašanjih:

  • Elementi so podvprašanja. Elementi za razvrščanje so shranjeni kot podvprašanja (vrsta R), ne kot možni odgovori.
  • Imena polj uporabljajo standardno obliko podvprašanj Q<questionId>_S<subquestionId> (eno za vsak razvrščeni element).
  • Odzivi so shranjeni v enem samem stolpcu JSON Q<questionId>, kot urejeno polje kod elementov, kjer položaj = uvrstitev. Primer: ["3", "1", "2"]

2. Zakaj je to pomembno

Ta prenova obravnava vzorce poimenovanja, ki so bili formalno določeni in uporabljani več let, ter jih vzpostavlja v enotno in robustno strukturo, na kateri lahko gradimo v prihodnje.

Take strukturne spremembe so redko preproste. Posegajo v dele sistema, na katere se zanaša veliko vtičnikov in integracij, zato jih zaradi kompleksnosti pogosto odlagamo. Vendar sta doslednost in predvidljivost pomembni za dolgoročno stabilnost.

Z reševanjem tega zdaj naredimo LimeSurvey čistejši in lažje razširljiv, čeprav je sprememba na površini večinoma nevidna.

3. Kako si ogledati predogled novih imen polj

Če želite videti, kako se bo posamezno obstoječe ime polja preslikalo v novo strukturo LS7, lahko izvedete naslednje korake:

  1. Naredite varnostno kopijo zbirke podatkov, saj so spremembe nepovratne in vam bo v primeru napake prav prišla zbirka podatkov pred spremembo za obnovitev
  2. Preklopite na vejo develop-major:
    git checkout develop-major
    ali klonirajte/prenesite projekt neposredno s te veje na https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Naložite skrbniško stran, da se sproži skripta za spremembo
  4. Sporočite morebitne napake, ki jih opazite med izvajanjem skripte za spremembo
  5. Preučite nova imena tabel in polj
  6. Preizkusite svoje vtičnike/teme in odpravite napake, povezane z imeni tabel in/ali polj

Funkcija, ki se uporablja za pretvorbo starih imen polj v nova, je naslednja:

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

Parametri

  • $tableName - izvirno ime tabele
  • $fieldName - izvirno ime polja
  • $questions - korensko vprašanje in njegova podvprašanja
  • $sid - ID ankete
  • $gid - ID skupine
  • $cd - ali velja logika oblikovalca pogojev

Rezultat

Funkcija vrne novo ime polja LS7 za to polje odziva.

4. Kako varno preizkusiti spremembe

Zelo priporočamo, da LS7 preizkusite v namenskem okolju, preden nadgradite produkcijske sisteme.

4.1 Namestitev LS7 v ločeno okolje

Najnovejši LS7 prenesite z:

https://community.limesurvey.org

Namestite ga ločeno od svoje trenutne namestitve.

4.2 Uvozite svoja obstoječa sredstva

Testirajte z naslednjim:

  • ankete
  • teme anket
  • teme skrbnika
  • teme vprašanj
  • vtičniki
  • lasten JavaScript
  • vse lastne integracije, ki ste jih razvili

Preverite, ali vse deluje, kot je pričakovano, z novim poimenovanjem tabel in imen polj. Posodobite vso kodo, ki se zanaša na staro poimenovanje.

4.3 Kako sprožiti migracijo?

Če želite v testni namestitvi pogledati predogled migracijske logike:

  1. Naredite varnostno kopijo svoje zbirke podatkov.
  2. Namestite različico LS7.
  3. Naložite katero koli skrbniško stran, da se zažene migracijska skripta.
  4. Preglejte spremembe tabel in imen polj.
  5. Preizkusite aplikacijo.
  6. Po potrebi posodobite lastno kodo.

4.4 Prijava težav

Hvala, da testirate že v zgodnji fazi. Če opazite kaj nenavadnega v jedru sistema, nam to prijavite, da lahko težavo čim prej odpravimo.

https://bugs.limesurvey.org

5. Kaj bo morda treba posodobiti

Naslednje bo morda treba prilagoditi:

  • vtičniki, ki se sklicujejo na stara imena polj ali tabel
  • vse lastne integracije, ki ste jih razvili
  • JavaScript, ki uporablja izbirnike na podlagi imen polj
  • lastne teme, ki komunicirajo z identifikatorji, povezanimi z odzivi
  • integracije, ki so odvisne od prejšnje sheme poimenovanja
  • uvoz starih izvozov, kot so ankete, teme, teme vprašanj itd.

To je pričakovano in del postopka nadgradnje.

6. Povzetek

  • LS7 uvaja popolno ureditev poimenovanja tabel odzivov in imen polj
  • To je glavna strukturna sprememba zaledja v LS7
  • Testiranje v ločenem okolju je zelo priporočljivo
  • getFieldName() pomaga pri predogledu prihodnjega poimenovanja
  • Kjer je treba, posodobite lastno kodo
  • Težave prijavite čim prej, da pomagate stabilizirati končno izdajo