x

Hoofdstukken

  1. LimeSurvey Cloud versus LimeSurvey CE
  2. Beknopte handleiding (voor versie 3.0+)
  3. Installatie - LimeSurvey CE
  4. Hoe maak je een goede enquête
  5. Aan de slag
  6. Beheren van LimeSurvey
  7. Enquêtes - introductie
  8. Enquête instellingen
  9. Enquête menu
  10. Enquête structuur
  11. Vragen - introductie
  12. Vraaggroepen - introductie
  13. Enquêtes - beheer
  14. Enquête taakbalk opties
  15. Meertalige enquête
  16. ExpressionScript Engine - Snelstartgids
  17. Overige en geavanceerde mogelijkheden
  18. Algemene vragen
  19. Problemen oplossen
  20. Tijdelijke oplossingen
  21. Licentie
  22. Wijzigingen in versie
  23. Plugins - geavanceerd
 Actions

LimeSurvey 7 refactoring van veldnamen

From LimeSurvey Manual

Deze pagina is mogelijk machinaal vertaald en kan fouten bevatten. Engelse origineel tonen · Deze vertaling verbeteren
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refactoring van veldnamen en antwoordtabellen - LimeSurvey 7

LimeSurvey 7 introduceert een grote opschoning van de manier waarop antwoordtabellen en veldnamen worden gegenereerd. Deze update moderniseert al lang bestaande interne naamconventies en zorgt voor een voorspelbaardere en robuustere basis voor plugins, integraties en toekomstige ontwikkeling.

Deze pagina richt zich op de refactoring van antwoordtabellen en veldnamen.

Omdat dit een structurele wijziging is, kan aangepast werk dat afhankelijk is van de oude namen aanpassingen vereisen. Deze pagina legt uit wat er verandert, hoe u veilig kunt testen en hoe u zich op de upgrade kunt voorbereiden.

1. Wat verandert er

1.1 Nieuwe tabelnamen

LimeSurvey gebruikt nu een consistent naamgevingsschema voor tabellen die met responsen te maken hebben.

Oude tabelnaam Nieuwe tabelnaam
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-query's, integraties of plugins die naar deze tabellen verwijzen, kunnen aanpassingen vereisen.

1.2 Nieuwe structuur van veldnamen

Veldnamen volgen nu een voorspelbaar en consistent formaat. Voorbeelden:

  • Q<questionId> - hoofdvraag
  • Q<questionId>_S<subquestionId> - subvragen
  • Q<questionId>_C<suffix> - opmerking of andere velden
  • rangschikvelden: Q<questionId>_S<subquestionId> - items om te rangschikken zijn nu subvragen (zie 1.3)
  • tijdmetingvelden: op vraagniveau of groepsniveau, afhankelijk van de context

Dit vervangt de oude naamgeving op basis van sidXgidXqid.

1.3 Rangschikvragen

Rangschikvragen werken nu net als andere vraagtypen die op subvragen zijn gebaseerd:

  • Items zijn subvragen. Items om te rangschikken worden opgeslagen als subvragen (type R), niet als antwoordopties.
  • Veldnamen gebruiken het standaardformaat voor subvragen Q<questionId>_S<subquestionId> (één per gerangschikt item).
  • Responsen worden opgeslagen in één JSON-kolom Q<questionId>, als een geordende array van itemcodes waarbij positie = rang. Voorbeeld: ["3", "1", "2"]

2. Waarom dit belangrijk is

Deze opschoning pakt naamgevingspatronen aan die jarenlang formeel zijn gedefinieerd en gebruikt, en brengt ze in een consistente en robuuste structuur waarop we in de toekomst kunnen voortbouwen.

Structurele wijzigingen zoals deze zijn zelden eenvoudig. Ze raken onderdelen van het systeem waar veel plugins en integraties van afhankelijk zijn, en worden daarom vanwege hun complexiteit vaak uitgesteld. Maar consistentie en voorspelbaarheid zijn belangrijk voor stabiliteit op lange termijn.

