PAGEVIEW vs. FLUIDTEMPLATE: Ein optimierter Ansatz in TYPO3 v13

PAGEVIEW vs. FLUIDTEMPLATE: Ein optimierter Ansatz in TYPO3 v13

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.

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.

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.

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/

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.

  • 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)

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
        }
    }
}

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!

Your One-Stop Solutions for Custom TYPO3 Development

  • A Decade of TYPO3 Industry Experience
  • 350+ Successful TYPO3 Projects
  • 87% Repeat TYPO3 Customers
TYPO3 Service
service

Post a Comment

×