TYPO3 - TypoScript Settings nutzen

Aus Wikizone
Version vom 16. Dezember 2019, 13:09 Uhr von 37.49.72.8 (Diskussion) (Die Seite wurde neu angelegt: „ http://t3-developer.com/ext-programmierung/plugins-erstellen/settings/ SETTINGS IN PLUGINS NUTZEN Settings können an ganz unterschiedlichen Stellen gesetzt w…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
http://t3-developer.com/ext-programmierung/plugins-erstellen/settings/

SETTINGS IN PLUGINS NUTZEN Settings können an ganz unterschiedlichen Stellen gesetzt werden und werden gewöhnlich im Controller oder Fluid Template ausgewertet. Damit kann individuell das Verhalten des Controllers oder Templates beeinflusst werden ohne an den Funktionen veränderungen vornehmen zu müssen.

Settings beziehen sich daher immer auf das jeweilige Plugin und stehen dort auch ohne größerem Aufwand direkt zur Verfügung:

Im Controller:

$this->settings['mySetting']

In Fluid Templates:

{settings.mySetting}
Settings im EXT Setup
Grundsätzlich muss dabei unterschieden werden ob die Settings im (Backend) Modul oder im (Frontend) Plugin zur Verfügung stehen sollen. Dementsprechend erfolgt die Deklaration in eurer EXT Setup:

module.tx_myextension {
    settings {
        mysetting1 = value1
        mysetting2 = value 2
    }
}

plugin.tx_myextension {
    settings {
        mysetting1 = value1
        mysetting2 = value 2
    }
}

Mit folgendem Zusatz kann man dann die Werte ganz einfach in dem Konstanten Editor des Moduls/Plugin setzten:

module.tx_myextension {
    settings {
        mysetting1 = {$module.tx_myextension.mysetting1}
    }
}

Zusätlich wird dann eine constant.txt/ts im Typoscript Ordner mit folgendem Inhalt benötigt:

module.tx_myextension {
    settings {
	# cat=module.tx_myextension/string; type=string; label=Label Text
	mysetting1 =
    }
}

Settings auf Page Ebene Wenn ihr ein Plugin mehrfach einfügt und unterschiedliche Settings braucht, könnt Ihr ein EXT-Template für die Seite anlegen. Dort könnt Ihr im Setup folgenden Code eintragen, dieser überschreibt dann die Settings eurer Extension:

module.tx_myextension {
    settings {
        mysetting1 = myPageValue1
        mysetting2 = myPageValue2
    }
}

Settings in Flexforms angeben Das ist nun ziemlich die flexibelste Lösung. Angaben in den Flexforms überschreiben sowohl die EXT Settings, wie auch die auf Page Ebene gemachten Settings. Wenn da nicht noch jemand die Settings direkt im Controller setzt ;)

Ein Beispiel für die Flexform Einbindung und Settings hatte ich hier schon beschrieben: Plugins & Flexforms registieren

Settings im Controller setzten Gut, wenn alles nichts hilft ;)

Die Settings können natürlich auch im Controller überschrieben werden. Das macht in sofern Sinn, wenn man auf Abfrageergebnisse reagieren will und diese im Fluid Template berücksichtigt werden.

Aber eigentlich ist das eher die Ausnahme ...

$this->settings['mysetting1'] = myControllerSetting;