Mann und Frau schauen auf Monitor mit TYPO3 Logo darauf

PAGEVIEW in TYPO3 v13: FLUIDTEMPLATE nur einfacher

Mit der Version v13 von TYPO3 wurde das neue TypoScript‑ContentObject PAGEVIEW eingeführt – eine echte Vereinfachung für das Seitentemplating. Statt immer dieselben Zeilen TypoScript und komplexe Pfad‑Konventionen zu definieren, gibt PAGEVIEW ein schlankeres Setup vor und richtet einige Dinge automatisch ein. In diesem Beitrag schauen wir uns an, was PAGEVIEW ist, wie es sich von der bisherigen Methode mit FLUIDTEMPLATE unterscheidet, wie man es einsetzt und welche Best‑Practices und Stolperfallen es gibt.

Was ist PAGEVIEW und warum wurde es eingeführt?

PAGEVIEW ist ein neues TypoScript ContentObject, eingeführt ab TYPO3 v13.1.

Hauptziel: die Ausgabe einer kompletten Seite im Frontend mit deutlich weniger Konfigurationsaufwand zu ermöglichen.

Beispiel‑Minimalsetup:

page = PAGE 
page.10 = PAGEVIEW 
page.10.paths.100 = EXT:mysite/Resources/Private/PageView/

Zu den automatischen Features zählen unter anderem:

  • Die automatische Auflösung des gewählten BackendLayouts zur Template‑Datei.
  • Automatische Wiring von Fluid Layouts und Partials (z. B. Layouts/ und Partials/‑Ordner) ohne explizite Konfiguration.
  • Mehr Standard‑Variablen sind im Fluid Template sofort verfügbar:
    • {language} : Das aktuelle SiteLanguage-Objektlocale, Navigationstitel uvm.
    • {page} : Das aktuelle FrontendPageInformation-Objekt – Zugriff auf alle Felder der Seite und auch der Rootline.
    • {settings} : Alle TypoScript-Konstanten – inkl. Einstellungen der Site via site.mysetting.
    • {site} : Das aktuelle Site-Objekt – RootPageId oder Konfigurationen der Site abfragen.

Warum das wichtig ist: In früheren Versionen war das Setup von FLUIDTEMPLATE relativ aufwändig und fehleranfällig – viele Pfade, Bedingungen, Slide‑Funktion, TemplateName‑Auflösung etc. PAGEVIEW glättet viele dieser Stolpersteine.

Eine Einführung zu dem Thema gab es auch bei den TYPO3 Developer Days 2024 (siehe Video ab der 25. Minute).

Info Icon

Dieses Video wird über eine externe Plattform (YouTube) gehostet. Das Laden bedarf der Zustimmung unserer Datenschutzbestimmungen.

Einstellung vornehmen

Unterschiede zu FLUIDTEMPLATE

Wenn du bereits mit FLUIDTEMPLATE gearbeitet hast, wirst du einige Unterschiede bemerken.

Konfiguration

Bei FLUIDTEMPLATE war häufig erforderlich:

  • templateRootPaths, partialRootPaths, layoutRootPaths definieren.
  • Dynamische Ermittlung der Template‑Datei anhand BackendLayout oder anderen Bedingungen (z. B. levelfield:-2,backend_layout_next_level,slide).
  • Einbindung von Variablen, dataProcessing u. v. m.

Oberhalb hatten wir ein Beispiel mit 3 Zeilen TypoScript für die PAGEVIEW. Mit FLUIDTEMPLATE sind folgende Zeilen notwendig, um dasselbe zu erreichen:

page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
 templateName {
    data = pagelayout
    split {
      token = pagets__
      1.current = 1
      1.wrap = |
    }
    case = ucfirst
  }
  templateRootPaths {
    10 = EXT:mysite/Resources/Private/PageView/Pages/
  }
  partialRootPaths {
    10 = EXT:mysite/Resources/Private/PageView/Partials/
  }
  layoutRootPaths {
     10 = EXT:mysite/Resources/Private/PageView/Layouts/
  }
  variables {
    rootPageId = TEXT
    rootPageId.data = site:rootPageId
    myTyposcriptConstant = TEXT
    myTyposcriptConstant.value = {$myTyposcriptConstant}
    locale = TEXT
    locale.data = siteLanguage:locale
  }
}

Die in PAGEVIEW verfügbaren Variablen über TypoScript in FLUIDTEMPLATE selbst mitzugeben ist hier nur angedeutet. In FLUIDTEMPLATE sind die Felder des pages-Datensatzes via {data} erreichbar. Es bleibt festzuhalten, das wesentlich mehr TypoScript notwendig ist, für die selbe Ausgabe.

Bei PAGEVIEW hingegen:

  • Die Pfadstruktur ist standardisiert: z. B. Resources/Private/PageView/Pages/, Partials/, Layouts/.
  • Weniger TypoScript‑Code nötig, da viele Konventionen greifen.
  • Dennoch behält man die Flexibilität – bei Bedarf kann man weiterhin dataProcessing, Variablen, Pfade etc. erweitern.

Wann sollte man noch FLUIDTEMPLATE nutzen?

Wenn dein Projekt extrem individuelle Anforderungen stellt – etwa: sehr komplexe Logik zur Template‑Auswahl, mehrere Layout‑Stufen, Legacy Umgebung – dann kann FLUIDTEMPLATE weiterhin sinnvoll sein. PAGEVIEW ist ideal für moderne Site‑Packages mit klarer Struktur.

