4

編集者が[公開解除]メニューコマンドをクリックしたときにアラート/ポップアップを表示する必要があるという要件があります。はい/いいえボタンでポップアップを表示します。はいが選択されている場合は、次に進み、既存のUnPub画面を表示します。[いいえ]が選択されている場合、アクティビティは発生せず、ユーザーは画面に戻ります。

  1. これはどのように達成できますか?

  2. 自分で新しいコマンドを作成せずに、既存のCMEコマンドを拡張/オーバーライドできますか?

4

1 に答える 1

8

私は昨日これを行う方法を学びました(Nuno Linharesに感謝します)-最初にGUI用の新しいエディターの作成に精通している必要があります。

次のステップは、上書きしたいコマンドの名前を見つけることです(あなたの場合はおそらく「UnPublish」)。c:command="UnPublish"これを行う最も簡単な方法は、GUIでChromeまたはFieFoxで「要素の検査」を使用し、拡張したいボタンのようなものを探す ことです。

基本的なエディタを設定したら、新しいコマンドを追加して、既存のコマンドを次のように上書きする必要があります。

<extensions>
    <ext:dataextenders />
    <ext:editorextensions>
      <ext:editorextension target="CME">
        <ext:editurls />
        <ext:listdefinitions />
        <ext:taskbars />
        <ext:commands />
        <ext:commandextensions>
          <ext:commands>
            <ext:command name="UnPublish" extendingcommand="CustomUnPublishCommand"/>
          </ext:commands>
          <ext:dependencies>
            <cfg:dependency>CustomUnPublish.CommandSet</cfg:dependency>
          </ext:dependencies>
        </ext:commandextensions>
        <ext:contextmenus />
        <ext:lists />
        <ext:tabpages />
        <ext:toolbars />
        <ext:ribbontoolbars />
      </ext:editorextension>
    </ext:editorextensions>
  </extensions>

通常の方法で、すべての依存関係(JSやCSSなど)とコマンド参照を追加します。

次に、他のGUIコマンドと同じようにJS実行関数を記述し、ポップアップで作業した後、次のように既存のコマンドを呼び出します。

CustomUnPublish.prototype._execute = function CustomUnPublish$_execute(selection, pipeline) {
    //Insert some logic to make a popup and confirm
        blnOkToProceed = true;
    //

    if (blnOkToProceed) {

        //EDIT: Original code
        $cme.getCommand("UnPublish")._execute(selection, pipeline);
        //EDIT: Or using the suggestion from @Peter below
        $commands.executeCommand("UnPublish", selection, pipeline);
        //End Edit
    }
    return;
};
于 2012-06-28T12:31:07.097 に答える