Tôi đang viết phần mở rộng cho lệnh "Lưu", về cơ bản tôi muốn xác thực một số trường nhất định và hiển thị cửa sổ bật lên cho phép trình chỉnh sửa chọn một từ khóa nhất định hoặc các giá trị khác dựa trên ngày hiện tại, # và một số thuộc tính khác.Nhận giá trị _current_ của một trường trong Trình chỉnh sửa thành phần? (Tridion 2011 SP1)
Tôi nghĩ rằng tôi đã tiến triển tốt cho đến khi cuối cùng tôi đã tìm ra rằng $display.getItem()
đang trả lại mục như được lưu trữ trong CM, chứ không phải giá trị hiện tại mà trình chỉnh sửa có thể đã thay đổi.
Có phương pháp tích hợp để cung cấp cho tôi thông tin này không? Hay tôi cần phải phân tích cú pháp DOM để tìm ra nó?
Đây là mã Tôi hiện đang có
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);
}
}
Nó đang làm việc - tôi nhận được giá trị của "Newfield" - nhưng đây là giá trị mục có khi nó đã được nạp, không phải là hiện tại Giá trị.
Thật thú vị, item.getTitle()
hiển thị giá trị hiện tại của trường Tiêu đề, vì vậy tôi hy vọng có thể có cách để đạt được điều này cho trường tùy chỉnh.
Tôi lưu ý rằng FieldBuilder dường như không có sẵn trong XM (Giao diện người dùng). Có bất cứ điều gì tương tự/rất hữu ích OOTB? –
Đối tượng FieldBuilder xây dựng biểu mẫu để chỉnh sửa Thành phần trong cửa sổ bật lên. Vì giao diện người dùng XPM mới không có dạng như vậy, nhưng thay vào đó cho phép bạn chỉnh sửa nội dung trong trang web thông thường của bạn, FieldBuilder không có ý nghĩa trong ngữ cảnh này. Bạn có thể lấy thông tin về trường đã chọn từ '$ display.getView() ._ getSelectedFieldData()'. –