[TYPO3-german] BUG: t3s_headerslider hat merkwürdige Konfigurations Logic

Sebastian Kotthoff sebastian at informatik.uni-mannheim.de
Fri Oct 6 11:30:33 CEST 2017


Hi,

einige Leute in dem Forum haben Probleme bei der Konfiguration von t3s_headerslider.

Ich selbst bin auch drüber gestolpert und denke, dass es am Code liegt. Wohin kann man einen Bugreport zu
schreiben?

Das Problem liegt in Classes/Controller/HeadersliderController.php in initializeAction().

Zuerst wird gecheckt, ob es eine initialisierte Flexform zu der Seite gibt:

                $flexform = self::getFlexformData($contentObjectData['tx_t3sheaderslider']);
               $flexform = is_array($flexform) ? $flexform : [];
                $settings = array_merge($this->settings, $flexform);

Falls nicht, wird das Typo3Script verwendet, falls ja, wird das gesammte Typoscript mit der Flexform überschrieben.
Das Problem hierbei ist, dass man die Flexform nicht mehr so einfach "uninitalisieren" kann.
Sinnvoller wäre eine Auswahlmöglichkeit in der Flexform: nutze Flexform oder globales Typoscript.
Sobald man also in der Seitenkonfig im Reiter "Headerslider" was umgestellt hat und abgespeichert hat, ist für die Seite das TypoScript nie mehr gültig.


Nächstes Problem ist eine etwas merkwürdige Logic für die Rekursiv-Behandlung:

                          $currentSettings = $settings;

                        // if recursive (default) ... media from rootline
                        if ( $settings['recursive'] ) {
                                $recursive = self::getRecursive($contentObjectData);
                        } else {
                                // if recursiveSettings (default) ... settings from rootline[0]
                                if ($settings['recursiveSettings']) {
                                        $recursive = self::getFlexformData(self::getFrontendController()->rootLine[0]['tx_t3sheaderslider'], FALSE);
                                }
                        }

                        if (is_array($recursive)) {
                                $settings = array_merge($currentSettings, $recursive);
                        }

Bedeutet soviel, wie:
- falls Image rekursiv, hole alles (Image und Konfig) von der Vorgängerseite
- falls Image nicht rekursive, checke, ob Konfig-Rekursiv -> dann hole nur die Konfig von Vorgängerseite
Finde, darüber lässt sich auch streiten, aber OK.


Das Hauptproblem sind sicherlich die Zeilen:
               $flexform = is_array($flexform) ? $flexform : [];
                $settings = array_merge($this->settings, $flexform);
Dadurch muss ich auf jeder Seite mit einem Headerbild die Konfig in der Flexform anpassen, obwohl es global im Typoscript-Setup ginge.

Wer/Wo kann man einen Bugreport dazu absetzen?

Viele Grüße,

Sebastian


More information about the TYPO3-german mailing list