x

Hovedkapitler

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Hurtigstartveiledning - LimeSurvey 3.0+
  3. Installasjon - LimeSurvey CE
  4. Hvordan lage en god undersøkelse (veiledning)
  5. Komme i gang
  6. Administrere LimeSurvey
  7. Undersøkelser - introduksjon
  8. Innstillinger for undersøkelse
  9. Meny for undersøkelse
  10. Undersøkelsesstruktur
  11. Spørsmål - introduksjon
  12. Spørsmålsgrupper - introduksjon
  13. Undersøkelser - administrasjon
  14. Verktøylinjen for undersøkelsen
  15. Flerspråklig undersøkelse
  16. ExpressionScript-motor – Hurtigstartguide
  17. Ukategoriserte og avanserte funksjoner
  18. Vanlige spørsmål (generelt)
  19. Feilsøking
  20. Løsninger og omveier
  21. Lisens
  22. Versjonsendringer
  23. Tillegg
 Actions

LimeSurvey 7: Refaktorering av feltnavn

From LimeSurvey Manual

Denne siden kan være maskinoversatt og kan inneholde feil. Vis den engelske originalen · Forbedre denne oversettelsen
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refaktorering av feltnavn og svartabeller - LimeSurvey 7

LimeSurvey 7 introduserer en omfattende opprydding i hvordan svartabeller og feltnavn genereres. Oppdateringen moderniserer gamle interne navnekonvensjoner og skaper et mer forutsigbart og robust fundament for plugins, integrasjoner og fremtidig utvikling.

Denne siden handler om refaktoreringen av svartabeller og feltnavn.

Fordi dette er en strukturell endring, kan egenutviklet arbeid som er avhengig av gammel navngiving, kreve oppdateringer. Denne siden forklarer hva som endres, hvordan du kan teste på en trygg måte, og hvordan du forbereder deg på oppgraderingen.

1. Hva som endres

1.1 Nye tabellnavn

LimeSurvey bruker nå et enhetlig navneskjema for tabeller knyttet til besvarelser.

Gammelt tabellnavn Nytt tabellnavn
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>

SQL-spørringer, integrasjoner eller plugins som refererer til disse tabellene, kan kreve justeringer.

1.2 Ny struktur for feltnavn

Feltnavn følger nå et forutsigbart og enhetlig format. Eksempler:

  • Q<questionId> - hovedspørsmål
  • Q<questionId>_S<subquestionId> - underspørsmål
  • Q<questionId>_C<suffix> - kommentar eller andre felt
  • rangeringsfelt: Q<questionId>_S<subquestionId> - rangeringselementer er nå underspørsmål (se 1.3)
  • tidsbruksfelt: på spørsmålsnivå eller gruppenivå, avhengig av sammenhengen

Dette erstatter den gamle navngivingen basert på sidXgidXqid.

1.3 Rangeringsspørsmål

Rangeringsspørsmål fungerer nå som andre spørsmålstyper basert på underspørsmål:

  • Elementene er underspørsmål. Elementer som kan rangeres, lagres som underspørsmål (type R), ikke som svaralternativer.
  • Feltnavn bruker standardformatet for underspørsmål Q<questionId>_S<subquestionId> (ett per rangerte element).
  • Besvarelser lagres i én enkelt JSON-kolonne Q<questionId>, som en ordnet matrise med elementkoder der posisjon = rangering. Eksempel: ["3", "1", "2"]

2. Hvorfor dette er viktig

Denne oppryddingen tar tak i navnemønstre som ble formelt definert og brukt i mange år, og gir dem en enhetlig og robust struktur vi kan bygge videre på i fremtiden.

Strukturelle endringer som dette er sjelden enkle. De berører deler av systemet som mange plugins og integrasjoner er avhengige av, og blir derfor ofte utsatt på grunn av kompleksiteten. Men å holde ting enhetlig og forutsigbart er viktig for stabiliteten på lang sikt.

