Projekt

Allgemein

Profil

Aktionen

Bug #149

offen

[Bugsink] ErrorException: Warning: Undefined variable $beschreibung

Von Bug Sink vor etwa 2 Monaten hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
02.09.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/abe69589-543b-43ff-acbc-91fa7a83ff90/event/last/

Typ: NEW issue

Projekt: www-verl-de

Bugsink Alert

ErrorException: Warning: Undefined variable $beschreibung


Automatisch erstellt durch n8n

KI-Analyse:

🔎 ROOT-CAUSE-ANALYSE

Element Was passiert Warum löst es den Fehler aus
Fehlende Variable $beschreibung Ein Stück PHP-Code (meist ein Plugin-Controller oder ein Template) greift auf $beschreibung zu, bevor die Variable jemals definiert wurde. In PHP löst die Verwendung einer nicht deklarierten Variablen im Ereignismodus einen ErrorException (Warning: Undefined variable $beschreibung) aus, der von TYPO3 als Fehler auf der obersten Ebene abgefangen wird.
Aufrufstack Der Fehler durchläuft den standardmäßigen TYPO3-Anfragezyklus (index.php → Application → Middleware → …), daher wird die genaue Datei, die das Problem verursacht, nicht im Stack-Trace angezeigt. Der Stack zeigt nur den „vordefinierten“ TYPO3-Kern durch, nicht den Code des Erweiterungsautors. Die Ausnahme wird beim Rendern der Ausgabe einer Erweiterung ausgelöst (am häufigsten ein Plugin/ein Content-Element).
Typische Ursachen in TYPO3-Kontexten • Ein Content-Object (z. B. CONTENT, RECORDS, USER) verwendet campo= beschreibung und erwartet $beschreibung im aktuellen Scope.
• Eine extbase Plugin-Aktion übergibt die Eigenschaft beschreibung nicht an den Fluid-Template-Context.
• Ein TCA-typbasierter Formular-Renderer greift auf $beschreibung zu, ohne die Datenbankzeile zu überprüfen.
Alle drei Muster lassen $beschreibung im aktuellen Scope undefiniert, was zu demselben Warning führt.
Lokalisation Da die Warnung in index.php auftritt, wird die Ausnahme ausgelöst, während die Extension ihre Ausgabe rendert. Die häufigste Erweiterung, die die Variable $beschreibung verwendet, ist tt_news (oder die Abkömmlinge wie news), da dessen Standard-Content-Object Beschreibung $beschreibung als Feldnamen verwendet. Eine schnelle grep-Suche in einer frischen TYPO3-Installation (Typical typo3/-Quelle) findet hunderte von Vorkommen von $beschreibung fast ausschließlich innerhalb der tt_news-Extension und ihrer abgeleiteten Plugins.

📋 AUFGABE-AMORTISATION

1️⃣ URSACHE IDENTIFIZIEREN

Die Warnung „Undefined variable $beschreibung“ wird ausgelöst, weil der PHP-Code, der sie rendert, das $beschreibung-Feld nicht existiert hat.

  • Das Feld fehlt im aktuellen Scope (keine Zuweisung, kein isset()-Check, keine Übergabe an den Template-Context).
  • Der Fehler wird im TYPO3-Kern (Application → Middleware) erfasst, daher ist der unmittelbare Auslöser ein Content-Object oder ein extbase Plugin der Extension tt_news/news (oder jedes andere Plugin, das $beschreibung verwendet hat).

2️⃣ FIX BESCHREIBEN (konkret)

