Escribo una extensión del comando "Guardar", donde básicamente quiero validar ciertos campos y presentar una ventana emergente que permite al editor seleccionar una palabra clave determinada u otros valores basados en la fecha actual, una Versión # y algunos otros atributos.¿Obtiene el valor de _current_ de un campo en el Editor de componentes? (Tridion 2011 SP1)
Pensé que estaba haciendo un buen progreso hasta que finalmente descubrí que $display.getItem()
devuelve el artículo tal como está almacenado en CM, no los valores actuales que el editor puede haber cambiado.
¿Existe un método incorporado para obtener esta información? ¿O necesito analizar el DOM para resolverlo?
Este es el código actualmente tengo
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);
}
}
Se está trabajando - consigo el valor de "NewField" -, pero este es el valor del elemento tenía cuando estaba cargada, no la corriente valor.
Curiosamente, item.getTitle()
muestra el valor actual del campo Título, así que espero que haya una forma de lograr esto para los campos personalizados también.
Noto que el FieldBuilder no parece estar disponible en XM (UI). ¿Hay algo similar/tan útil disponible OOTB? –
El objeto FieldBuilder crea el formulario para editar un Componente en una ventana emergente. Dado que la nueva interfaz de usuario de XPM no tiene dicha forma, pero en su lugar le permite editar el contenido en su sitio web habitual, FieldBuilder no tiene sentido en este contexto. Puede obtener información sobre el campo seleccionado de '$ display.getView() ._ getSelectedFieldData()'. –