Alles was du über den Constants wissen musst
Mit Hilfe von Constants kannst du gleiche Werte in TypoScript einfach wiederverwenden. Der Redakteur kann diese einfach und sicher ohne TypoScript - Kenntnisse ändern.
TypoScript ist eine sehr umfangreiche und möchte Konfigurationsmöglichkiet in TYPO3. Über TypoScript lassen sich viele Faktoren beeinflussen. Zum Beispiel kannst du deine Extension parametrisieren und diese Parameter in den Konstanten - Editor auslagern, damit der Redakteur diese einfach und sicher ändern kann. Sinnvoll ist die Konfiguration über TypoScript dann, wenn es für deine gesamte Extension gilt oder allen Frontend Plugins Instanzen.
Die Constants kann man in TYPO3 auf zwei verschiedenen Arten angeben:
- constants.typoscript - Datei in einer Extension
- Constants - Feld eines TypoScript Templates
constants.typoscript
Diese Datei kann ein Frontend Plugin in TYPO3 haben und ist Aufgabe vom TYPO3 Entwickler zu erstellen und zu pflegen.
Damit kann der Entwickler entscheiden, welche Teile seiner Extension und Frontend Plugins wie konfigurierbar sein sollen. Damit er nicht für jede Änderung gerufen werden muss, kann er so Kompetenzen auslagern und den TYPO3 Integrator und Redakteuren die Möglichkeit nehmen definierte Alternativen seiner Extension zu steuern.
Das Constants - Feld
Das Constants - Feld findet sich im TYPO3 Backend im TypoScript Template wieder:
Die Eingabe der Constants im TypoScript Template ist die Aufgabe vom TYPO3 Integrator oder Entwickler. Dort können sehr schnell Anpassungen für eine Seite und seiner Unterseiten vorgenommen werden. Denn alle Änderungen vererben sich auf die Unterseiten automatisch.
Die Eingabe ist denkbar einfach:
plugin.tx_campusfirstextension_project.settings.layout = Spring
exampleConstant = Irgendein Beispieltext
Die Eingabe hat natürlich nur dann einen Effekt, wenn im TypoScript Setup die angesprochenen Konstanten wiederverwendet werden:
plugin.tx_campusfirstextension_project.settings.layout = {$plugin.tx_campusfirstextension_project.settings.layout}
plugin.tx_campusfirstextension_project.settings.exampleConstant = {$exampleConstant}
Die Konstanten spricht man, wie du oben sehen kannst, so an, indem man den Namen der Konstante mit {$...} umrahmt.
Darüber hinaus kann der TYPO3 Entwickler Konstanten im Konstanten Editor auslagern. Den Konstanten Editor findest du ebenfalls im Template Modul:
Hier bekommt nun der Redakteur die Möglichkeit, die Konstanten sehr einfach und sicher zu bearbeiten. Es ist sicher, weil auf dieser Art und Weise keine Syntaxfehler in das TypoScript kommen und die Felder so weit konfiguriert werden können, dass nur bestimmte Werte zulässig sind.
Beispiele von Constants Feldtypen
Standardfeld
# cat=plugin.tx_campusfirstextension_project//a; type=string; label=Default storage PID
storagePid =
Ausgabe
Nur Zahlen
# cat=plugin.tx_campusfirstextension_project//a; type=int; label=Default storage PID
storagePid =
Ausgabe
Nur positive Zahlen
# cat=plugin.tx_campussecondextension_project//a; type=int+; label=Default storage PID
storagePid =
Ausgabe
Zahlen mit logischen Segmenten
# cat=plugin.tx_campussecondextension_project//a; type=offset[Country,State,Number]; label=Phone number
phoneNumber =
Ausgabe
Colorpicker
# cat=plugin.tx_campussecondextension_project//a; type=color; label=Color
color =
Ausgabe
HTML Code umschließen (Wrap)
# cat=plugin.tx_campussecondextension_project//a; type=wrap; label=HTML code is wrapped around this content
wrap =
Ausgabe
Liste
# cat=plugin.tx_campussecondextension_project//a; type=options[Layout 1=layout1,Layout 2=layout2,Layout 3=layout3]; label=Choose a layout
layout =
Ausgabe
Checkbox
# cat=plugin.tx_campussecondextension_project//a; type=boolean; label=Enable feature 1
enable =
Ausgabe
Kommentar
# cat=plugin.tx_campussecondextension_project//a; type=comment; label=This is just a comment
comment = Kommentarfeld ist ein boolean mit Werten Leerstring oder #
Ausgabe
Benutzerdefiniertes Feld
Ein benutzerdefiniertes Feld ist ein Feld wo der TYPO3 Entwickler den HTML Code und die Logik für ein Feld selbst definieren kann. Dadurch ist jedes beliebige Feld denkbar.
Constants
# cat=plugin.tx_campussecondextension_project//a; type=user[Slavlee\CampusSecondextension\TypoScript\CustomField\MyCustomField->display]; label=Benutzerdefiniertes Feld
myCustomField =
UserFunc
namespace Slavlee\CampusSecondextension\TypoScript\CustomField;
class MyCustomField
{
public function display(array $params)
{
return '<textarea cols="30" rows="5"></textarea>';
}
}
Ausgabe
Konstanteneditor strukturieren
Der Konstanteneditor lässt sich in 3 Stufen strukturieren, damit der Backendbenutzer sich besser zurechtfindet und der TYPO3 Entwickler logische Konfigurationsparameter gruppieren kann.
Die erste Stufe ist die Kategorie:
Constants
# cat=plugin.tx_campussecondextension_project
Konstanteneditor
die zweite Stufe ist die Unterkategorie:
Constants
# cat=plugin.tx_campussecondextension_project/color/a; type=color; label=Primärfarbe auswählen
primary =
Ausgabe
die dritte und letzte Stufe ist die Reihenfolge innerhalb einer Unterkategorie:
Constants
# cat=plugin.tx_campussecondextension_project/color/b; type=color; label=Sekundärfarbe auswählen
secondary =
# cat=plugin.tx_campussecondextension_project/color/a; type=color; label=Primärfarbe auswählen
primary =
Ausgabe
Kategorien umbenennen und neue Unterkategorien erstellen
Der Kategoriename ist standardmäßig die Bezeichnung die man hinter cat= angibt. Wenn man dort einen anderen Text haben möchte und den beispielsweise in einer Sprachdatei auslagern möchte, dann kann der Entwickler zu Beginn der constants.typoscript folgende Anweisung schreiben:
# customcategory=plugin.tx_campussecondextension_project=LLL:EXT:campus_secondextension/Resources/Private/Language/locallang_typoscript.xlf:plugin.tx_campussecondextension_project
In der Sprachdatei kann dann der entsprechende Text stehen:
<trans-unit id="plugin.tx_campussecondextension_project" resname="plugin.tx_campussecondextension_project">
<source>Campus Second Extension</source>
</trans-unit>
Im Konstanten Editor wird dann der übersetzte Text angezeigt anstatt dem Bezeichner in der Konstante:
Das Gleiche ist für die Unterkategorie möglich:
# customsubcategory=settings=LLL:EXT:campus_secondextension/Resources/Private/Language/locallang_typoscript.xlf:settings
# cat=plugin.tx_campussecondextension_project/settings/a; type=int+; label=Amount of entries per page
entriesCount =
In der Sprachdatei steht dann entsprechende:
<trans-unit id="settings" resname="settings">
<source>Settings</source>
</trans-unit>
Die Anzeige im Konstanten Editor sieht dann wie folgt aus:
Puh! Das war ganz schön viel Inhalt.
Ich danke dir, dass du dieses Tutorial bis zum Ende durchgearbeitet hast. Du weisst jetzt wie mächtig der Konstanten Editor ist und wie du deinen Redakteuren die Möglichkeit geben kannst, Einfluss auf deine Extensions zu nehmen. Du hast gelernt, dass die Eingabe sicher ist und über mehrere Feldtypen definierbar ist. Die Möglichkeit den Konstanten Editor zu strukturieren in dem du deine Parameter in Kategorien und Unterkategorien gruppierst, gibt dir alle Möglichkeiten, dass die Backendbenutzer den Überblick nicht verlieren.
Ich denke, so einfach hast du es noch in keinem anderen CMS gesehen.
Ich wünschte dir viel Spaß mit dem Konstanten Editor.