Content Event Listener

27. April 2017

Hin und wieder kann es sinnvoll sein, bei jeder Inhaltsänderung (create/update/delete/move) ein Script auszuführen, daß bestimmte vor- oder nachbereitende Aktionen durchführt.

Dazu kennt womodo sogenannte "Content-Event-Listener" und diese kann man bei Bedarf in seinem Projekt per TMLScript implementieren.

Und so geht das:

var listener = new Packages.de.innovationgate.webgate.api.WGContentEventListener({
contentCreated: function(event){},
contentStatusChanged: function(event){},
contentHasBeenSaved: function(event){},
contentHasBeenMoved: function(event){},
contentHasBeenDeleted: function(event){}
})
db().addContentEventListener(listener)

Dabei müssen nicht alle diese Methoden implementiert sein. Es reicht diejenigen Methoden zu implementieren, auf die man reagieren möchte.

Beispiel:

var listener = new Packages.de.innovationgate.webgate.api.WGContentEventListener({
contentCreated: function(event){
var doc = event.content;
doc.setItemValue("headline", doc.title);
}
})
db().addContentEventListener(listener)

Die Methoden werden zum jeweiligen Event aufgerufen und es wird ein event Objekt übergeben, daß folgende Methoden hat:

event.getContent()
event.getDocumentKey()
event.getDatabase()

Den eigenen Event-Listener würde man typischerweise im App-Connect-Script registrieren.