CJW Network Home

eZPreference und seine Cache-Probleme

Donnerstag, 20. September 2012: Tino Maaß

ezpreferences und viewcache

Man bietet dem Besucher einer Internetpräsenz die Möglichkeit eigene Einstellungen zu setzen und benutzt dafür den ezpreference - Operator? Wie funktioniert der Operator und welche Probleme bereitet uns der Cache?

Was ist der ezpreference - Operator und wie benutzt man ihn?

Möchte man eine Internetseite im Umgang benutzerfreundlich gestalten, kann man den Besuchern die Möglichkeit bieten, einige Funktionen der Seite, auf sich selbst abzustimmen.

Es können rudimentärste Dinge sein: Verstecken / Anzeigen einiger Blöcke; Anzahl der Vorschaubilder einer Galerie;  Lesezeichen;

Wie setzt man einen neuen Parameter?

Syntax:

/user/preferences/set/[name_der_einstellung]/[wert_der_einstellung]

Beispiel:

/user/preferences/set/show_menu_x/[true|false]

Der Benutzer kann in diesem Beispiel entscheiden, ob er ein definiertes Menü, während seiner Sitzung, angezeigt haben möchte oder eben nicht.

Im gewünschten Template wird der Wert einfach abgefragt:

{ezpreference(  'show_menu_x'  )}

Das Problem ist nur, was machen wir, wenn die ezpreferences in einem Cache-Block abgefragt werden oder in einem View-Cache-Template? Leider aktualisiert sich hier unser Parameter nicht :-(

Der Cache cached frohen Mutes.

Cache-Block

Fragen wir unseren Wert in einem Cache-Block ab, genügt es einen neuen Cache-Key mit dem Wert unserer neuen Einstellung, zu setzen.

{cache-block keys=array( ezpreferences( 'show_menu_x' ), ... )}CONTENT{/cache-block}

View-Cache

Anders sieht das Vorgehen aus, wenn wir unsere Einstellung in einem Template abfragen, welches dem ViewCache  ( z.B. full - / line - View ) unterliegt.

Hierfür bietet eZ eine passende ini - Einstellung in der site.ini des Benutzer - SiteAccesses. 

Unter den ContentSettings findet sich die Einstellung CachedViewPreferences. Als Vorbild bietet sich die site.ini des Admin - SiteAccesses an.

[ContentSettings]
CachedViewPreferences[full]=show_menu_x=true

Es wird die view ( "full" ), die neue Einstellung ( "show_menu_X" ), sowie ihr Standardwert ( "true" ) angegeben.

Einmal den eZ-Cache löschen und schon aktualisiert sich unsere Einstellung, ohne Probleme auch im View-Cache.

Coolscreen.de - internet development, audits and consulting Jac Systeme - software development, support and maintenance Webmanufaktur - alles ausser gewöhnlich eZ Publish Silver Partner