/**
* 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 (
Links
)
/**
* 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 (
Dropdown trigger
)
}
}
// Mit dieser Zeile könnte diese Navigation schnell zum Testen in eine Webseite eingefügt werden.
page.2 < lib.megaNavigation