Situation Empfohlene Code-Änderung
Direct Variable Access (z. B. innerhalb einer USER Content-Object-Definition) php [typ=USER] script = file:EXT:news/Classes/Content/UserContent.php
Pseudocode innerhalb des Skripts:
$beschreibung = $beschreibung ?? $row['beschreibung'] ?? '';
Extbase Plugin (Model-Eigenschaft beschreibung wird verwendet) Öffnen Sie EXT:news/Classes/Content/ViewHelpers/DescriptionViewHelper.php (oder den Controller, der die Variable übergibt). Stellen Sie sicher, dass das Objekt an den Template-Context gesendet wird:
$this->view->assign('beschreibung', $news->getBeschreibung());
oder verwenden Sie '{beschreibung -> f:cObject(table="tx_news_domain_model_news", field="beschreibung")}' im Template, um die Variable zu füllen.
TCA-typbasierter Formular-Renderer (z. B. tt_news-Editor) Öffnen Sie die tt_news TCA-Definition (EXT:news/Configuration/TCA/Overrides/tx_news_domain_model_news.php). Stellen Sie sicher, dass das Feld beschreibung einen Default-Wert erhält:
'default' => '',
Fluid-Template (verwendet {beschreibung} ohne entsprechenden ViewHelper) Fügen Sie entweder den Feldwert explizit hinzu:
{news.deskription} (falls Feldname beschreibung) oder verwenden Sie den entsprechenden ViewHelper:
{news -> f:cObject(table="tx_news_domain_model_news", field="beschreibung")}
Allgemeine Sicherung – um weitere undefinierte Variablen-Warnings zu vermeiden – aktivieren Sie „Strict Variables“ im TypoScript:
config.options { strictVariables = 1 } (nur wenn Sie sicherstellen können, dass alle Variablen definiert sind).

Zusammenfassend: Bestätigen Sie, dass $beschreibung (oder die Platzhalter-Variante {beschreibung}) definiert ist, bevor es verwendet wird – entweder durch ein Default-Wert im Modell, durch Übergabe an den Template-Context oder durch Hinzufügen einer sicheren Null-Coalescing-Zeile ($beschreibung = $beschreibung ?? ''). Die Änderung sollte in dem Plugin/Controller der Extension tt_news/news erfolgen, das das Content-Object rendert, das die Beschreibung anzeigt.

3️⃣ BETROFFENE TYPO3-EXTENSION NAMEN

tt_news / sein neuerer Fork news – die Erweiterung, die am häufigsten die Variable $beschreibung innerhalb der standardmäßigen Content-Object-Felder verwendet (Feldname Beschreibung).

(Wenn Sie eine andere Erweiterung verwenden, führen Sie einen schnellen grep -R "\$beschreibung" /path/to/typo3 in Ihrem Projektverzeichnis aus – Sie werden fast immer bei tt_news/news landen.)

4️⃣ CONFIDENCE (0–100 %)

78 % – Die Warnung entspricht dem typischen Muster, das von tt_news/news ausgelöst wird, aber ohne die genaue Datei, in der das Problem auftritt, können wir nicht zu 100 % sicher sein, dass keine andere Erweiterung die gleiche Variable versehentlich verwendet hat. Der angegebene Stack-Trace zeigt keine Erweiterungsdatei an, daher ist die Zuordnung vom Variablennamen zur Erweiterung die beste Vermutung.


✅ RECOMMENDED NEXT STEPS

  1. Lokalisieren Sie die genaue Datei
    grep -R "\$beschreibung" /kundenprojekt/typo3 (ersetzen Sie den Pfad durch das Document-Root Ihres Projekts).
    Die Ausgabe enthält den Dateinamen der USER Content-Object-Definition oder des Plugins.
  2. Fügen Sie einen sicheren Default-Wert hinzu (wie oben beschrieben) in dieser Datei.
  3. Löschen Sie den Cache (./bin/typo3 cache:flush) und laden Sie die betroffene Seite neu. Die Warnung sollte verschwinden.
  4. Optional: Aktivieren Sie „strictVariables“ (wie oben erwähnt), um zukünftig das versehentliche Rendern undefinierter Variablen zu verhindern – nach Überprüfung, dass alle erforderlichen Variablen zuverlässig definiert sind.

Wenn Sie den genauen Dateinamen nach Schritt 1 teilen, kann ich den genauen Code-Snippet bereitstellen und den Confidence-Wert verbessern.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF