x

Hlavné kapitoly

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Rýchly sprievodca - LimeSurvey 3.0+
  3. Inštalácia - LimeSurvey CE
  4. Ako vytvoriť dobrý prieskum (príručka)
  5. Začíname
  6. Správa LimeSurvey
  7. Prieskumy - úvod
  8. Nastavenia prieskumu
  9. Menu prieskumu
  10. Štruktúra prieskumu
  11. Otázky – úvod
  12. Skupiny otázok - úvod
  13. Prieskumy - správa
  14. Možnosti panela nástrojov prieskumu
  15. Viacjazyčný prieskum
  16. ExpressionScript Engine - Príručka rýchleho štartu
  17. Nezaradené a pokročilé funkcie
  18. Všeobecné časté otázky
  19. Riešenie problémov
  20. Riešenia a obchádzky
  21. Licencia
  22. Záznam zmien verzií
  23. Doplnky
 Actions

Refaktorizácia názvov polí v LimeSurvey 7

From LimeSurvey Manual

Táto stránka mohla byť preložená strojovo a môže obsahovať chyby. Zobraziť anglický originál · Vylepšiť tento preklad
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refaktorizácia názvov polí a tabuliek odpovedí - LimeSurvey 7

LimeSurvey 7 prináša rozsiahle vyčistenie spôsobu, akým sa generujú tabuľky odpovedí a názvy polí. Táto aktualizácia modernizuje dlhoročné interné konvencie pomenovania a vytvára predvídateľnejší a robustnejší základ pre pluginy, integrácie a budúci vývoj.

Táto stránka sa zameriava na refaktorizáciu tabuliek odpovedí a názvov polí.

Keďže ide o štrukturálnu zmenu, každé vlastné riešenie, ktoré sa spolieha na staré pomenovanie, môže vyžadovať úpravy. Táto stránka vysvetľuje, čo sa mení, ako bezpečne testovať a ako sa pripraviť na aktualizáciu.

1. Čo sa mení

1.1 Nové názvy tabuliek

LimeSurvey teraz používa jednotnú schému pomenovania tabuliek súvisiacich s odpoveďami.

Starý názov tabuľky Nový názov tabuľky
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>

Všetky SQL dotazy, integrácie alebo pluginy, ktoré odkazujú na tieto tabuľky, môžu vyžadovať úpravy.

1.2 Nová štruktúra názvov polí

Názvy polí teraz majú predvídateľný a jednotný formát. Príklady:

  • Q<questionId> - hlavná otázka
  • Q<questionId>_S<subquestionId> - podotázky
  • Q<questionId>_C<suffix> - komentár alebo iné polia
  • polia poradia: Q<questionId>_S<subquestionId> - položky poradia sú teraz podotázky (pozri 1.3)
  • polia časovania: na úrovni otázky alebo skupiny podľa kontextu

Toto nahrádza pôvodné pomenovanie založené na sidXgidXqid.

1.3 Otázky typu poradie

Otázky typu poradie teraz fungujú ako ostatné typy otázok založené na podotázkach:

  • Položky sú podotázky. Položky na zoradenie sú uložené ako podotázky (typ R), nie ako možnosti odpovede.
  • Názvy polí používajú štandardný formát podotázok Q<questionId>_S<subquestionId> (jeden pre každú zoradenú položku).
  • Odpovede sa ukladajú do jedného stĺpca JSON Q<questionId> ako usporiadané pole kódov položiek, kde pozícia = poradie. Príklad: ["3", "1", "2"]

2. Prečo je to dôležité

Táto úprava rieši vzory pomenovania, ktoré boli formálne definované a používané mnoho rokov, a prináša ich do jednotnej a robustnej štruktúry, na ktorej môžeme stavať v budúcnosti.

Štrukturálne zmeny ako táto sú len zriedka jednoduché. Zasahujú časti systému, na ktoré sa spolieha mnoho pluginov a integrácií, a preto sa kvôli svojej zložitosti často odkladajú. Zachovanie jednotnosti a predvídateľnosti je však dôležité pre dlhodobú stabilitu.

Tým, že sa tomu venujeme už teraz, robíme LimeSurvey čistejším a ľahšie rozšíriteľným, aj keď je zmena navonok väčšinou neviditeľná.

