T3 Campus T3 Campus

PAGE nutzen um JSON und XML Formate auszugeben

In TYPO3 ist es sehr einfach das Ausgabeformat zu konfigurieren. Ebenso einfach ist es zwischen diese Ausgabeformate zu wechseln.

Das PAGE - Objekt ist ein zentrales TypoScript Objekt. Das hast du vielleicht schon in deiner Ausbildung zum TYPO3 Integrator auf dem T3 Campus gelernt.

In einer TYPO3 Installation muss es mindestens ein PAGE Objekt mit typeNum - Wert 0 geben. Dieses PAGE Objekt regelt die HTML Ausgabe in TYPO3. Glücklicherweise zielen alle Startwerte vom PAGE - Objekt auf eine HTML Ausgabe, so daß minimale Konfigurationsaufwand notwendig ist, damit im Frontend ein HTML Dokument zurückgeliefert wird.

Der typeNum - Wert grenzt die PAGE Objekte voneinander ab und so lassen sich beliebig viele PAGE - Objekte definieren. Jedes PAGE Objekt kann dann völlig andere Inhalte und Ausgabeformate haben. Der typeNum - Wert ist mit dem Requestparameter type ansteuerbar.

Diese Kombination liefert uns eine einfache und mächtige Option bei der Webseitengestaltung in TYPO3. So können wir mit der Konfiguration von 3 PAGE - Objekte zwischen 3 verschiedene Ausgabeformate mittels Link wechseln.

Wo geht das noch so einfach?

Das einfachste PAGE Objekt für eine HTML Ausgabe ist:

page = PAGE
page {
  10 = TEXT
  10.value = <h1>Mein erstes HTML Dokument</h1>
}

Damit erreiche ich schon, dass im Frontend ein HTML5 Dokument gerendert wird mit einer H1 - Überschrift.

Dazu können wir parallel ein zweites PAGE - Objekt definieren:

pageXML = PAGE
pageXML {
  typeNum = 1
  
  config {
      disableAllHeaderCode = 1
      additionalHeaders.10.header = Content-type:application/xml
      xhtml_cleaning = 0
      admPanel = 0
   }

  10 = TEXT
  10.value = <?xml version = "1.0"?><root><h1>Mein erstes XML Dokument</h1></root>
}

In diesem zweitem PAGE - Objekt müssen wir uns vom ersteren abgrenzen. Das geschieht zum einen durch eine andere TypoScript Variable (pageXML) und zum anderen durch einen anderen typeNum - Wert. Der Konfigurationsteil unterhalb von config dient dazu, aus der standardmäßigen HTML Ausgabe eine XML Ausgabe zu machen. Wir unterdrücken den HTML5 Teil, der automatisch eingebunden wird mit disableAllHeaderCode und wechseln den Content Type auf application/xml - das wars!

Um die XML Ausgabe zu bekommen, reicht es die TYPO3 Seite mit dem Requestparameter: ?type=1 aufzrufen.

Auf dieser Weise können wir auch ein JSON Format definieren:

pageJSON = PAGE
pageJSON{
  typeNum = 2
  
  config {
      disableAllHeaderCode = 1
      additionalHeaders.10.header = Content-type:application/json
      xhtml_cleaning = 0
      admPanel = 0
   }

  10 = TEXT
  10.value = {h1: 'Mein erstes JSON - Dokument'}
}

Du siehst TYPO3 macht es uns sehr einfach die Ausgabeformate zu konfigurieren. Das PAGE - Objekt lässt sich so auch nutzen, um andere Templates anzusteuern oder die Ausgabe auf einige wenige Extensions zu begrenzen.

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.