-1

Tridion 2009 ページの発行をトリガーしたのは誰であるか (エディターまたはコード) を特定する必要があります。

例として使用してください: 出版物 A を継承する出版物 B

ここで、「子パブリケーションにも公開/非公開」を使用してパブリケーション A のページをパブリッシュすると、パブリケーション A のページとパブリケーション B のページに対してイベント システムがトリガーされます。

この場合、出版物 A のページでのみイベント システムを使用したいと考えています。

何かのようなもの:

public override void OnPageSetPublishedToPost(Page page, string publicationTarget, bool published, string user)
{
  if (!page.IsTriggeredByParent)
  {
  // do stuff
  }
}

問題は、「IsTriggeredByParent」の値を決定する方法がわからないことです。

お時間をいただきありがとうございます

4

1 に答える 1

4

SDL Tridion 2009では、これは不可能です。COMベースのイベントシステムには、イベントの発生元を特定する方法がありません。

SDL Tridion 2011 .NETイベントシステムでは、イベントスタックにアクセスできます。これは、アクションが別のアクションの一部として実行されたかどうかを検出できることを意味します(たとえば、パラメーターtrueを指定してVersionedItemに保存すると、アイテムがチェックインされ、そのイベントがSaveイベントの一部として発生します)。したがって、タスクを実行するには、アップグレードが必要だと思います。

于 2012-03-20T12:31:14.663 に答える