Ich schreibe eine Erweiterung des "Speichern" -Befehls, wo ich im Grunde bestimmte Felder validieren und ein Popup anzeigen möchte, das dem Editor erlaubt, ein bestimmtes Schlüsselwort oder andere Werte basierend auf dem aktuellen Datum, einem Release, auszuwählen # und einige andere Attribute.Erhalten Sie den _current_ Wert eines Feldes im Komponenteneditor? (Tridion 2011 SP1)
Ich dachte, ich mache gute Fortschritte, bis ich endlich herausgefunden habe, dass $display.getItem()
das Element zurückgibt, wie in CM gespeichert ist, nicht die aktuellen Werte, die der Editor möglicherweise geändert hat.
Gibt es eine integrierte Methode, um diese Informationen zu erhalten? Oder muss ich das DOM parsen, um es herauszufinden?
Dies ist der Code, den ich zur Zeit
habenvar 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);
}
}
Es funktioniert - ich den Wert von „NewField“ - aber das ist der Wert, den Punkt hatte, wenn er geladen wurde, nicht die Strom Wert. Interessanter
zeigt item.getTitle()
den aktuellen Wert des Titelfeldes, so dass ich hoffe, es kann ein Weg sein, diese auch für benutzerdefinierte Felder zu erreichen.
Ich beachte, dass der FieldBuilder in XM (UI) nicht verfügbar zu sein scheint. Gibt es etwas ähnliches/so nützliches verfügbares OOTB? –
Das FieldBuilder-Objekt erstellt das Formular zum Bearbeiten einer Komponente in einem Popup-Fenster. Da die neue XPM-Benutzeroberfläche keine solche Form hat, Sie aber stattdessen den Inhalt Ihrer regulären Website bearbeiten können, ist der FieldBuilder in diesem Kontext nicht sinnvoll. Sie können Informationen über das ausgewählte Feld von '$ display.getView() ._ getSelectedFieldData()' erhalten. –