3. Ako zobraziť náhľad nových názvov polí

Ak chcete zistiť, ako sa ktorýkoľvek existujúci názov poľa premietne do novej štruktúry LS7, môžete postupovať takto:

  1. Vytvorte zálohu databázy, pretože zmeny nie sú vratné a ak sa niečo pokazí, bude užitočné mať databázu spred zmeny na obnovenie
  2. Prepnite sa na vetvu develop-major:
    git checkout develop-major
    alebo naklonujte/stiahnite projekt priamo z tejto vetvy na https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Načítajte stránku administrácie, čím sa spustí skript zmeny
  4. Nahláste každú chybu, ktorú dostanete počas vykonávania skriptu zmeny
  5. Preštudujte si nové názvy tabuliek a polí
  6. Otestujte svoje pluginy/témy a opravte chyby súvisiace s názvami tabuliek a/alebo polí

Funkcia používaná na prevod starých názvov polí na nové názvy polí je nasledovná:

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

Parametre

  • $tableName - pôvodný názov tabuľky
  • $fieldName - pôvodný názov poľa
  • $questions - hlavná otázka a jej podotázky
  • $sid - ID prieskumu
  • $gid - ID skupiny
  • $cd - či sa uplatňuje logika Návrhára podmienok

Výsledok

Funkcia vráti nový názov poľa LS7 pre dané pole odpovede.

4. Ako bezpečne otestovať zmeny

Dôrazne odporúčame otestovať LS7 vo vyhradenom prostredí pred aktualizáciou produkčných systémov.

4.1 Nainštalujte LS7 v samostatnom prostredí

Stiahnite si najnovšiu verziu LS7 z:

https://community.limesurvey.org

Nainštalujte ju oddelene od vášho súčasného prostredia.

4.2 Importujte svoje existujúce prvky

Otestujte pomocou:

  • prieskumy
  • motívy prieskumu
  • témy admin rozhrania
  • témy otázok
  • pluginy
  • vlastný JavaScript
  • všetky vlastné integrácie, ktoré ste vytvorili

Skontrolujte, či všetko funguje podľa očakávaní s novým pomenovaním tabuliek a názvov polí. Aktualizujte každý kód, ktorý sa spolieha na staré pomenovanie.

4.3 Ako spustiť migráciu?

Ak si chcete pozrieť náhľad logiky migrácie vo svojej testovacej inštalácii:

  1. Zálohujte svoju databázu.
  2. Nainštalujte verziu LS7.
  3. Načítajte ľubovoľnú administračnú stránku, aby sa spustil skript migrácie.
  4. Skontrolujte zmeny v názvoch tabuliek a polí.
  5. Otestujte aplikáciu.
  6. V prípade potreby aktualizujte vlastný kód.

4.4 Nahlásenie problémov

Ďakujeme, že testujete už v tejto early fáze. Ak si všimnete niečo, čo sa v jadre systému javí ako nesprávne, nahláste to, aby sme to mohli čo najskôr opraviť.

https://bugs.limesurvey.org

5. Čo môže vyžadovať aktualizáciu

Úpravy môžu vyžadovať nasledujúce položky:

  • pluginy, ktoré odkazujú na staré názvy polí alebo tabuliek
  • všetky vlastné integrácie, ktoré ste vytvorili
  • JavaScript používajúci selektory založené na názvoch polí
  • vlastné témy, ktoré pracujú s identifikátormi súvisiacimi s odpoveďami
  • integrácie závislé od predchádzajúcej schémy pomenovania
  • import starých exportov, ako sú prieskumy, témy, témy otázok atď.

Je to očakávané a je to súčasť procesu aktualizácie.

6. Súhrn

  • LS7 prináša kompletné vyčistenie pomenovania tabuliek odpovedí a názvov polí
  • Ide o hlavnú štrukturálnu zmenu backendu v LS7
  • Testovanie v samostatnom prostredí sa dôrazne odporúča
  • getFieldName() pomáha zobraziť náhľad budúceho pomenovania
  • V prípade potreby aktualizujte vlastný kód
  • Nahláste problémy čo najskôr, pomôžete tak stabilizovať finálne vydanie