x

Główne rozdziały

  1. LimeSurvey Cloud kontra LimeSurvey CE
  2. Skrócona instrukcja obsługi - LimeSurvey 3.0+
  3. Instalacja - LimeSurvey CE
  4. Jak zaprojektować dobrą ankietę (przewodnik)
  5. Rozpoczęcie
  6. Administrowanie LimeSurvey
  7. Ankiety - wprowadzenie
  8. Ustawienia ankiety
  9. Menu ankiety
  10. Struktura ankiety
  11. Pytania – wprowadzenie
  12. Grupy pytań – wprowadzenie
  13. Ankiety - zarządzanie
  14. Opcje paska narzędzi ankiety
  15. Ankieta wielojęzyczna
  16. Silnik ExpressionScript — skrócona instrukcja obsługi
  17. Brak kategorii i zaawansowane funkcje
  18. Ogólne często zadawane pytania
  19. Rozwiązywanie problemów
  20. Obejścia
  21. Licencja
  22. Dziennik zmian wersji
  23. Wtyczki - zaawansowane
 Actions

Refaktoryzacja nazw pól w LimeSurvey 7

From LimeSurvey Manual

Ta strona mogła zostać przetłumaczona maszynowo i może zawierać błędy. Pokaż oryginał w języku angielskim · Popraw to tłumaczenie
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refaktoryzacja nazw pól i tabel odpowiedzi - LimeSurvey 7

LimeSurvey 7 wprowadza gruntowne porządki w sposobie generowania tabel odpowiedzi i nazw pól. Ta aktualizacja unowocześnia wieloletnie wewnętrzne konwencje nazewnictwa i tworzy bardziej przewidywalną oraz solidną podstawę dla wtyczek, integracji i dalszego rozwoju.

Ta strona dotyczy refaktoryzacji tabel odpowiedzi i nazw pól.

Ponieważ jest to zmiana strukturalna, wszelkie niestandardowe rozwiązania oparte na starym nazewnictwie mogą wymagać aktualizacji. Ta strona wyjaśnia, co się zmienia, jak bezpiecznie testować oraz jak przygotować się do aktualizacji.

1. Co się zmienia

1.1 Nowe nazwy tabel

LimeSurvey używa teraz spójnego schematu nazewnictwa dla tabel związanych z odpowiedziami.

Stara nazwa tabeli Nowa nazwa tabeli
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>

Wszelkie zapytania SQL, integracje lub wtyczki odwołujące się do tych tabel mogą wymagać poprawek.

1.2 Nowa struktura nazw pól

Nazwy pól mają teraz przewidywalny i spójny format. Przykłady:

  • Q<questionId> - pytanie główne
  • Q<questionId>_S<subquestionId> - podpytania
  • Q<questionId>_C<suffix> - komentarz lub inne pola
  • pola rankingu: Q<questionId>_S<subquestionId> - elementy rankingu są teraz podpytaniami (zob. 1.3)
  • pola czasów: na poziomie pytania lub grupy, w zależności od kontekstu

Zastępuje to dawne nazewnictwo oparte na sidXgidXqid.

1.3 Pytania typu ranking

Pytania typu ranking działają teraz tak jak inne typy pytań oparte na podpytaniach:

  • Elementy są podpytaniami. Elementy do uszeregowania są zapisywane jako podpytania (typ R), a nie jako opcje odpowiedzi.
  • Nazwy pól używają standardowego formatu podpytań Q<questionId>_S<subquestionId> (jedno pole na każdy element rankingu).
  • Odpowiedzi są zapisywane w jednej kolumnie JSON Q<questionId>, jako uporządkowana tabela kodów elementów, w której pozycja = ranga. Przykład: ["3", "1", "2"]

2. Dlaczego to ważne

Te porządki dotyczą wzorców nazewnictwa, które były formalnie zdefiniowane i używane przez wiele lat, i nadają im spójną, solidną strukturę, na której możemy budować w przyszłości.

Zmiany strukturalne tego rodzaju rzadko są proste. Dotyczą elementów systemu, na których opiera się wiele wtyczek i integracji, dlatego często są odkładane z powodu swojej złożoności. Jednak spójność i przewidywalność są ważne dla długoterminowej stabilności.

Zajmując się tym teraz, sprawiamy, że LimeSurvey jest czystszy i łatwiejszy do rozbudowy, nawet jeśli zmiana jest w większości niewidoczna na pierwszy rzut oka.

