我有一个要求,当编辑器单击“取消发布”菜单命令时,我需要显示警报/弹出窗口。我将显示带有是/否按钮的弹出窗口,如果选择是,我们将继续并显示现有的 UnPub 屏幕。如果选择否,则不发生任何活动,用户返回屏幕。
如何做到这一点?
我们可以在不为自己创建新命令的情况下扩展/覆盖现有的 CME 命令吗?
我有一个要求,当编辑器单击“取消发布”菜单命令时,我需要显示警报/弹出窗口。我将显示带有是/否按钮的弹出窗口,如果选择是,我们将继续并显示现有的 UnPub 屏幕。如果选择否,则不发生任何活动,用户返回屏幕。
如何做到这一点?
我们可以在不为自己创建新命令的情况下扩展/覆盖现有的 CME 命令吗?
我昨天刚刚学会了如何做到这一点(感谢 Nuno Linhares)——您首先需要熟悉为 GUI 制作一个新的编辑器。
下一步是找到要覆盖的命令的名称(在您的情况下可能是“UnPublish”)。最简单的方法是在 GUI 中使用 Chrome 或 FieFox 的“检查元素”,并 c:command="UnPublish"
在您希望扩展的按钮上查找类似的内容。
设置好基本编辑器后,您需要添加新命令以覆盖现有命令,如下所示:
<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;
};