4

私は非常に新しいサイトコアで、サイトコア 7 を使用しています。質問は、ページ エディターにいるとき、フローティング メニューの「削除」機能を使用してアイテムを削除すると、アイテムが削除されるだけです。

お客様の要件は、ここに確認ボックスを追加することです。「本当に削除しますか」のようなもの。と 2 つの典型的なボタン (はい/キャンセル)。

それは可能ですか?任意の助けをいただければ幸いです。

編集: 下の図の赤い十字は、削除/削除ボタンです。クリックすると削除されます。ボタンをクリックしたときに確認を表示したい。

ここに画像の説明を入力

編集2:

わかりました、カスタム コマンドを作成しています。新しいボタンを追加しました。ターゲットは、この新しいボタンが、ユーザーがコンポーネントを削除するかどうかを尋ねることです。ユーザーが「はい」と言うと、デフォルトの組み込みの削除ボタンと同じように動作します。

ここに画像の説明を入力

コード:

public class RemoveWithNoti:Sitecore.Shell.Applications.WebEdit.Commands.WebEditCommand
    {
        public override void Execute(CommandContext context)
        {

            Context.ClientPage.Start(this, "Run", context.Parameters);
        }

    protected static void Run(ClientPipelineArgs args)
    {
        if (args.IsPostBack)
        {
            if (args.HasResult)
            {
                //Here I need to call "chrome:rendering:delete" this . I just dont know how to!!

            }
        }
        else
        {
            SheerResponse.Confirm("Are you certain that you want to remove this component");
            args.WaitForPostBack();
        }
    }
    }

コードから chrome:rendering:delete を呼び出すにはどうすればよいですか??

4

1 に答える 1

3

「chrome:rendering:delete」イベントはクライアント側で JavaScript によって処理されます。正確な場所は次のとおりです: /sitecore/shell/Applications/Page Modes/ChromeTypes/RenderingChromeType.js ファイル:

handleMessage: function(message, params, sender) {
    switch (message) {
...
      case "chrome:rendering:delete": 
        this.deleteControl();
        break;
...
},

同じファイルで次のようなことができます。

deleteControl: function() {
    if(confirm('Are you sure to remove this component?')){
        var placeholder = this.getPlaceholder();

        if (placeholder) {     
          placeholder.type.deleteControl(this.chrome);      
        }
    }
}
于 2016-08-08T11:41:25.600 に答える