/** * Beispiel für den cache-Befehl ab TYPO3 4.7. Verwendet Bootstrap-CSS-Klassen * @author Oliver Thiele * @see http://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Cache/Index.html */ lib.megaNavigation = COA lib.megaNavigation { wrap = /** * Reiner HTML-Code benötigt nicht so viel Zeit, * bleibt daher ohne zusätzliches Caching; wäre aber auch möglich, * wenn dieser Bereich statisch wäre (z. B. nur externe Links). */ 10 = TEXT 10.value ( ) /** * Es könnten auch Seiten mit dem normalen HMENU ausgegeben werden. * Diese sollten nicht für alle Seiten gecached werden, da sonst die aktive Seite * nicht hervorgehoben werden könnte. */ 20 = HMENU 20 { // ... Normale Menügenerierung special = directory special.value = 1 1 = TMENU 1 { NO.wrapItemAndSub =
  • |
  • # … } } /** * Die Extension benötigt hier vielleicht schon fünf Sekunden für die Generierung * der Kontaktinformationen, es soll daher das komplette COA gecached werden. */ 30 = COA 30 { // Hier beginnt der spannende Teil: stdWrap { cache { /** * Hier wird die aktuelle Sprache benutzt, um einen Inhalt pro Sprache * für alle Seiten zu cachen. */ key = meganavigation_contact_{TSFE:sys_language_uid} key.insertData = 1 // Mit den selbstgewählten Tags kann der Cache später gezielt geleert werden. tags = main_navigation, ext_slowextension /** * Wenn eine neue Seite generiert wird, ist das Kontaktmenü max. eine Stunde alt. * Wenn die Seite alle 24 Stunden neu generiert wird, könnte das Kontaktmenü * also auch über einen Tag alt sein! */ lifetime = 3600 } } /** * 10 und 30 im COA sorgen nur für das nötige HTML für das Layout. * Die zu vermeidende Last wird hauptsächlich in der Extension auftreten. */ 10 = TEXT 10.value (
  • ) } } // Mit dieser Zeile könnte diese Navigation schnell zum Testen in eine Webseite eingefügt werden. page.2 < lib.megaNavigation