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);
}
上記のコードを使用すると、何度でも「公開」でき、期待どおりに機能します。
ただし、「拒否」してから公開すると、最上位の用語で「競合するパーマリンク」が表示されます。
次回の公開時にパーマリンクの競合を起こさずに下書きを削除するにはどうすればよいですか?
(下書きを削除しても、現在公開されている用語のパーマリンク/表示エイリアスには影響しないことに注意してください)。