Door dit nu aan te pakken, maken we LimeSurvey overzichtelijker en gemakkelijker uit te breiden, ook al is de wijziging aan de oppervlakte grotendeels onzichtbaar.

3. Nieuwe veldnamen vooraf bekijken

Om te zien hoe een bestaande veldnaam wordt omgezet naar de nieuwe LS7-structuur, kunt u de volgende stappen uitvoeren:

  1. Maak een back-up van de database, aangezien de wijzigingen niet omkeerbaar zijn en het handig is om de database van vóór de wijziging te hebben om te herstellen als er iets misgaat
  2. Check de branch develop-major uit:
    git checkout develop-major
    of kloon/download het project rechtstreeks op deze branch via https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Laad een beheerpagina om het wijzigingsscript te starten
  4. Meld eventuele fouten die u tijdens de uitvoering van het wijzigingsscript tegenkomt
  5. Bestudeer de nieuwe tabelnamen en veldnamen
  6. Test uw plugins/thema's en los fouten op die met tabelnamen en/of veldnamen te maken hebben

De functie die wordt gebruikt om oude veldnamen om te zetten naar nieuwe veldnamen is de volgende:

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

Parameters

  • $tableName - oorspronkelijke tabelnaam
  • $fieldName - oorspronkelijke veldnaam
  • $questions - hoofdvraag en bijbehorende subvragen
  • $sid - Enquête-id
  • $gid - Groep-id
  • $cd - of de logica van de Conditie-editor van toepassing is

Resultaat

De functie geeft de nieuwe LS7-veldnaam voor dat responsveld terug.

4. Zo test u de wijzigingen veilig

Het wordt sterk aanbevolen om LS7 in een aparte omgeving te testen voordat u productiesystemen upgradet.

4.1 LS7 in een aparte omgeving installeren

Download de nieuwste LS7 via:

https://community.limesurvey.org

Installeer deze los van uw huidige installatie.

4.2 Uw bestaande onderdelen importeren

Test met:

  • enquêtes
  • Enquête-thema's
  • Beheer-thema's
  • Vraagthema's
  • plugins
  • aangepaste JavaScript
  • alle aangepaste integraties die u hebt gebouwd

Controleer of alles werkt zoals verwacht met de nieuwe naamgeving van tabellen en veldnamen. Pas alle code aan die afhankelijk is van de oude naamgeving.

4.3 Hoe start u de migratie?

Als u een voorbeeld van de migratielogica wilt bekijken in uw testinstallatie:

  1. Maak een back-up van uw database.
  2. Installeer de LS7-versie.
  3. Open een willekeurige beheerpagina om het migratiescript uit te voeren.
  4. Controleer de wijzigingen in tabellen en veldnamen.
  5. Test de applicatie.
  6. Pas indien nodig aangepaste code aan.

4.4 Problemen melden

Bedankt dat u dit al vroeg test. Als u iets opmerkt in de kern dat niet klopt, meld het dan zodat we het zo snel mogelijk kunnen oplossen.

https://bugs.limesurvey.org

5. Wat mogelijk aanpassingen vereist

Het volgende kan aanpassingen vereisen:

  • plugins die verwijzen naar oude veldnamen of tabelnamen
  • alle aangepaste integraties die u hebt gebouwd
  • JavaScript dat selectors op basis van veldnamen gebruikt
  • aangepaste thema's die communiceren met identifiers die met responsen te maken hebben
  • integraties die afhankelijk zijn van het vorige naamgevingsschema
  • het importeren van oude exports, zoals enquêtes, thema's, vraagthema's enz.

Dit is te verwachten en maakt deel uit van het upgradeproces.

6. Samenvatting

  • LS7 voert een complete opschoning door van de naamgeving van antwoordtabellen en veldnamen
  • Dit is de belangrijkste structurele backend-wijziging voor LS7
  • Testen in een aparte omgeving wordt sterk aanbevolen
  • getFieldName() helpt om de toekomstige naamgeving te bekijken
  • Pas aangepaste code aan waar nodig
  • Meld problemen vroeg om de definitieve release te helpen stabiliseren