扩展当前的发布/取消发布屏幕

buk*_*api 4 tridion tridion-2011

当编辑器点击Unpublish菜单命令时,我需要显示警报/弹出窗口.我将使用是/否按钮显示弹出窗口,如果选择是,我们继续并显示现有的UnPub屏幕.如果选择否则不会发生任何活动,用户返回到屏幕.

  1. 如何实现这一目标?

  2. 我们可以扩展/覆盖现有的CME命令而无需为自己创建新的命令吗?

Chr*_*ers 8

我昨天刚刚学会了如何做到这一点(感谢Nuno Linhares) - 你需要熟悉为GUI创建一个新的编辑器.

下一步是找到要覆盖的命令的名称(在您的情况下可能是"UnPublish").最简单的方法是在GUI中使用Chrome或FieFox的"inspect element",并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>
Run Code Online (Sandbox Code Playgroud)

以正常方式添加所有依赖项(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;
};
Run Code Online (Sandbox Code Playgroud)