4
我有一个需求,当编辑单击Unpublish菜单命令时需要显示警报/弹出窗口。我将弹出一个是/否按钮,如果选择是,我们继续并显示现有的UnPub屏幕。如果选择否,则不执行任何活动并且用户返回到屏幕。扩展当前发布/取消发布屏幕
这是如何实现的?
我们可以在不为自己创建新命令的情况下扩展/覆盖现有的CME命令吗?
我有一个需求,当编辑单击Unpublish菜单命令时需要显示警报/弹出窗口。我将弹出一个是/否按钮,如果选择是,我们继续并显示现有的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等),并指令引用在正常的方式。
然后写你的JS执行功能,就像任何其他GUI命令,并调用现有的命令你有你的工作弹出,这样的事情后:
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;
};
谢谢克里斯,它的工作。,和之间的依赖关系如何相互链接?如何在扩展配置文件中解决问题。请求一些指针。 –
bukubapi
它实际上在现场文档(http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_DC9C231E60874E3386BBAF129328D9AD - 需要登录)中有很好的解释,如果你仔细阅读它的全部内容。 –
克里斯是对的。 但我强烈建议使用$ commands.executeCommand而不是getCommand和_execute。 每当你发现自己调用一个以下划线开头的方法时,你应该寻找替代方法 - 因为这是私有方法的命名约定(=不是公共API的一部分) –