Ved å ta tak i dette nå gjør vi LimeSurvey ryddigere og enklere å utvide, selv om endringen for det meste er usynlig på overflaten.

3. Slik forhåndsviser du nye feltnavn

For å se hvordan et eksisterende feltnavn blir koblet til den nye LS7-strukturen, kan du gjøre følgende:

  1. Ta en sikkerhetskopi av databasen. Endringene kan ikke angres, og hvis noe går galt, er det nyttig å ha databasen slik den var før endringen, slik at du kan gjenopprette den.
  2. Sjekk ut grenen develop-major:
    git checkout develop-major
    eller klon/last ned prosjektet direkte fra denne grenen på https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Last inn en adminside for å utløse endringsskriptet.
  4. Rapporter eventuelle feil du får under kjøringen av endringsskriptet.
  5. Studer de nye tabellnavnene og feltnavnene.
  6. Test pluginene/temaene dine og rett feil knyttet til tabellnavn og/eller feltnavn.

Funksjonen som brukes til å konvertere gamle feltnavn til nye feltnavn, er følgende:

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

Parametere

  • $tableName - opprinnelig tabellnavn
  • $fieldName - opprinnelig feltnavn
  • $questions - hovedspørsmål og tilhørende underspørsmål
  • $sid - ID for undersøkelsen
  • $gid - ID for gruppen
  • $cd - om logikk for betingelsesdesigneren gjelder

Resultat

Funksjonen returnerer det nye LS7-feltnavnet for det aktuelle besvarelsesfeltet.

4. Slik tester du endringene trygt

Det anbefales på det sterkeste å teste LS7 i et dedikert miljø før du oppgraderer produksjonssystemer.

4.1 Installer LS7 i et eget miljø

Last ned den nyeste LS7 fra:

https://community.limesurvey.org

Installer den separat fra din nåværende installasjon.

4.2 Importer dine eksisterende ressurser

Test med:

  • undersøkelser
  • undersøkelsestema
  • admintema
  • spørsmålstema
  • plugins
  • egendefinert JavaScript
  • eventuelle egenutviklede integrasjoner

Kontroller at alt fungerer som forventet med de nye navnene på tabeller og feltnavn. Oppdater all kode som er avhengig av de gamle navnene.

4.3 Hvordan utløse migreringen?

Hvis du vil forhåndsvise migreringslogikken i testinstallasjonen din:

  1. Ta sikkerhetskopi av databasen.
  2. Installer LS7-versjonen.
  3. Last inn en vilkårlig administrasjonsside for å kjøre migreringsskriptet.
  4. Gå gjennom endringene i tabell- og feltnavn.
  5. Test applikasjonen.
  6. Oppdater egendefinert kode om nødvendig.

4.4 Rapporter problemer

Takk for at du tester dette på et tidlig tidspunkt. Hvis du oppdager noe som ser feil ut i kjernen, bør du rapportere det slik at vi kan rette det så raskt som mulig.

https://bugs.limesurvey.org

5. Hva som kan kreve oppdateringer

Følgende kan trenge justeringer:

  • plugins som refererer til gamle feltnavn eller tabellnavn
  • alle egendefinerte integrasjoner du har bygget
  • JavaScript som bruker feltnavnbaserte selektorer
  • egendefinerte temaer som samhandler med identifikatorer knyttet til besvarelser
  • integrasjoner som er avhengige av det forrige navneskjemaet
  • import av gamle eksporter, for eksempel undersøkelser, temaer, Spørsmålstema osv.

Dette er forventet og en del av oppgraderingsprosessen.

6. Sammendrag

  • LS7 innfører en fullstendig opprydding i navngivingen av svartabeller og feltnavn
  • Dette er den viktigste strukturelle endringen i bakenden for LS7
  • Det anbefales på det sterkeste å teste i et separat miljø
  • getFieldName() hjelper deg med å forhåndsvise fremtidig navngiving
  • Oppdater egendefinert kode der det er nødvendig
  • Rapporter problemer tidlig for å bidra til å stabilisere den endelige versjonen