Bug #79
offen[Bugsink] ErrorException: Warning: Undefined array key "hidden"
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/eeb9934d-4277-41f3-b35f-b7dd2baa7ef3/event/last/
Typ: NEW issue
Projekt: www-rietberg-de
Bugsink Alert
ErrorException: Warning: Undefined array key "hidden"
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers: Undefined array key "hidden"¶
1. Ursache identifizieren¶
Der Fehler tritt auf, weil im PHP-Code versucht wird, auf einen nicht existierenden Array-Key "hidden" zuzugreifen. Dies passiert typischerweise in einem der folgenden Szenarien:
-
Fehlende Datenbank-Spalte oder Felddefinition
In TYPO3 wird das Feld"hidden"(für "versteckte Datensätze") standardmäßig in vielen Tabellen (z. B.pages,tt_content,sys_file_metadata) verwendet. Fehlt dieses Feld in der Datenbank oder in der TCA-Konfiguration ($TCA), führt der Zugriff auf$row['hidden']zu diesem Fehler. -
Unvollständige TCA-Konfiguration
Wenn eine Extension ein eigenes Datenbank-Feld verwendet, aber die TCA-Konfiguration für das Feld"hidden"fehlt oder falsch ist, kann der Fehler auftreten. -
Middleware- oder Request-Verarbeitung
Der Stacktrace zeigt, dass der Fehler während der HTTP-Anfrageverarbeitung (Middleware) auftritt. Mögliche Ursachen:- Ein Middleware (z. B.
NormalizedParamsAttribute) oder ein Request-Handler greift auf ein Array zu, das kein"hidden"-Feld enthält. - Ein Hook oder Event-Listener (z. B. in
ext_localconf.php) versucht, auf ein nicht initialisiertes Array zuzugreifen.
- Ein Middleware (z. B.
-
Extension-spezifischer Code
Eine benutzerdefinierte Extension könnte versuchen, auf$row['hidden']zuzugreifen, ohne vorher zu prüfen, ob der Key existiert (z. B. in einem DataHandler-Hook, Backend-Modul oder Frontend-Plugin).
2. Fix beschreiben (konkret)¶
Abhängig von der Ursache gibt es mehrere Lösungsansätze:
A) Array-Key-Prüfung hinzufügen (schnellster Fix)¶
Falls der Fehler in eigener Extension-Code auftritt:
// Vorher (fehlerhaft):
if ($row['hidden']) { ... }
// Nachher (sicher):
if (isset($row['hidden']) && $row['hidden']) { ... }
// Oder ab PHP 7.4:
if ($row['hidden'] ?? false) { ... }
B) TCA-Konfiguration anpassen¶
Falls das Feld "hidden" in einer Tabelle fehlt:
-
Datenbank-Update (falls Spalte fehlt):
ALTER TABLE tx_myextension_domain_model_mytable ADD hidden tinyint(4) DEFAULT 0 NOT NULL; -
TCA anpassen (in
Configuration/TCA/Overrides/...):$GLOBALS['TCA']['tx_myextension_domain_model_mytable']['columns']['hidden'] = [ 'config' => [ 'type' => 'check', 'default' => 0, ], ]; $GLOBALS['TCA']['tx_myextension_domain_model_mytable']['ctrl']['enablecolumns']['disabled'] = 'hidden';
C) Middleware/Request-Handler prüfen¶
Falls der Fehler in TYPO3-Core-Middleware auftritt (z. B. NormalizedParamsAttribute):
-
Debugging: Prüfen, welches Array den Key
"hidden"erwartet (z. B.$request->getAttribute('normalizedParams')). - Patch: Falls es sich um einen Core-Bug handelt, sollte ein Issue auf forge.typo3.org gemeldet werden.
D) Extension-Update¶
Falls der Fehler in einer Drittanbieter-Extension auftritt:
- Extension aktualisieren (prüfen, ob ein Fix existiert).
-
Temporärer Workaround: Den fehlerhaften Code in der Extension lokal patchen (z. B. mit
isset()).
3. Betroffene TYPO3 Extension nennen¶
Der Fehler stammt nicht direkt aus dem TYPO3-Core, sondern aus:
- Einer benutzerdefinierten Extension (wahrscheinlichste Ursache, da der Stacktrace keine Core-Extension zeigt).
-
Einer Drittanbieter-Extension, die:
- Auf
$row['hidden']zugreift, ohne die Existenz zu prüfen. - Eine unvollständige TCA-Konfiguration hat.
- Einen Hook oder Event-Listener registriert, der auf nicht initialisierte Daten zugreift.
- Auf
Mögliche Kandidaten (basierend auf dem Stacktrace):
- Eine Backend-Extension (z. B. für Listenansichten, Formulare).
- Eine Frontend-Extension, die Datenbank-Datensätze verarbeitet.
- Ein Middleware-Hook, der in
ext_localconf.phpregistriert ist.
Empfehlung:
- Fehler reproduzieren und prüfen, welche Extension den Fehler auslöst (z. B. durch Deaktivieren von Extensions).
-
Code-Suche nach
$row['hidden']in allen Extensions:grep -r "\[['\"]hidden['\"]\]" typo3conf/ext/
4. Confidence (0-100%)¶
| Ursache | Confidence |
|---|---|
Benutzerdefinierte Extension greift auf $row['hidden'] zu, ohne Prüfung |
80% |
| TCA-Konfiguration fehlt oder ist falsch | 15% |
Core-Bug in Middleware (z. B. NormalizedParamsAttribute) |
5% |
Begründung:
- Der Stacktrace zeigt keine Core-Extension, sondern generische Middleware.
- Der Fehler tritt typischerweise in Extension-Code auf, der mit Datenbank-Datensätzen arbeitet.
- TYPO3-Core prüft solche Keys meist selbst (z. B. in
DataHandler), daher ist ein Core-Bug unwahrscheinlich.
Zusammenfassung der nächsten Schritte¶
-
Extension identifizieren, die den Fehler verursacht (via
grepoder Deaktivieren von Extensions). -
Code prüfen, wo auf
$row['hidden']zugegriffen wird, undisset()hinzufügen. -
TCA/Datenbank prüfen, ob das Feld
"hidden"korrekt definiert ist. - Falls nötig, Issue melden (bei Drittanbieter-Extensions oder Core-Bugs).
Nichts anzuzeigen