有没有办法检查 Umbraco ( v. 6.1.5) 内容中的节点是否已经发布或节点已经发布了多少次,这样,例如,如果这是第二次按“发布”相同节点,我可以应用一些逻辑吗?
我需要发布的翻译计数,以便我可以更新其他语言节点中内容中的文本,因为 MS Translator 仅在我要翻译的节点首次发布时才起作用。
谢谢!
有没有办法检查 Umbraco ( v. 6.1.5) 内容中的节点是否已经发布或节点已经发布了多少次,这样,例如,如果这是第二次按“发布”相同节点,我可以应用一些逻辑吗?
我需要发布的翻译计数,以便我可以更新其他语言节点中内容中的文本,因为 MS Translator 仅在我要翻译的节点首次发布时才起作用。
谢谢!
这是一个小工作,但您可以将publishedCount
标签属性添加到您的文档类型,然后每次使用以下代码保存时递增该值:
public class SaveEvent : ApplicationEventHandler
{
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
ContentService.Saving += ContentService_Saving;
}
void ContentService_Saving(IContentService sender, SaveEventArgs<IContent> e)
{
foreach (var item in e.SavedEntities)
{
if (!item.HasProperty("publishedCount"))
return;
int workingCount = item.GetValue<int>("publishedCount");
item.SetValue("publishedCount", workingCount++);
if(workingCount => 1)
{
// do additional work here
}
}
}
}
然后,您的已发布节点将始终具有您可以检查的 publishedCount 属性。
您可以在http://our.umbraco.org/wiki/reference找到更多信息,也可以在http://our.umbraco.org询问任何具体的实施问题。
你最好的办法是将钩子写入 Umbraco 的发布事件,然后获取正在发布的文档的节点 ID。在数据库中有一个表,它存储用于构建 Umbraco 审计跟踪的数据(不确定它是哪一个),在那里您可以检查文档上次发布的时间或多少次,然后在那里添加您的语言逻辑。请参阅下面的线程参考文献: 发布事件挂钩的示例