gpt4 book ai didi

tridion - 在本地化时更新组件的自定义事件代码

转载 作者:行者123 更新时间:2023-12-04 12:22:59 25 4
gpt4 key购买 nike

我正在 SDL Tridion 2011 SP 1-1 中编写一些自定义事件代码,它在初始化阶段在保存或本地化时修改组件的字段:

var localize = EventSystem.Subscribe<Component, LocalizeEventArgs>(OnComponentLocalize, EventPhases.Initiated);
var save = EventSystem.Subscribe<Component, SaveEventArgs>(OnComponentSave, EventPhases.Initiated);
_subscriptions.Add(localize);
_subscriptions.Add(save);

save 事件工作正常,但相同的代码不适用于 localize 事件 - 对组件 XML 所做的任何更改都将被丢弃。我正在使用非常简单的代码:
var fields = new ItemFields(component.Content, component.Schema);
var translatedSummary = fields["summary"] as MultiLineTextField;
translatedSummary.Value = translation;
component.Content = fields.ToXml();

我可以让更改持续本地化的唯一方法是,如果我在发布/提交阶段执行此操作并执行 checkout /更新和保存/ checkin 。这不是很好,因为执行需要几秒钟&在组件本地化后在单独的事务中执行此操作。有谁知道更优雅的方法来做到这一点?

最佳答案

我认为本地化的 Action 只会改变项目的蓝图状态,并在新出版物中为您提供项目的第 1 版。我认为您不能在不创建新版本(即版本 2)的情况下对该项目进行任何修改。

这似乎是你发现的。我认为您唯一的选择(您已经发现)将是在本地化发生后修改并重新保存该项目。

关于tridion - 在本地化时更新组件的自定义事件代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com