«

»

Apr 02 2012

eZJSCore – Ajax Event

Ajax Events braucht man eigentlich schon fast auf jeder Seite um eventuelle Cache-Probleme zu umgehen oder die Ladezeiten gering zu halten. Mir sind zwei Möglichkeiten in eZ Publish bekannt. Eine davon möchte ich dir kurz zeigen. 

 

 

 

 

Variante 1 – über ein Modul

Über einen klassischen AJAX Befehl von jQuery und dann ein Modul einbauen, das den Content zurück liefert. Diese Variante werde ich dir nächste Woche erklären.

Variante 2 – mit eZ JS Core

eZ JS Core ist eine Standard Extension von eZ Publish.

Schritt 1 – Erweiterung aktivieren
Falls diese Erweiterung noch nicht aktiviert ist, bitte jetzt aktivieren und dann brav den Cache leeren. :)

Schritt 2 – Rechte vergeben
Deine Benutzer brauchen nun das Recht für den Aufruf, dazu ezjscore/call hinzufügen.

Schritt 3 – Template anlegen
Erstelle in deiner Erweiterung unter Design/templates das Verzeichnis “ezjsctemplate” und darunter dein Template zum Beispiel: banner.tpl (Den Namen brauchen wir bei Schritt 4 gleich nochmal.)

Schritt 4 – Javascript einbinden
In irgendein Template folgenden Code einbinden, der wäre für den AJAX Call:

{ezscript_load(array( 'ezjsc::jqueryio') )}
var nodeID={$node.node_ID}
jQuery.ez( 'ezjsctemplate::banner', {nodeID:nodeID}, function(data){
     $('#banner-container').html(data.content);
})

Kurze Code-Erklärung:

Damit initialisiert eZ Publish die notwendige AJAX Aufrufe:

{ezscript_load(array( 'ezjsc::jqueryio') )}

Wenn man sich den jQuery Code anschaut, findet man “ezjsctemplate::banner”. banner steht für den Template-Namen bei Schritt 2. Die Variable data beinhaltet die Ausgabe von banner.tpl.

Was macht eZ JSCore hier? Einen einfachen AJAX Post-Befehl. Nicht mehr und nicht weniger. ;)

Das ganze hat einen Nachteil. Man hat im banner.tpl keine Variablen zur Verfügung, die ich auf der Client-Seite habe, d.h. ihr müsst alles neu auslesen oder übergeben. Das Ganze ginge auch mit den YUI – sprich den Yahoo Tools. Da ich aber ein jQuery Verfechter bin, gehe ich darauf jetzt mal nicht näher ein ;)

Über den Autor

David Hohl

Seit 1995 Entwickler und Projektleiter. Langjährige Erfahrung mit eZ Publish. War von 2012 bis 2014 bei silver.solutions als Entwickler, Konzeptionen und Projektleiter für eZ Publish Projekte verantwortlich.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Sie können diese HTML-Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>