Ho scritto un'estensione della GUI per SDL Tridion 2011 SP1. La GUI è costituita da un pulsante a nastro e un gestore di eventi aggiuntivi che vengono attivati quando viene salvato un componente.Come si ottiene il nome e la descrizione di un utente dall'ID nella struttura SDL Tridion Anguilla
mio gestore di eventi è registrato come segue:
PowerTools.Commands.ItemCommenting.prototype._execute = function (selection) {
var item = $display.getItem();
$evt.addEventHandler(item, "save", this.getDelegate(this._onItemSaved));
$cme.getCommand("SaveClose")._execute(selection);
};
e il gestore di eventi è simile al seguente:
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);
};
Questo funziona bene, tranne che la variabile commentername
è sempre indefinito. C'è un approccio migliore per ottenere il nome e la descrizione di un utente?
Inoltre, qualcuno sa se il valore restituito da eventitem.source.getCreatorId()
è in realtà il Revisore o in realtà la persona che ha creato l'articolo?
Grazie in anticipo
Piccola osservazione. Dovresti chiamare command.invoke (selection); piuttosto che command._execute (selezione); Altrimenti le estensioni per il comando SaveClose non verranno applicate e si potrebbero potenzialmente ottenere errori js. –
Chiamare getCreatorId() su un elemento restituisce effettivamente la persona che ha creato l'elemento e non l'ultima persona a modificarlo. –