PAGEVIEW vs. FLUIDTEMPLATE: Ein optimierter Ansatz in TYPO3 v13

PAGEVIEW vs. FLUIDTEMPLATE: Ein optimierter Ansatz in TYPO3 v13

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. So entsteht ein optimierter Ansatz für Seitenlayouts.

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.

Die Implementierung von PAGEVIEW ist ganz einfach. Im Folgenden finden Sie ein minimales Beispiel, das Ihnen den Einstieg erleichtert:

60 Zeilen Code (mit FLUIDTEMPLATE)

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.

Souveräne TYPO3 KI

AI Foundation Symbol

AI Foundation für TYPO3T3AF

Die Basis, auf der jede Erweiterung läuft. Anbieter, Prompts, Berechtigungen und Kosten verwalten Sie an einer Stelle.

Kostenlos installieren
  • 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.

20 Zeilen Code (mit PAGEVIEW)

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.

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!