Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

Template-Auflösung: Designs und Overrides

Wie Exponential entscheidet, welche Template-Datei eine Ansicht rendert - die Design-Kette eines Siteaccess, Designs von Erweiterungen, die Ressource design:, Regeln in override.ini, die nach Klasse, Knoten, Bereich…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/web-framework-developers/template-resolution-designs-and-overrides.md

On this page

This page is a translation. Read the English original

Template-Auflösung: Designs und Overrides

Diese Seite richtet sich an Entwickler, die die Template-Pfade und Namespaces von Twig, die View-Pfade und Vendor-Overrides von Laravel oder die Template-Loader von Django kennen. Exponential löst einen Template-Namen wie design:node/view/full.tpl in zwei Schritten auf: zuerst über eine Design-Kette (einen Stapel von Verzeichnissen), dann über Override-Regeln, die die Datei je nach dem, was gerendert wird, austauschen können.

Inhalt

  1. Die Design-Kette
  2. Override-Regeln
  3. Im Vergleich mit anderen Frameworks
  4. Wohin Ihre Templates gehören
  5. Herausfinden, welche Datei gerendert hat

Die Design-Kette

Ein Design ist ein Verzeichnis mit Templates, Stylesheets und Bildern. Ein Siteaccess benennt seine Designs in site.ini [DesignSettings]: SiteDesign, AdditionalSiteDesignList[] und StandardDesign (standard). Erweiterungen fügen ihre Design-Verzeichnisse mit design.ini [ExtensionSettings] DesignExtensions[] hinzu. eZTemplateDesignResource (kernel/common/eztemplatedesignresource.php) baut die Kette auf, zuerst die Design-Verzeichnisse der Erweiterungen, dann design/<design>/; das erste Verzeichnis, das die Datei enthält, gewinnt (Design- und Override-System, Designs und die Fallback-Kette).

Override-Regeln

override.ini (die des Siteaccess und die jeder Erweiterung) enthält eine Gruppe pro Regel:

[node/view/full#ng_article]
Source=node/view/full.tpl
MatchFile=node/view/full/full_ng_article.tpl
Subdir=templates
Match[class_identifier]=ng_article
Priority=1

Wenn node/view/full.tpl für ein Objekt der Klasse ng_article geholt wird, wird stattdessen die Datei override/templates/node/view/full/full_ng_article.tpl aus der Design-Kette verwendet. Die erste Regel, deren Bedingungen alle zutreffen, gewinnt; ist Priority angegeben, werden die Regeln danach sortiert (niedrigere zuerst) (Ressourcen und Overrides, Reihenfolge von Template-Overrides).

Die Match-Schlüssel setzt derjenige, der rendert: content/view setzt die Schlüssel des Knotens (class_identifier, node, parent_node, section, url_alias, depth, viewmode, state und weitere); node_view_gui setzt sie pro Element, sodass eine Liste jedes Kind mit dem Zeilen-Template seiner Klasse rendern kann. Eine eigene View kann mit eZTemplateDesignResource::instance()->setKeys() Schlüssel hinzufügen.

Im Vergleich mit anderen Frameworks

Idee im FrameworkExponential
Template-Pfade, die der Reihe nach durchsucht werdendie Design-Kette
Bundle-Templates, überschrieben in templates/bundles/<Bundle>/ (Symfony), resources/views/vendor/ (Laravel)derselbe Dateiname in einem Design weiter vorn in der Kette
Theme-VererbungAdditionalSiteDesignList[] mit Fallback auf standard
Ein Template pro Inhaltstyp im Controller wähleneine Override-Regel, die auf class_identifier greift
Template-Auswahl durch einen View-Resolver (Spring)die Design-Ressource mit Override-Regeln
{% extends %} und Blöckekeine Entsprechung; ganze Templates werden überschrieben, gemeinsame Teile eingebunden

Wohin Ihre Templates gehören

TemplatesOrt
Die Views Ihres Modulsextension/<ext>/design/standard/templates/<ext>/..., mit DesignExtensions[]=<ext>
Overrides für das Design einer Siteextension/<site>/design/<design>/override/templates/... plus Regeln in override.ini.append.php
Administrationsseitendie Administrationsdesigns, nach den Gestaltungsregeln für die Administration (admin4-Gestaltung)

Bearbeiten Sie niemals design/standard/ oder die Administrationsdesigns des Kernels: Überschreiben Sie stattdessen, damit Updates Ihre Änderungen nicht überschreiben.

Herausfinden, welche Datei gerendert hat

  • Template-Pfadkommentare geben den Dateinamen rund um die Ausgabe jedes Templates aus (Template-Pfadkommentare).
  • Die Debug-Leiste listet die auf einer Seite verwendeten Templates auf (Exp-Debug-Leiste).
  • Leeren Sie nach dem Hinzufügen einer neuen Template-Datei den Cache template-override; sonst bleibt die alte Auflösung zwischengespeichert (Template-Caches).

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x