Loading...
Navigation überspringen
Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.

Feedback-Formular

Das Feedback-Formular ermöglicht es Teilnehmern, nach Abschluss eines Quiz direkt eine Rückmeldung zu geben oder Kontaktdaten zu hinterlassen. Dies ist besonders nützlich für Lead-Generierung oder zur Verbesserung der Quiz-Inhalte.

Was ist das Feedback-Formular?

Ein Feedback-Formular wird als Teil eines Quiz-Ergebnisses angezeigt. Wenn ein Teilnehmer einen bestimmten Punktebereich erreicht, kann ihm zusammen mit seinem Ergebnis ein individuell konfiguriertes Formular präsentiert werden. Die eingegebenen Daten werden validiert und per E-Mail an eine konfigurierbare Adresse gesendet.

Konfiguration und Felder

Die Definition der Formularfelder erfolgt über den Datensatz "Feedback-Feld". Ein Quiz-Ergebnis kann beliebig viele dieser Felder besitzen.

Die Definition der Felder ist in der Datei vendor/codingms/quiz/Configuration/TCA/tx_quiz_domain_model_feedbackfield.php zu finden.

  • Titel (title): Die Beschriftung des Feldes im Formular (z. B. "Name" oder "Ihre Meinung").
  • Key-Name (keyname): Ein interner technischer Name für das Feld (kleingeschrieben, ohne Leerzeichen). Dieser wird im E-Mail-Template und in der Validierung verwendet.
  • Typ (type): Der Feldtyp bestimmt die Eingabeart:
    • input: Einzeiliges Textfeld.
    • textarea: Mehrzeiliges Textfeld.
    • email: Textfeld mit integrierter E-Mail-Validierung.
    • select: Auswahlmenü (Drop-down).
  • Pflichtfeld (required): Wenn aktiviert, muss das Feld ausgefüllt werden, bevor das Formular abgeschickt werden kann.
  • Optionen (select_options): Nur für den Typ select. Hier werden die Auswahlmöglichkeiten zeilenweise eingetragen.

Technische Logik

Die Verarbeitung des Formulars erfolgt in zwei Hauptkomponenten:

Backend: JsonApiController.php

Die Datei vendor/codingms/quiz/Classes/Controller/JsonApiController.php übernimmt die serverseitige Verarbeitung:

  • sendFeedbackAction: Nimmt die Formulardaten entgegen, lädt das zugehörige Quiz-Ergebnis und startet die Validierung.
  • validateForm: Prüft die Pflichtfelder und E-Mail-Formate basierend auf der TCA-Konfiguration.
  • sendFeedbackMail: Bereitet die E-Mail mit den eingegebenen Daten und dem Quiz-Report vor und versendet diese.

Frontend: QuizFeedbackForm.js

Die Datei vendor/codingms/quiz/Resources/Public/JavaScript/QuizFeedbackForm.js steuert das Verhalten im Browser:

  • Abfangen des Submit-Events und Senden der Daten per fetch (AJAX).
  • Anzeigen von Lade-Informationen während der Übertragung.
  • Dynamisches Einblenden von Erfolgs- oder Fehlermeldungen.
  • Visuelle Markierung von validierten Feldern (Bootstrap-Klassen is-valid / is-invalid).

Templating

Das Aussehen des Formulars und der versendeten E-Mail kann über Fluid-Templates angepasst werden.

Formular-Partial

Datei: vendor/codingms/quiz/Resources/Private/Partials/Quiz/FeedbackForm.html

Dieses Partial rendert das eigentliche HTML-Formular. Es nutzt eine f:for-Schleife über {result.feedbackFields} und einen f:switch, um je nach Feldtyp das passende Fluid-Form-ViewHelper (z.B. f:form.textfield oder f:form.select) auszugeben. Das Formular ist standardmäßig für Bootstrap 5 optimiert.

E-Mail-Template

Datei: vendor/codingms/quiz/Resources/Private/Templates/Email/FeedbackMail.html

Dieses Template definiert den Inhalt der Benachrichtigungs-E-Mail. Folgende Variablen stehen zur Verfügung:

  • {subject}: Der Betreff der E-Mail.
  • {quiz}: Das Quiz-Objekt.
  • {quizResult}: Das QuizResult-Objekt, zu dem das Feedback gehört.
  • {fields}: Ein Array der abgeschickten Formularfelder. Jedes Element enthält:
    • {field.title}: Der Titel des Feldes.
    • {field.value}: Der vom Nutzer eingegebene Wert.
  • {report}: Ein Array mit den Details zum Quiz-Verlauf:
    • {report.questions}: Liste der beantworteten Fragen inkl. gegebener Antworten.
    • {report.questionsCorrect}: Anzahl der richtig beantworteten Fragen.
    • {report.questionsCount}: Gesamtanzahl der Fragen.
    • {report.correctPercent}: Prozentsatz der korrekten Antworten.
Dokumentation
TYPO3 Quiz Erweiterung

TYPO3 Quiz

Quiz-Erweiterung zur Erstellung von einfachen Quizzes als Selbsttest o.ä..

Menü

Kontaktanfrage

Du kannst uns jederzeit kontaktieren

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
823_________MML______
Z_5____S______L___3Y1
4_N___J9Q___BO2______
T_P____3____J_____C2X
KKR_________SU7______