FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.
In TYPO3 v13 hat das Core Team ein brandneues ContentObject namens PAGEVIEW eingeführt. Dieses Feature wurde entwickelt, um das Rendering von Seiten einfacher als je zuvor zu gestalten, insbesondere für TYPO3-Integratoren, die einen schnellen und effizienten Weg zur Darstellung von Inhalten suchen, ohne sich mit der umfangreichen Konfiguration von Vorlagen beschäftigen zu müssen. Was PAGEVIEW bietet, wie es sich vom bestehenden FLUIDTEMPLATE cObject unterscheidet und warum es für viele TYPO3-Projekte eine große Bereicherung sein kann, wird im Folgenden erläutert.
Was ist PAGEVIEW und warum ist es so wichtig?
PAGEVIEW ist ein vereinfachtes ContentObject, das sich auf das Rendern einer vollständigen TYPO3 Frontend Seite mit minimalem Overhead konzentriert. Es hilft, die typischerweise langen Typoscript-Konfigurationen zu reduzieren, die der FLUIDTEMPLATE Ansatz erfordert. Wenn Ihre Seite keine komplexe Layout-Logik benötigt, kann PAGEVIEW die schwere Arbeit mit weniger Konfigurationszeilen erledigen.
Wichtigsten Vorteilen von PAGEVIEW gehören:
- Weniger Zeilen Typoscript, die für das Rendering der Seite benötigt werden.
- Schnelle Einrichtung für Projekte mit grundlegenden oder standardisierten Templating Anforderungen.
- Geradlinige Syntax, die leicht zu übernehmen ist, wenn Sie mit den bestehenden Typoscript-Mustern vertraut sind.
Vergleich zwischen FLUIDTEMPLATE und PAGEVIEW
Vor PAGEVIEW haben TYPO3 Integratoren oft FLUIDTEMPLATE verwendet, um individuelle Seitenlayouts zu erstellen. Obwohl FLUIDTEMPLATE extrem leistungsfähig und flexibel ist, kann es sich "schwer" anfühlen, wenn Sie nur einen einfachen Rendering Flow benötigen.
Ein typisches FLUIDTEMPLATE Setup könnte die Definition von:
- Wurzelpfade für Template
- Partielle Wurzelpfade
- Layout Wurzelpfade
- Mehrere Variablen und Daten verarbeitung
- Bedingte Typoscript Logik für die Auswahl von Template
Bei kleinen bis mittelgroßen Projekten kann dies zu einer Menge sich wiederholender Konfigurationen führen.
Im Gegensatz dazu kanneine PAGEVIEW Einrichtung schnell eine Seite mit minimalem Code erzeugen. Hier ist der Unterschied in der Praxis:
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
templateName = TEXT
templateName {
stdWrap {
cObject = TEXT
cObject {
data = levelfield:-2, backend_layout_next_level, slide
override {
field = backend_layout
}
split {
token = pagets__
1 {
current = 1
wrap = |
}
}
}
ifEmpty = Standard
}
}
templateRootPaths {
100 = {$plugin.tx_yoursite.paths.templates}
}
partialRootPaths {
100 = {$plugin.tx_yoursite.paths.partials}
}
layoutRootPaths {
100 = {$plugin.tx_yoursite.paths.layouts}
}
variables {
pageUid = TEXT
pageUid.data = page:uid
pageTitle = TEXT
pageTitle.data = page:title
pageSubtitle = TEXT
pageSubtitle.data = page:subtitle
parentPageTitle = TEXT
parentPageTitle.data = levelfield:-1:title
}
dataProcessing {
10 = menu
10.as = mainMenu
}
}
}
page = PAGE
page {
10 = PAGEVIEW
10 {
paths {
100 = {$plugin.tx_yoursite.paths.templates}
}
variables {
parentPageTitle = TEXT
parentPageTitle.data = levelfield:-1:title
}
dataProcessing {
10 = menu
10.as = mainMenu
}
}
}
Mit PAGEVIEW erreichen wir ein vergleichbares Ergebnis in weniger Zeilen, was die Pflege und Anpassung im Laufe der Zeit erleichtert.
Erste Schritte mit PAGEVIEW
Die Implementierung von PAGEVIEW ist ganz einfach. Im Folgenden finden Sie ein minimales Beispiel, das Ihnen den Einstieg erleichtert:
page = PAGE
page.10 = PAGEVIEW
page.10.paths.100 = EXT:mysite/Resources/Private/Templates/
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
templateName = TEXT
templateName {
stdWrap {
cObject = TEXT
cObject {
data = levelfield:-2, backend_layout_next_level, slide
override {
field = backend_layout
}
split {
token = pagets__
1 {
current = 1
wrap = |
}
}
}
ifEmpty = Standard
}
}
templateRootPaths {
100 = {$plugin.tx_yoursite.paths.templates}
}
partialRootPaths {
100 = {$plugin.tx_yoursite.paths.partials}
}
layoutRootPaths {
100 = {$plugin.tx_yoursite.paths.layouts}
}
variables {
pageUid = TEXT
pageUid.data = page:uid
pageTitle = TEXT
pageTitle.data = page:title
pageSubtitle = TEXT
pageSubtitle.data = page:subtitle
parentPageTitle = TEXT
parentPageTitle.data = levelfield:-1:title
}
dataProcessing {
10 = menu
10.as = mainMenu
}
}
}
- Konfigurieren das PAGE-Objekt wie gewohnt.
- Weisen PAGEVIEW Ihrem Seitenobjekt zu.
- Legen die Pfade fest, um PAGEVIEW mitzuteilen, wo sich Ihre Vorlagendateien befinden.
Profi-Tipp: Wenn Ihr Projekt unterschiedliche Layouts für verschiedene Seitentypen benötigt, können Sie PAGEVIEW noch erweitern, indem Sie weitere Typoscript-Bedingungen oder dynamische Pfade hinzufügen. Vermeiden Sie es jedoch, PAGEVIEW zu sehr zu verkomplizieren - wenn Sie komplexe Logik schreiben müssen, ist FLUIDTEMPLATE möglicherweise besser geeignet.
Bewährte Praktiken für Verwendung von PAGEVIEW
- Halten Sie es einfach: PAGEVIEW ist ideal für unkomplizierte Seitenvorlagen. Wenn Sie ein erweitertes Routing und eine dynamische Templating-Logik benötigen, sollten Sie FLUIDTEMPLATE oder ein hybrides Setup in Betracht ziehen.
- Nutzen Sie die Datenverarbeitung: Die Datenverarbeitung in PAGEVIEW wird weiterhin unterstützt, so dass Sie Menüs oder andere dynamische Daten ohne umfangreiches Typoscript einfügen können.
- Fokus auf Wartung: Da PAGEVIEW-Setups übersichtlicher sind, ist es einfacher, Probleme zu beheben. Halten Sie Ihr Typoscript für künftige Entwickler gut dokumentiert.
- Konsistenz ist wichtig: Verwenden Sie konsistente Namenskonventionen für Variablen und Pfade, so wie Sie es bei FLUIDTEMPLATE tun würden.
page = PAGE
page {
10 = PAGEVIEW
10 {
paths {
100 = {$plugin.tx_yoursite.paths.templates}
}
variables {
parentPageTitle = TEXT
parentPageTitle.data = levelfield:-1:title
}
dataProcessing {
10 = menu
10.as = mainMenu
}
}
}
Wann bei FLUIDTEMPLATE bleiben sollten
Es gibt Szenarien, für die FLUIDTEMPLATE nach wie vor besser geeignet ist:
- Komplexe Websites mit mehreren Layouts, die eine erweiterte Logik für die Vorlagenauswahl erfordern.
- Stark angepasste Inhalte, die auf tiefgreifende benutzerdefinierte Variablen oder dynamische Daten angewiesen sind, die über die typische Datenverarbeitung hinausgehen.
- Legacy-Codebasen, die bereits tief in FLUIDTEMPLATE-Setups integriert sind.
In solchen Fällen bietet FLUIDTEMPLATE robuste Funktionen, auf die PAGEVIEW der Einfachheit halber bewusst verzichtet.
Schlussfolgerung
Die Einführung von PAGEVIEW in TYPO3 v13 ist ein Schritt hin zu einer effizienteren Website-Entwicklung für Integratoren, die einen schnellen, sauberen Template-Ansatz benötigen. Wenn Ihre Website nicht den hohen Aufwand von FLUIDTEMPLATE erfordert, ist PAGEVIEW definitiv eine Überlegung wert. Mit nur wenigen Zeilen Typoscript können Sie voll funktionsfähige Seiten erstellen und gleichzeitig Ihre Konfiguration übersichtlich halten.
Sind Sie bereit, Ihr TYPO3-Setup zu optimieren? Probieren Sie PAGEVIEW aus und Sie werden sehen, wie viel Zeit (und Code) Sie damit sparen können. Es ist ein weiteres Beispiel dafür, wie sich TYPO3 weiterentwickelt, um den Bedürfnissen der Community gerecht zu werden - mit dem Fokus auf Benutzerfreundlichkeit, ohne dabei die gewohnte Leistungsfähigkeit und Flexibilität zu opfern.
Wenn Sie Fragen zu PAGEVIEW oder anderen TYPO3-Funktionen haben, lassen Sie es mich bitte wissen.
Viel Spaß beim TYPO3-Codieren!
Sanjay Chauhan
CTO - T3Planet & NITSANSanjay Chauhan, Mitbegründer von NITSAN (Preisgekrönte TYPO3 Agentur ) und Pionier von T3Planet, dem ersten TYPO3 Shop weltweit. Ein wahrer TYPO3-Fanatiker seit 2010. Mit meinem umfangreichen technischen Wissen und…
More From Author