x

Hauptkapitel

  1. LimeSurvey Cloud oder LimeSurvey CE?
  2. Schnellstart Anleitung - LimeSurvey 3.0+
  3. Installationsanleitung - LimeSurvey CE
  4. Wie man eine gute Umfrage erstellt (Anleitung)
  5. Erste Schritte
  6. Administrieren von LimeSurvey
  7. Umfragen erstellen - Einführung
  8. Umfrage-Einstellungen
  9. Umfrage-Menü
  10. Umfragestruktur
  11. Fragen
  12. Fragengruppen – Einführung
  13. Umfragen - Verwaltung
  14. Optionen der Umfrage-Symbolleiste
  15. Mehrsprachige Umfrage
  16. ExpressionScript Engine - Kurzanleitung
  17. Unkategorisierte und erweiterte Features
  18. Allgemeine FAQ - Häufig gestellte Fragen
  19. Fehlerbehebung
  20. Tipps und Tricks
  21. Lizenzbestimmungen
  22. Änderungshistorie
  23. Plugins
 Actions

LimeSurvey 7 Refactoring der Feldnamen

From LimeSurvey Manual

Diese Seite wurde möglicherweise maschinell übersetzt und kann Fehler enthalten. Englisches Original anzeigen · Übersetzung verbessern
This page is a translated version of the page LimeSurvey 7 Fieldname Refactor and the translation is 100% complete.

Refactoring der Feldnamen und Antworttabellen - LimeSurvey 7

LimeSurvey 7 führt eine umfassende Bereinigung der Erzeugung von Antworttabellen und Feldnamen ein. Dieses Update modernisiert langjährige interne Namenskonventionen und schafft eine besser vorhersehbare und robustere Grundlage für Plugins, Integrationen und die zukünftige Entwicklung.

Diese Seite behandelt das Refactoring der Antworttabellen und Feldnamen.

Da es sich um eine strukturelle Änderung handelt, können individuelle Anpassungen, die auf der alten Benennung beruhen, Aktualisierungen erfordern. Diese Seite erklärt, was sich ändert, wie Sie sicher testen und wie Sie sich auf das Upgrade vorbereiten.

1. Was sich ändert

1.1 Neue Tabellennamen

LimeSurvey verwendet jetzt ein einheitliches Benennungsschema für Tabellen, die Antworten betreffen.

Alter Tabellenname Neuer Tabellenname
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-Abfragen, Integrationen oder Plugins, die auf diese Tabellen verweisen, müssen möglicherweise angepasst werden.

1.2 Neue Feldnamenstruktur

Feldnamen folgen jetzt einem vorhersehbaren und einheitlichen Format. Beispiele:

  • Q<questionId> - Hauptfrage
  • Q<questionId>_S<subquestionId> - Teilfragen
  • Q<questionId>_C<suffix> - Kommentar- oder sonstige Felder
  • Ranking-Felder: Q<questionId>_S<subquestionId> - Ranking-Elemente sind jetzt Teilfragen (siehe 1.3)
  • Zeitfelder: je nach Kontext auf Frage- oder Gruppenebene

Dies ersetzt die bisherige Benennung auf Basis von sidXgidXqid.

1.3 Ranking-Fragen

Ranking-Fragen funktionieren jetzt wie andere Fragetypen auf Basis von Teilfragen:

  • Elemente sind Teilfragen. Sortierbare Elemente werden als Teilfragen (Typ R) gespeichert, nicht als Antwortoptionen.
  • Feldnamen verwenden das Standardformat für Teilfragen Q<questionId>_S<subquestionId> (eines pro eingeordnetem Element).
  • Antworten werden in einer einzelnen JSON-Spalte Q<questionId> gespeichert, und zwar als geordnetes Array von Elementcodes, wobei die Position dem Rang entspricht. Beispiel: ["3", "1", "2"]

2. Warum das wichtig ist

Diese Bereinigung betrifft Benennungsmuster, die über viele Jahre hinweg formal definiert und verwendet wurden, und bringt sie in eine einheitliche und robuste Struktur, auf der wir in Zukunft aufbauen können.

Strukturelle Änderungen wie diese sind selten einfach. Sie betreffen Teile des Systems, auf die sich viele Plugins und Integrationen stützen, weshalb sie wegen ihrer Komplexität oft aufgeschoben werden. Doch Einheitlichkeit und Vorhersehbarkeit sind wichtig für die langfristige Stabilität.

Indem wir dies jetzt angehen, machen wir LimeSurvey sauberer und leichter erweiterbar, auch wenn die Änderung an der Oberfläche größtenteils unsichtbar ist.

3. So sehen Sie die neuen Feldnamen vorab

