Ich habe eine GUI-Erweiterung für SDL Tridion 2011 SP1 geschrieben. Die GUI besteht aus einer zusätzlichen Multifunktionsleisten-Schaltfläche und einem Ereignishandler, der beim Speichern einer Komponente ausgelöst wird.Wie erhalten Sie einen Benutzernamen und eine Beschreibung von ihrer ID in der SDL Tridion Anguilla-Framework
Mein Ereignishandler registriert ist wie folgt:
PowerTools.Commands.ItemCommenting.prototype._execute = function (selection) {
var item = $display.getItem();
$evt.addEventHandler(item, "save", this.getDelegate(this._onItemSaved));
$cme.getCommand("SaveClose")._execute(selection);
};
und der Event-Handler sieht wie folgt aus:
PowerTools.Commands.ItemCommenting.prototype._onItemSaved = function (eventitem) {
var comment = prompt("Please enter a comment", "");
$messages.registerNotification("Saving user comments...");
var commentitemid = eventitem.source.getId();
var commenterid = eventitem.source.getCreatorId();
var commenter = $tcm.getItem(commenterid);
var commentername = commenter.getDescription();
var commentdate = eventitem.source.getLastModifiedDate();
var commentversion = eventitem.source.getVersion();
//Call the service to update
PowerTools.Model.Services.AppDataServices.Append("ext:ItemCommenting", commentitemid, "<comment><user>" + commenterid + "</user><message>" + comment + "</message><datetime>" + commentdate + "</datetime><version>" + commentversion + "</version></comment>", null, null, null, false);
};
Dies funktioniert gut, außer dass die Variable commentername
ist immer undefiniert. Gibt es einen besseren Ansatz, um den Namen und die Beschreibung eines Benutzers zu erhalten?
Außerdem weiß jemand, ob der Wert, der von eventitem.source.getCreatorId()
zurückgegeben wird, tatsächlich der Überprüfer oder tatsächlich die Person ist, die den Artikel erstellt hat?
Vielen Dank im Voraus
Kleine Bemerkung. Sie sollten command.invoke aufrufen (Auswahl); statt command._execute (Auswahl); Andernfalls Erweiterungen für SaveClose Befehl wird nicht angewendet und Sie könnten möglicherweise js Fehler erhalten. –
Der Aufruf von getCreatorId() für ein Element gibt tatsächlich die Person zurück, die das Element erstellt hat, und nicht die letzte Person, die es geändert hat. –