編集者が[公開解除]メニューコマンドをクリックしたときにアラート/ポップアップを表示する必要があるという要件があります。はい/いいえボタンでポップアップを表示します。はいが選択されている場合は、次に進み、既存のUnPub画面を表示します。[いいえ]が選択されている場合、アクティビティは発生せず、ユーザーは画面に戻ります。
これはどのように達成できますか?
自分で新しいコマンドを作成せずに、既存のCMEコマンドを拡張/オーバーライドできますか?
編集者が[公開解除]メニューコマンドをクリックしたときにアラート/ポップアップを表示する必要があるという要件があります。はい/いいえボタンでポップアップを表示します。はいが選択されている場合は、次に進み、既存のUnPub画面を表示します。[いいえ]が選択されている場合、アクティビティは発生せず、ユーザーは画面に戻ります。
これはどのように達成できますか?
自分で新しいコマンドを作成せずに、既存のCMEコマンドを拡張/オーバーライドできますか?
私は昨日これを行う方法を学びました(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;
};