Napisałem rozszerzenie GUI dla SDL Tridion 2011 SP1. Interfejs GUI składa się z dodatkowego przycisku wstążki i programu obsługi zdarzeń, który jest wyzwalany po zapisaniu komponentu.Jak uzyskać nazwę użytkownika i opis z jego identyfikatora w strukturze SDL Tridion Anguilla
Moja obsługi zdarzeń jest rejestrowany w następujący sposób:
PowerTools.Commands.ItemCommenting.prototype._execute = function (selection) {
var item = $display.getItem();
$evt.addEventHandler(item, "save", this.getDelegate(this._onItemSaved));
$cme.getCommand("SaveClose")._execute(selection);
};
i obsługi zdarzeń wygląda następująco:
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);
};
to działa dobrze, oprócz tego, że zmienna commentername
zawsze jest niezdefiniowany. Czy istnieje lepsze podejście do uzyskania nazwy i opisu użytkownika?
Dodatkowo, czy ktoś wie, czy wartość zwrócona przez eventitem.source.getCreatorId()
jest w rzeczywistości Realizatorem, czy też faktycznie osobą, która utworzyła przedmiot?
góry dzięki
Mała uwaga. Powinieneś zadzwonić pod numer command.invoke (wybór); a następnie command._execute (wybór); W przeciwnym razie rozszerzenia dla polecenia SaveClose nie zostaną zastosowane i potencjalnie wystąpią błędy js. –
Wywołanie getCreatorId() na rzeczy rzeczywiście zwraca osobę, która utworzyła przedmiot, a nie ostatnią osobę, która go zmodyfikowała. –