Override.ini – Möge die Macht mit dir sein!

Wie schon Meister Yoda meinte – Möge die Macht mir dir sein! Ich bin mir sicher, er meinte damit die eZ Macht 🙂
Durch Zufall ist mir in den letzten Tagen eine sehr mächtige Erkenntnis  zum Thema Override untergekommen.
Diese möchte ich euch heute näher bringen.

Grundlage:

Für was braucht man die override.ini eigentlich?
Jeder der mit eZ Publish anfängt, wird schnell über diese Datei stolpern, vorausgesetzt er hält sich an das Code Konzept. Die override.ini bietet dem Entwickler die Möglichkeit, Einstellungen zu tätigen, die für den Template-Aufruf zum Beispiel pro Klasse enorm wichtig sind. Nehmen wir z.B. mal das full.tpl her. Dieses Template ist für die Detailansicht einer Klasse zuständig. Jede Seite hat eines. Nun ist es aber so, dass man pro Klasse ein eigenes full.tpl braucht. Das stellt man am besten in der override.ini ein.

Unser Beispiel – ein Artikel:

# Example syntax
[article]
Source=node/view/full.tpl
MatchFile=article.tpl
Subdir=templates
Match[class_identifier]=article

Beschreibung:

[article] Eindeutige Bezeichnung kann man auch XY bennen 😉
Source Ursprungstemplate (in diesem Fall das full.tpl)
MatchFile Mit welchen Template das full.tpl überschrieben wird /override/full/article.tpl
muss man in seiner Erweiterung anlegen
Subdir Verzeichnis – sollte man gleich lassen
Match[class_identier] Auf welche Klasse diese Regel zutrifft

Match – Möge die Macht mit dir sein

Unter dem Punkt match liegt die Macht begraben. Wenn man sich die Dokumentation von eZ Publish mal genau anschaut, findet man die folgenden Einstellungen. Alle diese sind genial und man braucht sie sehr oft.

object Matches the ID number of the object.
node Matches the ID number of the node.
parent_node Matches the ID number of the parent node.
class Matches the ID number of the class which the object is an instance of.
class_identifier Matches the identifier of the class which the object is an instance of.
view_offset Matches the offset view parameter.
depth Matches the depth of the node. The depth of a top level node is 1.
section Matches the number of the section which the object belongs to.
navigation_part_identifier Matches the identifier of the navigation part.
viewmode Matches the name of the view mode (full, line, etc.)
url_alias Matches the virtual URL of the node.
class_group Matches the ID number of the group that the class which the object is an instance of belongs to.

Doch halt! Es gibt auch Einstellungen die nicht dokumentiert sind.

  • section_identifier
  • state_identifier
  • state

Besonders die letzten beiden hätte ich schon oft benötigt, denn die Zustände sind ein wichtiges Instrument für die Personalisierung in eZ Publish. Wäre ich da mal früher drauf gekommen.

Fazit:

Mit der override.ini lassen sich Templates auf NodeID, ObjectID, Klassen, URLs und Zustände aufrufen, einfach genial. 🙂 🙂  Der Vorteil für den Entwickler: er braucht keine Includes und kann alle Templates pro Siteaccess nochmals überschreiben.

Links:

David Hohl

Seit 1995 Entwickler und Projektleiter. Langjährige Erfahrung mit eZ Publish. War von 2012 bis 2014 bei silver.solutions als Entwickler, Konzeptionen und Projektleiter für eZ Publish Projekte verantwortlich.

Schreibe einen Kommentar

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