T3 Campus T3 Campus

Inhaltselemente auslagern und mehrfach einbinden

Ich zeige dir wie du wiederholende Elemente, wie das Copyright und Logo, zentral speichern und mit TypoScript so zur Verfügung stellst, das man es mehrfach einbinden kann.

In TypoScript kann man beliebige Objekte erstellen und speichern. Diese gespeicherten Stellen nennt man auch Typoscriptpfade. Jeder dieser Pfade kann ein TYPO3 Entwickler über ein ViewHelper ausführen.

Darüberhinaus gibt es in TypoScript zu fast jeden Problem bzw. zu jeder Aufgabe ein passendes TypoScript Objekt.

Das können wir uns zur Nutze machen und Inhaltselemente auslagern. Diese können dann vom Redakteur einfach bearbeitet werden.

Das ist nützlich, um Inhalte, die nahe am Template sind, wie das Copyright oder Logo, dem TYPO3 Redakteur zur Verfügung zu stellen.

Denkbar wäre auch, dass es Elemente gibt, die beispielsweise in einem Sidewidget auf mehreren Seiten eingebunden werden, zentral zu pflegen.

Copyright auslagern

Es ist sehr ineffizient, wenn man Textänderungen dem TYPO3 Entwickler überlässt. Du kennst es vielleicht, das jährliche Umstellen des Copyright Jahres. Dabei kann das der Redakteur selbst und in TYPO3 geht das ganz einfach.

Wir erstellen ein neues TypoScript - Objekt, welches die Referenz eines Inhaltselementes enthält. Dafür gibt es das TypoScript - Objekt: RECORDS.

Für Elemente, die wir zentral speichern, gibt es in TypoScript die Konvention das unter dem Typoscriptpfad: lib abzulegen.

lib.copyright = RECORDS
lib.copyright {
  tables = tt_content
  source = 1
  dontCheckPid = 1
}

Das wars!

Einfacher geht es wirklich nicht!

Was passiert hier?

Das TypoScript - Objekt: RECORDS hat für uns 3 zentrale Eigenschaften:

tables Name der Datenbanktabelle in der die Inhalte stehen
source ID des Datensatzes. Datenbankspalte muss uid heissen
dontCheckPid Dadurch wird der Inhalt auf allen Seiten gesucht und nicht nur auf der aktuellen Seite

Der Knackpunkt für die zentrale Speicherung ist die Eigenschaft: dontCheckPid. Wie du es schon im Basiskurs vom TYPO3 Redakteur in dem 2. Schritt gelernt hast, ist jeder Inhalt in TYPO3 einer Seite zugeordnet.

Das bedeutet auch, dass standardmäßig jede Abfrage auf Inhalte die Prüfung auf die sogenannte PID, also ID der TYPO3 Seite, stattfindet. Oder mit anderen Worten, es werden standardmäßig nur Inhalte gesucht, die der aktuellen Seite zugeordnet sind. Wenn es keine aktuelle Seite im Kontext gibt, dann wird die Suchabfrage mit pid = 0 abgeschickt. 0 würde dann für den ROOT der Seitenbaum gelten.

ROOT des Seitenbaums in TYPO3

Alle Inhalte auf einer Seite auslesen

Der zweite Anwendungsfall ist es, wenn man ein Sidewidget einbinden möchte. Man kann das Sidewidget als Element bauen und es einer Inhaltsspalte zuordnen.

Aber was ist, wenn es auf jeder Seite eingebunden werden soll?

Dann könnte man dieses Element als Referenz auf jeder Seite setzen und hat auch so eine zentrale Speicherung erreicht.

Das ist jedoch umständlich und zeitaufwendig. Besser ist es, wenn man dem TYPO3 Entwickler ein Typoscriptpfad gibt, wo diese Elemente referenziert werden.

Natürlich geht das mit  TypoScript mit wenigen Zeilen Code. Das zentrale Objekt ist dafür CONTENT.

lib.widgets.exampleWidget = CONTENT
lib.widgets.exampleWidget {
  table = tt_content
  select {
    pidInList = <Seiten - ID>
    where = colPos = 0
    orderBy = sorting
  }
  renderObj = < tt_content
}

Für diese Aufgabe nutzen mit 3 Eigenschaften des CONTENT - Objektes. 

table Name der Datenbanktabelle, wo die Inhalte stehen
select Konfiguration der SELECT - Anweisung
select.pidInList Liste von Seiten-IDs auf denen diese Inhalte stehen
select.where Eingrenzung der Datenbankabfrage, hier auf der Inhaltsspalte = 0 (Hauptinhaltsspalte)
select.orderBy Sortierung der Inhaltselemente, hier nach der TYPO3 Sortierungsspalte
renderObj Objekt der die Inhalte rendert, hier das TYPO3 Standardobjekt für Inhalte

Du siehst wie mächtig TypoScript ist und wieviel Macht es einem TYPO3 Integrator gibt. Dadurch ist das TYPO3 CMS sehr gut für komplexe Webseiten geeignet und die Arbeit in größeren Teams. Aufgaben lassen sich wirklich sehr gut auf TYPO3 Redakteure, Integrator und Entwickler aufteilen.

Bereit mehr zu lernen?

Dann komme in meine TYPO3 Onlineschule

Als Mitglied des T3 Campus für TYPO3 Schulungen erhältst du eine einzigartige Lernplattform, um professionelle Webseiten mit TYPO3 zu erstellen. Egal, ob du ein Einsteiger, Umsteiger oder bereits erfahren bist – hier findest du die passenden Lernvideos für dich.

Kevin Chileong Lee

Gründer vom T3 Campus, TYPO3 Experte mit 10+ Jahren Erfahrung, TYPO3 Liebhaber.

Ich helfe dir dabei, deine Projekte in TYPO3 umzusetzen.

Insbesondere für TYPO3 Einsteiger biete ich zahlreiche kostenfreie Tutorials und kostenpflichtige Kurse rund um TYPO3 an.
Damit kannst du in wenigen Tagen auch ohne Vorkenntnisse deine erste TYPO3 Webseite erstellen und Erweiterungen programmieren.

Auf meinem YouTube-Kanal findest du viele praktische Beispiele und Videotutorials als auch allgemein Videos zu diversen TYPO3 Themen.

Neber den TYPO3 Tutorials und Kopiervorlagen, schreibe ich auch Artikel auf meinem Blog über diverse Themen und Fragen, die die meisten TYPO3 Einsteiger, haben.

Falls du ein TYPO3 Coaching suchst, dann stehe ich dir in einer 1:1 Trainingssession zur Verfügung.

Wenn du auf dem Laufenden sein möchtest über meine Projekte, dann abonniere den Newsletter.