Um zu sehen, wie ein vorhandener Feldname auf die neue LS7-Struktur abgebildet wird, können Sie die folgenden Schritte durchführen:

  1. Sichern Sie die Datenbank, da die Änderungen nicht rückgängig gemacht werden können. Falls etwas schiefgeht, ist es hilfreich, den Stand der Datenbank vor der Änderung wiederherstellen zu können.
  2. Checken Sie den Branch develop-major aus:
    git checkout develop-major
    oder klonen/laden Sie das Projekt direkt von diesem Branch herunter unter https://github.com/LimeSurvey/LimeSurvey/tree/develop-major
  3. Rufen Sie eine Administrationsseite auf, um das Änderungsskript auszulösen.
  4. Melden Sie alle Fehler, die bei der Ausführung des Änderungsskripts auftreten.
  5. Sehen Sie sich die neuen Tabellennamen und Feldnamen an.
  6. Testen Sie Ihre Plugins/Themes und beheben Sie Fehler im Zusammenhang mit Tabellennamen und/oder Feldnamen.

Die Funktion, mit der alte Feldnamen in neue Feldnamen umgewandelt werden, lautet:

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

Parameter

  • $tableName - ursprünglicher Tabellenname
  • $fieldName - ursprünglicher Feldname
  • $questions - Hauptfrage und ihre Teilfragen
  • $sid - Umfrage ID
  • $gid - Gruppen-ID
  • $cd - ob die Logik des Bedingungsdesigners angewendet wird

Ergebnis

Die Funktion gibt den neuen LS7-Feldnamen für dieses Antwortfeld zurück.

4. So testen Sie die Änderungen sicher

Es wird dringend empfohlen, LS7 in einer eigenen Umgebung zu testen, bevor Sie Produktivsysteme aktualisieren.

4.1 LS7 in einer separaten Umgebung installieren

Laden Sie die neueste LS7-Version hier herunter:

https://community.limesurvey.org

Installieren Sie sie getrennt von Ihrer aktuellen Installation.

4.2 Bestehende Inhalte importieren

Testen Sie mit:

  • Umfragen
  • Umfragedesignvorlagen
  • Admin-Designvorlagen
  • Frage Designvorlagen
  • Plugins
  • benutzerdefiniertem JavaScript
  • allen von Ihnen erstellten benutzerdefinierten Integrationen

Prüfen Sie, ob mit der neuen Benennung von Tabellen und Feldnamen alles wie erwartet funktioniert. Aktualisieren Sie jeden Code, der auf der alten Benennung beruht.

4.3 Wie wird die Migration ausgelöst?

Wenn Sie die Migrationslogik in Ihrer Testinstallation in einer Vorschau ansehen möchten:

  1. Sichern Sie Ihre Datenbank.
  2. Installieren Sie die LS7-Version.
  3. Rufen Sie eine beliebige Admin-Seite auf, um das Migrationsskript auszuführen.
  4. Prüfen Sie die Änderungen an Tabellen- und Feldnamen.
  5. Testen Sie die Anwendung.
  6. Aktualisieren Sie bei Bedarf benutzerdefinierten Code.

4.4 Probleme melden

Vielen Dank, dass Sie dies frühzeitig testen. Wenn Ihnen im Kern etwas auffällt, das nicht stimmt, melden Sie es bitte, damit wir es so schnell wie möglich beheben können.

https://bugs.limesurvey.org

5. Was möglicherweise aktualisiert werden muss

Folgendes muss möglicherweise angepasst werden:

  • Plugins, die auf alte Feldnamen oder Tabellennamen verweisen
  • alle von Ihnen erstellten benutzerdefinierten Integrationen
  • JavaScript, das auf Feldnamen basierende Selektoren verwendet
  • benutzerdefinierte Designvorlagen, die mit antwortbezogenen Bezeichnern interagieren
  • Integrationen, die vom bisherigen Benennungsschema abhängen
  • der Import alter Exporte wie Umfragen, Designvorlagen, Frage Designvorlagen usw.

Das ist zu erwarten und Teil des Upgrade-Prozesses.

6. Zusammenfassung

  • LS7 führt eine vollständige Bereinigung der Benennung von Antworttabellen und Feldnamen ein
  • Dies ist die wichtigste strukturelle Backend-Änderung in LS7
  • Das Testen in einer separaten Umgebung wird dringend empfohlen
  • getFieldName() hilft dabei, die künftige Benennung in der Vorschau zu sehen
  • Aktualisieren Sie benutzerdefinierten Code, wo erforderlich
  • Melden Sie Probleme frühzeitig, um die finale Version zu stabilisieren