在 Orchard 中使用 Contrib.Taxonomies 预览和拒绝草稿:
我需要在导入后预览(如有必要,拒绝)分类术语。
我试图用以下代码做到这一点:
A. 我已将标准导入代码的最后一行更改为:
Services.ContentManager.Create(term, VersionOptions.Draft);
(而不是 VersionOptions.Published)
B. 我的预览屏幕有一个“发布”按钮,带有一个带有以下代码的控制器操作:
// remove current published terms
foreach (var term in _taxonomyService.GetTerms(taxonomyId)) {
_taxonomyService.DeleteTerm(term);
}
// publish draft terms created at import
foreach (var draftTerm in _MyTaxonomyService.GetDraftTerms(taxonomyId)) {
Services.ContentManager.Publish(draftTerm.As<ContentItem>());
}
C. 预览屏幕也有一个“拒绝”按钮,控制器操作带有以下代码:
// delete drafts
foreach (var draftTerm in _MyTaxonomyService.GetDraftTerms(taxonomyId)) {
_taxonomyService.DeleteTerm(draftTerm);
}
使用上面的代码,我可以随意“发布”多次,并且可以按预期工作。
但是,如果我“拒绝”然后发布,我会得到顶级术语的“冲突中的永久链接”。
如何在下次发布时删除草稿而不会出现永久链接冲突?
(另请注意,删除草稿不应影响当前发布条款的永久链接/显示别名)。