Hi cyberman,
habe mich in den letzten Tagen für den Relaunch meiner Website mit dem Theme CMS ms und Caching beschäftigt und bin dabei über das Plugin ccache gestolpert. Dieses hat zumindest bei mir ein gravierendes Problem:
Es führt bei "dynamisch" generierten Inhalten, wie zB der Fehlermeldungsseite eines mit FormBuilder erstellten Formulars zu etlichen Fehlermeldungen.
Mein erster Lösungsansatz war es diese speziellen Seiten in ein extra Template zu packen, welches das normale {content} enthält. Diese Lösung gefällt mir wegen der Redundanzen nicht wirklich. Also dachte ich mir, wieso die Sache nicht einfach über eine Smarty-Bedingung lösen.
{if !$smarty.request.mact}
{ccontent lifetime='3600'}
{else}
{content}
{/if}
Diese würde einfach bei jeder nicht "statischen" Seite, die ja am Existieren der mact-Angabe zu erkennen sind, das normale content-Tag verwenden.
Leider hast Du einen Programmierfehler in ccontent, der diese Lösung verhindert. In Zeile 53 müsste anstatt des include-Befehls ein require_once($plugin); stehen.
Ansonsten kommt es nämlich zu einer Fehlermeldung über eine erneute Deklaration von content, die Dir auch im englischen Teil des Forums mitgeteilt wurde. Dieser Fehler tritt immer dann auf, wenn im Template sowohl ccontent, als auch content genutzt werden (egal ob mit Bedingung oder einfach parallel).
Ich würde also verschlagen die genannte Zeile zu korrigieren und in der Plugin-Hilfe eine Einbindung mit obigem Smarty-Schnipsel zu empfehlen.
Grüße aus Nürnberg
LeisureLarry
[LÖSUNG] @cyberman: Bug und Probleme mit ccache
[LÖSUNG] @cyberman: Bug und Probleme mit ccache
Last edited by LeisureLarry on Fri Feb 08, 2008 10:27 am, edited 1 time in total.
Re: [LÖSUNG] @cyberman: Bug und Probleme mit ccache
Besten Dank für den Hinweis, werds in den nächsten Tagen ändern, meine Zeit ist aktuell sehr limitiert.
Hab mich schon längere Zeit nicht mehr um den Tag gekümmert, da er ja "nur" Auswirkungen auf den Content hat. Da gibt es aber noch so viel mehr, was gecached werden will
. Ich bevorzuge daher aktuell eine Lösung, wie Vin sie vorgeschlagen hat
http://forum.cmsmadesimple.org/index.ph ... l#msg94735
Hab mich schon längere Zeit nicht mehr um den Tag gekümmert, da er ja "nur" Auswirkungen auf den Content hat. Da gibt es aber noch so viel mehr, was gecached werden will

http://forum.cmsmadesimple.org/index.ph ... l#msg94735
Re: [LÖSUNG] @cyberman: Bug und Probleme mit ccache
Hatte ich mir auch angesehen, gefiel mir jedoch nicht zu 100%, weil dazu Änderungen am Core nötig sind und ich eigentlich außer $content nichts zu cachen habe (nur Menü wäre fein, aber der Ansatz im Core funzt ja nicht sonderlich gut und ist bei mir aus).
Da warte ich lieber auf CMS ms 2.0 und benutze derweil ccontent und static_stylesheet, wobei letzteres leider den Nachteil hat, einen SQL-Query zu benötigen, aber immer noch besser als der komplette CSS im Head (wie bei Piratos CSS-Ansatz) ist.
Ich überlege einzig und allein noch, ob ich das ganze (also die beiden Plugins) zu einem Modul machen soll, was dann ja direkt auf CMS-Actions reagieren könnte und einen lifetime-Parameter bzw. eine Cache-Leerung überflüssig machen würde.
Da warte ich lieber auf CMS ms 2.0 und benutze derweil ccontent und static_stylesheet, wobei letzteres leider den Nachteil hat, einen SQL-Query zu benötigen, aber immer noch besser als der komplette CSS im Head (wie bei Piratos CSS-Ansatz) ist.
Ich überlege einzig und allein noch, ob ich das ganze (also die beiden Plugins) zu einem Modul machen soll, was dann ja direkt auf CMS-Actions reagieren könnte und einen lifetime-Parameter bzw. eine Cache-Leerung überflüssig machen würde.
Re: [LÖSUNG] @cyberman: Bug und Probleme mit ccache
Hast du dir schon htmlexport angesehen?
http://dev.cmsmadesimple.org/projects/htmlexport/
Auch, wenn es nicht so klingt, ist es ein Modul zum Cachen
. OK, da werden auch Änderungen am Core vorgenommen, dürfte aber insoweit unproblematisch sein, da die 1.2.3 höchstwahrscheinlich die letzte 1.x-er ist. Hatte schon mal überlegt, ob es bis zum Erscheinen der 2er Sinn machen würde, den 1er Zweig inoffiziell weiterzuführen
...
http://dev.cmsmadesimple.org/projects/htmlexport/
Auch, wenn es nicht so klingt, ist es ein Modul zum Cachen


Naja, macht schon einen Unterschied, ob eine Seite komplett als HTML vorliegt oder auch noch Template und co aus der DB geholt werden müssen.LeisureLarry wrote: und ich eigentlich außer $content nichts zu cachen habe
Für beide Optionen sollte sich der EventManager einsetzen lassen, mit dem man dann auch selektiv löschen könnte (nicht immer gleich den gesamten Cache wie bei Vins Lösung).was dann ja direkt auf CMS-Actions reagieren könnte und einen lifetime-Parameter bzw. eine Cache-Leerung überflüssig machen würde.
Re: [LÖSUNG] @cyberman: Bug und Probleme mit ccache
Sobald nen Modul Änderungen am Core benötigt, hab ich nen Problem damit. Will da nicht zu viele Änderungen vornehmen, um Update-Probleme zu vermeiden. Wäre zwar in diesem Fall nicht ganz so problematisch, da ja 2.0 als nächstes kommen sollte, aber trotzdem.
Wegen der Modul-Umsetzung dachte ich es mir genau so, wie Du geschrieben hast.
Wegen der Modul-Umsetzung dachte ich es mir genau so, wie Du geschrieben hast.
Re: [LÖSUNG] @cyberman: Bug und Probleme mit ccache
Habe die ganze Sache jetzt einmal in ein Wrapper-Modul integriert, welches derzeit aber auch nur den gesamten Cache leert und noch nicht selektiv vorgeht (wäre aber auch kein Thema). Bei Interesse kann man es im Download-Bereich meiner Website herunterladen.