Piszę rozszerzenie do polecenia "Zapisz", gdzie zasadniczo chcę sprawdzić poprawność niektórych pól i przedstawić okienko podręczne pozwalające redaktorowi na wybranie danego słowa kluczowego lub innych wartości na podstawie bieżącej daty, wydania # i kilka innych atrybutów.Uzyskaj wartość _current_ pola w Edytorze komponentów? (Tridion 2011 SP1)
Myślałem, że robię duże postępy, dopóki w końcu nie zorientowałem się, że $display.getItem()
zwraca przedmiot, ponieważ jest przechowywane w CM, a nie aktualne wartości, które redaktor mógł zmienić.
Czy istnieje wbudowana metoda uzyskania tej informacji? Czy muszę parsować DOM, aby to rozgryźć?
Jest to kod Obecnie mam
var item = $display.getItem();
if (item.getItemType() == "tcm:16") {
if (item.getSchema().getStaticTitle() == "Test Schema") {
var content = $xml.getNewXmlDocument(item.getContent());
var fieldXml = $xml.getInnerText(content, "//*[local-name()='NewField']");
alert(fieldXml);
}
}
To działa - pojawia się wartość „NEWFIELD” - ale jest to wartość pozycja miał kiedy został załadowany, a nie prąd wartość.
Co ciekawe, item.getTitle()
pokazuje aktualną wartość pola Tytuł, więc mam nadzieję, że może istnieć sposób osiągnięcia tego również w polach niestandardowych.
Zauważam, że FieldBuilder nie jest dostępny w XM (UI). Czy istnieje coś podobnego/tak użytecznego, dostępne w OOTB? –
Obiekt FieldBuilder tworzy formularz do edycji komponentu w wyskakującym oknie. Ponieważ nowy interfejs użytkownika XPM nie ma takiej postaci, ale zamiast tego pozwala edytować zawartość w zwykłej witrynie internetowej, FieldBuilder nie ma sensu w tym kontekście. Możesz uzyskać informacje o wybranym polu z '$ display.getView() ._ getSelectedFieldData()'. –