ページまたはコンポーネントがチェックアウトされたときに、 Tridion メッセージ バーに警告メッセージを表示しようとしています。
(Processed and Initiated) フェーズでサブスクライブして試し、Subscribe と SubscribeAynsc を試みました。
以下の加入者線:
EventSystem.Subscribe<VersionedItem, CheckOutEventArgs>(displaymessage, EventPhases.Processed);
以下の機能:
public override void displaymessage(VersionedItem item, TcmEventArgs args, EventPhases phase)
{
if (item.GetType().Name == "Component" || item.GetType().Name == "Page")
{
string chkuser = "aa" ;
sting revisor = "bb"
if(chkuser != revisor
{
throw new Exception("Warning-->some one is already modified this item and u are checking out now");
}
}
}
チェックアウトユーザーとリバイザーが違う場合に警告メッセージを表示したい。チェックアウト ユーザーとリバイザの詳細をすぐに取得し、比較します。
問題:
- abaove コードは、アイテムを選択して [チェックアウト] をクリックすると、Tridion メッセージ バーにメッセージを表示します。同時に、アイテムは編集モードではなく、読み取り専用モードになります。
- アイテムを選択して [開く] をクリックするか、アイテムをダブルクリックすると、チェックアウト イベントがトリガーされますが、メッセージはメッセージ バーに表示されません。それでもアイテムは読み取り専用モードです。
- コード内で try{}Catch{} を使用すると、「throw new exception」という行に到達すると、コードは自動的に catch ブロックに移動します。「1st (Issues:1)」の状態でもメッセージが表示されません。
誰でもこれについて洞察を与えることができますか? それは素晴らしいことです!