He escrito una extensión GUI para SDL Tridion 2011 SP1. La GUI consiste en un botón de cinta adicional y controlador de eventos que se activa cuando se guarda un componente.¿Cómo se obtiene el nombre y la descripción de un usuario de su ID en el marco de SDL Tridion Anguila
Mi controlador de eventos se ha registrado la siguiente manera:
PowerTools.Commands.ItemCommenting.prototype._execute = function (selection) {
var item = $display.getItem();
$evt.addEventHandler(item, "save", this.getDelegate(this._onItemSaved));
$cme.getCommand("SaveClose")._execute(selection);
};
y el controlador de eventos es el siguiente:
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);
};
esto está funcionando bien, excepto que la variable commentername
siempre es indefinido. ¿Hay un mejor enfoque para obtener el nombre y la descripción de un usuario?
Además, ¿alguien sabe si el valor devuelto por eventitem.source.getCreatorId()
es en realidad el Revisor o en realidad la persona que creó el elemento?
Gracias de antemano
Pequeña observación. Debe llamar al command.invoke (selección); en lugar de command._execute (selection); De lo contrario, las extensiones para el comando SaveClose no se aplicarán y podría obtener errores de js. –
Llamar a getCreatorId() en un elemento de hecho devuelve la persona que creó el elemento y no la última persona para modificarlo. –