1

Umbraco (v. 6.1.5) コンテンツのノードが既に公開されているかどうか、またはノードが何回公開されているかを確認する方法はありますか?ノード、ロジックを適用できますか?

MS トランスレータは、翻訳したいノードが初めて公開されたときにのみ機能するため、他の言語のノードのコンテンツ内のテキストを更新できるように、翻訳のためにその公開回数が必要です。

ありがとう!

4

2 に答える 2

1

ちょっとした作業ですが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 で行うこともできます

于 2013-10-01T08:03:55.003 に答える
0

Umbraco のパブリッシュ イベントにフックを書き込み、パブリッシュされているドキュメントのノード ID を取得するのが最善の策です。データベースには、Umbraco 監査証跡の作成に使用されたデータを格納するテーブルがあり (それがどれかはわかりません)、ドキュメントが最後にいつ公開されたか、またはそこに言語ロジックを追加した回数を確認できます。以下のスレッドを参照してください: パブリッシュ イベント フックの例

umbraco のすべてのイベントの概要

于 2013-10-01T06:07:13.107 に答える