3. Jak wyświetlić podgląd nowych nazw pól

Aby zobaczyć, jak dowolna istniejąca nazwa pola zostanie odwzorowana w nowej strukturze LS7, wykonaj następujące kroki:

  1. Wykonaj kopię zapasową bazy danych - zmiany są nieodwracalne, a w razie problemów przyda się baza sprzed zmiany, z której można odzyskać dane.
  2. Przełącz się na gałąź develop-major:
    git checkout develop-major
    lub sklonuj/pobierz projekt bezpośrednio z tej gałęzi pod adresem https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Załaduj dowolną stronę administracyjną, aby uruchomić skrypt zmian.
  4. Zgłoś wszelkie błędy, które wystąpią podczas wykonywania skryptu zmian.
  5. Przeanalizuj nowe nazwy tabel i pól.
  6. Przetestuj swoje wtyczki/motywy i popraw błędy związane z nazwami tabel i/lub pól.

Do konwersji starych nazw pól na nowe służy następująca funkcja:

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

Parametry

  • $tableName - oryginalna nazwa tabeli
  • $fieldName - oryginalna nazwa pola
  • $questions - pytanie główne i jego podpytania
  • $sid - ID ankiety
  • $gid - ID grupy
  • $cd - czy ma zastosowanie logika Projektanta warunków

Wynik

Funkcja zwraca nową nazwę pola LS7 dla danego pola odpowiedzi.

4. Jak bezpiecznie przetestować zmiany

Zdecydowanie zaleca się przetestowanie LS7 w dedykowanym środowisku przed aktualizacją systemów produkcyjnych.

4.1 Zainstaluj LS7 w oddzielnym środowisku

Pobierz najnowszą wersję LS7 z:

https://community.limesurvey.org

Zainstaluj ją oddzielnie od obecnej instalacji.

4.2 Zaimportuj istniejące zasoby

Przetestuj z użyciem:

  • ankiet
  • motywów ankiet
  • motywów administratora
  • motywów pytań
  • wtyczek
  • niestandardowego kodu JavaScript
  • wszelkich utworzonych przez Ciebie niestandardowych integracji

Sprawdź, czy wszystko działa zgodnie z oczekiwaniami przy nowym nazewnictwie tabel i nazw pól. Zaktualizuj każdy kod, który opiera się na starym nazewnictwie.

4.3 Jak uruchomić migrację?

Jeśli chcesz wyświetlić podgląd logiki migracji w swojej instalacji testowej:

  1. Utwórz kopię zapasową bazy danych.
  2. Zainstaluj wersję LS7.
  3. Załaduj dowolną stronę administracyjną, aby uruchomić skrypt migracji.
  4. Przejrzyj zmiany w tabelach i nazwach pól.
  5. Przetestuj aplikację.
  6. W razie potrzeby zaktualizuj kod niestandardowy.

4.4 Zgłaszanie problemów

Dziękujemy za wczesne testowanie. Jeśli zauważysz w rdzeniu systemu coś, co wygląda nieprawidłowo, zgłoś to, abyśmy mogli to jak najszybciej naprawić.

https://bugs.limesurvey.org

5. Co może wymagać aktualizacji

Poniższe elementy mogą wymagać dostosowania:

  • wtyczki odwołujące się do starych nazw pól lub nazw tabel
  • wszelkie utworzone przez Ciebie niestandardowe integracje
  • kod JavaScript używający selektorów opartych na nazwach pól
  • motywy niestandardowe korzystające z identyfikatorów związanych z odpowiedziami
  • integracje zależne od poprzedniego schematu nazewnictwa
  • import starych eksportów, takich jak ankiety, motywy, motywy pytań itp.

Jest to oczekiwane i stanowi część procesu aktualizacji.

6. Podsumowanie

  • LS7 wprowadza kompletne uporządkowanie nazewnictwa tabel odpowiedzi i nazw pól
  • Jest to główna strukturalna zmiana zaplecza w LS7
  • Zdecydowanie zaleca się testowanie w oddzielnym środowisku
  • getFieldName() pomaga wyświetlić podgląd przyszłego nazewnictwa
  • Zaktualizuj kod niestandardowy tam, gdzie jest to wymagane
  • Zgłaszaj problemy jak najwcześniej, aby pomóc w ustabilizowaniu wersji finalnej