5

我们也有 Tridion 2011 和页面处理工作流程。我们在页面预保存上有事件处理程序。当用户保存页面时,会调用事件处理程序来修改页面元数据并启动工作流。因此,每次编辑器保存单击时,页面的次要版本都会变为 0.3。所以基本上: 0.1 - 页面保存的 Tridion 版本 0.2 - 为保存页面元数据而执行的事件处理程序代码,并且由于 Save() 调用,再次调用此代码以导致下一个次要版本 0.3 - 执行相同的事件处理程序代码。

我想要实现的是在每个用户保存点击时将次要版本保持为 0.1。

我尝试了 Pre Save Post Save、Pre Check in 和 Post Check in 并更改了执行顺序,即事件系统订阅调用的最后一个参数,但没有任何帮助。所以请。帮助 :)

4

1 回答 1

6

你为什么在你的活动中调用 Save() ?如果您在保存页面之前进行更改,那么它应该一次性存储所有内容,而无需调用 Save。

public PageEvent()
{
    EventSystem.Subscribe<Page, SaveEventArgs>(ChangePageTitle, EventPhases.Initiated);
}
private void ChangePageTitle(Page page, SaveEventArgs args, EventPhases phases)
{
    page.Title = "Nuno was here " + page.Title;
}

这将更改页面标题,并且如您所见,我没有调用 Save,因为编辑器已经这样做了。

于 2012-12-10T19:17:40.193 回答