Angepasst an das spezielle Templatekonstrukt und die inhaltliche Struktur eines Mandanten ist beim "fragmentiertem Caching" individuell d.h. für jede Ebene diejenigen Regeln zu definieren, welche atomaren Templates im Cache zu speichern sind und welche Ereignisse eine Aktualisierung der gecacheten Inhalte auslösen müssen.
Es lassen sich in diesem Zusammenhang zwei Typen von Templates unterscheiden:

Typ I: Template ab diesem Knoten für kompletten Teilbaum identisch

SNAG-002_ger.gif

Beispiel: bodyTop_Channels
Die Channel-Navigation mit den Drop-Down Menüs im Seitenkopf ist für alle Seiten der Site identisch.

Typ II: Template für jeden Knoten des Teilbaums individuell

SNAG-001_ger.gif

Beispiel: bodyContent_Macronavigation
Die Makro-Navigation im linken Seitenrand ist für jede Seite individuell unterschiedlich.

Konfiguration

Die Konfiguration des fragmentierten Cache wird über eine cache.conf DTML-Methode vorgenommen, die auf jeder Ebene des Content-Baums abgelegt und über manage_system erreicht werden kann.

  • inherit(int): 0|1
    Der Parameter inherit gibt an, ob das Template ab diesem Knoten für den kompletten Teilbaum identisch ist und nur in diesem Knoten gecachet und nach unten vererbt wird (Typ I).
  • meta_types(list): []
    Der Parameter meta_types gibt die Typen von Objekten an, für die eine Änderung am Objekt ein Löschen des gecacheten Templates auslöst (und damit eine Aktualisierung beim nächsten Aufruf der Seite erzwingt).
Beispiel: content/cache.conf
<!-- BO cache.conf -->

 <dtml-return "[
    'bodyTop_Channels',
       {'inherit':1,'meta_types':[PAGES]},
    'bodyContent_Macronavigation',
       {'inherit':0,'meta_types':[PAGES]},
  ]">

<!-- EO cache.conf -->

Implementierung

In multilingualen Auftritten muss das gecachete Template die Sprache berücksichtigen, in der die Seite vom http-Request angefordert wird.

Beispiel: content/bodyTop_Channels
<!-- BO bodyTop_Channels -->

 <dtml-if "lang=='ger'">
      <p>[...Statisches HTML Deutsch...]</p
 ><dtml-elif "lang=='eng'">
      <p>[...Static HTML English...]</p
 ></dtml-if>

<!-- EO bodyTop_Channels -->

Erstellt von: D. Nordmann, HOFFMANN+LIEBENBERG , erstellt am:  27.06.2008 , zuletzt geändert: 27.06.2008