Ich weiß, so langsam könnte das Thema nervig werden.
Aber vielleicht hat ja trotzdem jemand Lust...
Erstmal das,was funktioniert:
Ich habe Templates, die nach jeder Änderung "kompiliert" werden, so dass ich ein Datei mit PHP-Code erhalte, die dann bei jedem Aufruf des Templates abgearbeitet wird.
Schreibe ich irgendwo in ein Template
, so wird das Template kompiliert wie vorher auch, allerdings gibt es noch eine weitere Funktion, die beim ersten Aufruf des kompilierten Templates ausgeführt wird, das Template "still" (also ohne Ausgabe) prozessiert und dann das kompilierte Template so umschreibt, dass es nur noch das Ergebnis der "stillen" Ausführung zurückliefert.
Das nutze ich z. B. bei FAQ-Seiten, die online gepflegt werden können.
Da sich deren Inhalt nicht allzu oft ändert, wird nach Ändern der FAQs das kompilierte Template einfach gelöscht.
Beim nächsten Aufruf der FAQ-Seite wird es erneut kompiliert, "still" ausgeführt und das Ergebnis davon wird gespeichert, so dass ich nicht jedesmal über Arrays iterieren und ähnliches muss.
Jetzt das, was noch nicht funktioniert:
cached das komplette Template, ich hätte jetzt aber gerne noch die Möglichkeit nur bestimmte Teile eines Templates zu cachen
Beispiel:
Soll mir die komplette Sitemap anzeigen und zwar nur beim ersten Aufruf des Templates, danach soll sie statisch im kompilierten Template stehen.
Das Datum soll aber immer aktuell ausgegeben werden.
Aus
sollte dann also das hier werden:
Hat jemand einen tollen Ansatz wie ich sowas realisieren könnte?
Wenn nicht, muss ich erstmal selbst weiter überlegen und wenn mir weiterhinnichts einfällt, muss ich aus dem Sitemap-Template wohl oder übel zwei Templates machen. Eines für die Sitemap,das dann komplett gecached wird und eines für den "Hallo, heute ist..."-Teil
Aber vielleicht hat ja trotzdem jemand Lust...
Erstmal das,was funktioniert:
Ich habe Templates, die nach jeder Änderung "kompiliert" werden, so dass ich ein Datei mit PHP-Code erhalte, die dann bei jedem Aufruf des Templates abgearbeitet wird.
Schreibe ich irgendwo in ein Template
Code:
{cache_file /}
Das nutze ich z. B. bei FAQ-Seiten, die online gepflegt werden können.
Da sich deren Inhalt nicht allzu oft ändert, wird nach Ändern der FAQs das kompilierte Template einfach gelöscht.
Beim nächsten Aufruf der FAQ-Seite wird es erneut kompiliert, "still" ausgeführt und das Ergebnis davon wird gespeichert, so dass ich nicht jedesmal über Arrays iterieren und ähnliches muss.
Jetzt das, was noch nicht funktioniert:
Code:
{cache_file /}
Beispiel:
Code:
{cache} {loop sitemap} {if _first}<ul>{endif} <li><a href="{link_link}">{link_title escape}</a> {recursion sitemap /} </li> {if _last}</ul>{endif} {endloop} Die Sitemap ist gültig seit dem {_now date_format "d.m.Y"} {endcache} Hallo, heute ist der {_now date_format "d.m.Y"}
Das Datum soll aber immer aktuell ausgegeben werden.
Aus
PHP-Code:
$result = '';
$result .= loop_sitemap($sitemapt);
$result .= 'Die Sitemap ist gültig seit dem ';
$result .= date('d.m.Y', time());
$result .= 'Hallo, heute ist der ';
$result .= date('d.m.Y', time());
return $result;
PHP-Code:
$result = 'HTML-Code der Sitemap
$result .= 'Die Sitemap ist gültig seit dem 04.03.2005';
$result .= 'Hallo, heute ist der ';
$result .= date('d.m.Y', time());
return $result;
Wenn nicht, muss ich erstmal selbst weiter überlegen und wenn mir weiterhinnichts einfällt, muss ich aus dem Sitemap-Template wohl oder übel zwei Templates machen. Eines für die Sitemap,das dann komplett gecached wird und eines für den "Hallo, heute ist..."-Teil
Kommentar