如何在Tridion for Context菜单项中获取页面的元数据(次要版本)?

时间:2013-02-21 10:23:46

标签: tridion tridion-2011

我正在使用SDL Tridion 2011 SP1版本。

  • 系统中已启用工作流程。
  • 上下文菜单按钮添加到编辑器中,该按钮使用页面元数据。
  • 事件系统将更新SAVE事件中页面元数据中的当前页面路径。

但是,由于系统中启用了工作流程,每当我将页面从一个SG复制到另一个SG并明确单击保存按钮时,将触发工作流程。

在工作流程完成之前,我无法在上下文菜单JS代码中获取修改后的元数据(事件系统将更新修改后的元数据中的当前页面路径)。

可疑原因:无法获取次要版本的元数据。

当前代码:

var itemId = selection.getItem(0);
var item = $models.getItem(itemId);
var contentXml = item.getStaticXmlDocument();
var currentPath = $xml.getInnerText(contentXml, "//*[local-name()='current_path']");

请建议我如何在Java脚本中处理方案。早期的回应表示赞赏。在此先感谢。

2 个答案:

答案 0 :(得分:2)

看起来您假设该项已加载。事情并非经常发生。

您应该检查isLoaded()方法,如果它返回false,请使用回调调用load()方法。然后检查回调中的处理,因为项目是异步加载的。

答案 1 :(得分:0)

您可以更改其他活动的元数据吗?例如。在复制或移动事件?

请参阅Tridion.ContentManager.Extensibility.Events.CopyEventArgsMoveEventArgs