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;

Weitere Artikel zu diesem Thema:

Empfehlenswerte Lektüre:

Praxiskurs HTML5 & CSS3: Professionelle Webseiten von Anfang an

Wer sich noch nicht mit der Semantik von html5 und CSS3 auskennt, für den ist dieses Buch lesenswert. Auf 500 Seiten werden Themen wie korrekte html5  Strukturen,  Multimedia-Wiedergabe, Webfonts,  barrierefreies und responsives Webdesign dem Einsteiger nähergebracht. Unterhaltsammes Praxiswissen mit ausführlicher Referenz zum Nachschlagen.

Kommentare

keine Kommentare vorhanden


Kommentar verfassen

Die Email Adresse wird nicht veröffentlicht.