Praktischer Einstieg: So setzt du PAGEVIEW auf

Hier eine Schritt‑für‑Schritt Anleitung, wie du PAGEVIEW in deinem Site‑Package einsetzt.

1. TypoScript Setup

In deiner Configuration/TypoScript/setup.typoscript:

page = PAGE
page {
  10 = PAGEVIEW
  10 {
    paths {
      100 = EXT:my_sitepackage/Resources/Private/PageView/
    }
    variables {
      parentPageTitle = TEXT
      parentPageTitle.data = levelfield:-1,title
    }
    dataProcessing {
      10 = page-content
      20 = menu
      20.as = mainMenu
    }
  }
}

2. Ordnerstruktur im Site‑Package

Leg dein Site‑Package so an:

my_site_package/
├── Resources/
│   └── Private/
│       └── PageView/
│           ├── Pages/
│           │   └── Default.html
│           ├── Partials/
│           └── Layouts/
└── Configuration/
    └── TypoScript/
        └── setup.typoscript

Die Pages/‑Ordner enthält je BackendLayout eine Template‑Datei (z. B. „WithSidebar.html“, „Default.html“).

3. Fluid Template Beispiel

In Resources/Private/PageView/Pages/Default.html kannst du z. B.:

<html lang="{site.language.twoLetterIsoCode}">
<f:layout name="Default" />
<f:section name="Main">
  <div class="container">
    <header>
      <f:render partial="Header" />
    </header>
    <main>
      <h1>{page.title}</h1>
      <f:cObject typoscriptObjectPath="lib.content.main" />
    </main>
    <footer>
      <f:render partial="Footer" />
    </footer>
  </div>
</f:section>
</html>

Dieses Template wird angesteuert, wenn es entsprechend im Backend in den Seiteneinstellungen ausgewählt wurde.

TYPO3 Backend mit Seiteneinstellung Backend Layout zur Verwendung im PAGEVIEW Objekt

Wurde kein Backend-Layout gefunden, wird auch die Default.html als Template-Datei verwendet.

4. Migration von älteren Seiten

Wenn du von einem Setup mit FLUIDTEMPLATE kommst, brauchst du typischerweise folgende Anpassungen:

  • Ersetze page.10 = FLUIDTEMPLATE durch page.10 = PAGEVIEW.
  • Entferne oder vereinfach Pfad‑Konfigurationen (templateRootPaths etc.).
  • Sorge dafür, dass deine Ordnerstruktur der PAGEVIEW‑Konvention entspricht.

Best Practices & Tipps für PAGEVIEW

Damit dein PAGEVIEW‑Setup sauber, wartbar und performant bleibt, hier einige Empfehlungen:

  • Halte die Pfad‑ und Template‑Struktur konsistent: z. B. „Pages/Default.html“, „Pages/WithSidebar.html“ etc.
  • Nutze Variables und dataProcessing gezielt – PAGEVIEW bietet zwar Vereinfachung, ersetzt aber nicht alle individuellen Anforderungen.
  • Verwende sinnvolle BackendLayouts, damit automatisch die passende Template‑Datei geladen wird.
  • Bedenke Caching: PAGEVIEW unterstützt Cache‑Eigenschaften wie jedes andere ContentObject (z. B. cache‑Eigenschaft).
  • Dokumentiere für dein Team: Wo Templates liegen, wie Namenskonventionen sind – damit künftige Entwickler nicht suchen müssen.
  • Teste mit verschiedenen BackendLayouts und Site‑Sprachen, um sicherzugehen, dass das Fallback‑Verhalten funktioniert (z. B. wenn kein Layout gesetzt ist, wird „Default.html“ geladen).

Mögliche Stolperfallen

Ein paar Dinge, auf die du beim Einsatz von PAGEVIEW achten solltest:

  • Wenn die Template‑Datei nicht gefunden wird (z. B. bei „none“ oder unbekanntem BackendLayout), wird eine Fallback‑Logik verwendet – stelle sicher, dass Default‑Dateien vorhanden sind.
  • Falls du sehr individuelle Logiken brauchst (z. B. mehrere Layout‑Pfad‑Varianten oder stark unterschiedliche Seitentypen), könnte das standardisierte PAGEVIEW‑Setup zu beschränkt sein – dann ist FLUIDTEMPLATE eventuell besser.
  • Achte darauf, dass dein Site‑Package die richtigen TypoScript‐Includes enthält und die paths‑Konfiguration korrekt ist – sonst drohen Fehler bei der Template‐Auflösung.

Bereit für PAGEVIEW?

Mit PAGEVIEW macht TYPO3 v13 einen großen Schritt in Richtung einfacherer und strukturierterer Seiten‑Templating‑Prozesse. Für neue Projekte oder saubere Site‑Packages bietet es eine klare, wartbare und schlanke Lösung. Natürlich bleibt FLUIDTEMPLATE bestehen und ist weiterhin sinnvoll bei individuellen Anforderungen — aber für viele Use‑Cases ist PAGEVIEW die erste Wahl.

Wenn du also dein Site‑Package neu aufsetzt oder überarbeitest, lohnt sich ein Blick auf PAGEVIEW – es spart Zeit, reduziert Komplexität und fördert klare Strukturen. Hast du Erfahrungen mit dem PAGEVIEW-Objekt oder Fragen, hinterlasse uns gerne einen Kommentar.

Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert