x

Hlavní kapitoly

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Rychlý průvodce - LimeSurvey 3.0+
  3. Instalace - LimeSurvey CE
  4. Jak vytvořit dobrý průzkum (návod)
  5. Začínáme
  6. Správa LimeSurvey
  7. Průzkumy - úvod
  8. Nastavení průzkumu
  9. Menu průzkumu
  10. Struktura průzkumu
  11. Otázky - úvod
  12. Skupiny otázek - úvod
  13. Průzkumy - správa
  14. Možnosti panelu nástrojů průzkumu
  15. Vícejazyčný průzkum
  16. ExpressionScript Engine - Rychlý průvodce
  17. Nezařazené a pokročilé funkce
  18. Obecné FAQ
  19. Řešení potíží
  20. Řešení a obejití problémů
  21. Licence
  22. Záznam změn verzí
  23. Zásuvné moduly
 Actions

Refaktoring názvů polí v LimeSurvey 7

From LimeSurvey Manual

Tato stránka mohla být přeložena strojově a může obsahovat chyby. Zobrazit anglický originál · Vylepšit tento překlad
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refaktoring názvů polí a tabulek odpovědí - LimeSurvey 7

LimeSurvey 7 přináší zásadní vyčištění způsobu, jakým se generují tabulky odpovědí a názvy polí. Tato aktualizace modernizuje dlouhodobě používané interní konvence pojmenování a vytváří předvídatelnější a robustnější základ pro pluginy, integrace a budoucí vývoj.

Tato stránka se zaměřuje na refaktoring tabulek odpovědí a názvů polí.

Protože jde o strukturální změnu, může být nutné upravit veškerá vlastní řešení, která se spoléhají na původní pojmenování. Tato stránka vysvětluje, co se mění, jak bezpečně testovat a jak se připravit na upgrade.

1. Co se mění

1.1 Nové názvy tabulek

LimeSurvey nyní používá jednotné schéma pojmenování pro tabulky související s odpověďmi.

Původní název tabulky Nový název tabulky
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šechny SQL dotazy, integrace nebo pluginy odkazující na tyto tabulky mohou vyžadovat úpravy.

1.2 Nová struktura názvů polí

Názvy polí nyní mají předvídatelný a jednotný formát. Příklady:

  • Q<questionId> - kořenová otázka
  • Q<questionId>_S<subquestionId> - dílčí otázky
  • Q<questionId>_C<suffix> - komentář nebo jiná pole
  • pole pořadí: Q<questionId>_S<subquestionId> - položky pořadí jsou nyní dílčí otázky (viz 1.3)
  • pole časování: na úrovni otázky nebo skupiny podle kontextu

Tím se nahrazuje původní pojmenování založené na sidXgidXqid.

1.3 Otázky typu pořadí

Otázky typu pořadí nyní fungují jako ostatní typy otázek založené na dílčích otázkách:

  • Položky jsou dílčí otázky. Položky k seřazení jsou uloženy jako dílčí otázky (typ R), nikoli jako Možnosti odpovědí.
  • Názvy polí používají standardní formát dílčích otázek Q<questionId>_S<subquestionId> (jedno pro každou řazenou položku).
  • Odpovědi jsou uloženy v jediném sloupci JSON Q<questionId> jako uspořádané pole kódů položek, kde pozice = pořadí. Příklad: ["3", "1", "2"]

2. Proč je to důležité

To vyčištění řeší vzory pojmenování, které byly formálně definovány a používány po mnoho let, a převádí je do jednotné a robustní struktury, na které můžeme stavět i v budoucnu.

Strukturální změny, jako je tato, jsou málokdy jednoduché. Dotýkají se částí systému, na nichž závisí mnoho pluginů a integrací, a proto se kvůli své složitosti často odkládají. Jednotnost a předvídatelnost jsou však pro dlouhodobou stabilitu důležité.

Tím, že se tomu věnujeme nyní, činíme LimeSurvey přehlednějším a snáze rozšiřitelným, i když je tato změna navenek většinou neviditelná.

3. Jak zobrazit náhled nových názvů polí

Chcete-li zjistit, jak se jakýkoli existující název pole přemapuje na novou strukturu LS7, můžete provést následující kroky:

  1. Vytvořte zálohu databáze, protože změny nejsou vratné a pokud se něco pokazí, bude užitečné mít k obnovení databázi ve stavu před změnou.
  2. Přepněte se na větev develop-major:
    git checkout develop-major
    nebo naklonujte/stáhněte projekt přímo z této větve na https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Načtěte stránku administrace, čímž se spustí skript změny.
  4. Nahlaste všechny chyby, které se během provádění skriptu změny objeví.
  5. Prostudujte nové názvy tabulek a polí.
  6. Otestujte své pluginy/motivy a opravte chyby související s názvy tabulek a/nebo polí.

Funkce používaná k převodu původních názvů polí na nové názvy polí je následující:

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

Parametry

  • $tableName - původní název tabulky
  • $fieldName - původní název pole
  • $questions - kořenová otázka a její dílčí otázky
  • $sid - ID průzkumu
  • $gid - ID skupiny
  • $cd - zda se uplatňuje logika Návrháře podmínek

Výsledek

Funkce vrací nový název pole LS7 pro dané pole odpovědi.

4. Jak bezpečně otestovat změny

Před upgradem produkčních systémů se důrazně doporučuje otestovat LS7 ve vyhrazeném prostředí.

4.1 Instalace LS7 do samostatného prostředí

Nejnovější verzi LS7 stáhněte z:

https://community.limesurvey.org

Nainstalujte ji odděleně od stávajícího nastavení.

4.2 Import stávajících prvků

Testujte pomocí:

  • průzkumů
  • Motivů průzkumů
  • Motivů administrace
  • Motivů otázky
  • pluginů
  • vlastního JavaScriptu
  • všech vlastních integrací, které jste vytvořili

Zkontrolujte, zda vše funguje podle očekávání s novým pojmenováním tabulek a polí. Aktualizujte veškerý kód, který se spoléhá na původní pojmenování.

4.3 Jak spustit migraci?

Pokud si chcete vyzkoušet náhled logiky migrace ve své testovací instalaci:

  1. Zálohujte svou databázi.
  2. Nainstalujte verzi LS7.
  3. Načtěte libovolnou administrační stránku, čímž se spustí migrační skript.
  4. Zkontrolujte změny názvů tabulek a polí.
  5. Otestujte aplikaci.
  6. V případě potřeby aktualizujte vlastní kód.

4.4 Nahlášení problémů

Děkujeme, že testujete již v této rané fázi. Pokud v jádru systému narazíte na cokoli, co vypadá nesprávně, nahlaste to prosím, abychom to mohli co nejdříve opravit.

https://bugs.limesurvey.org

5. Co může vyžadovat aktualizaci

Úpravy mohou vyžadovat následující položky:

  • pluginy odkazující na původní názvy polí nebo tabulek
  • všechny vlastní integrace, které jste vytvořili
  • JavaScript používající selektory založené na názvech polí
  • vlastní motivy pracující s identifikátory souvisejícími s odpověďmi
  • integrace závislé na předchozím schématu pojmenování
  • import starých exportů, například průzkumů, motivů, motivů otázky atd.

To je očekávané a je to součást procesu aktualizace.

6. Souhrn

  • LS7 přináší kompletní vyčištění pojmenování tabulek odpovědí a názvů polí
  • Jedná se o hlavní strukturální změnu backendu v LS7
  • Důrazně doporučujeme testovat v samostatném prostředí
  • getFieldName() pomáhá zobrazit náhled budoucího pojmenování
  • Tam, kde je to nutné, aktualizujte vlastní kód
  • Nahlaste problémy včas, pomůžete tak stabilizovat finální verzi