6

我想在站点页面编辑器上的“保存并关闭”按钮旁边提供另一个按钮,一旦按下它将触发保存和发布操作。我去了核心并复制了我打算修改的“保存并关闭”按钮。

在此处输入图像描述

我会将此按钮称为“保存并发布”,但现在我有点好奇是否必须修改 javascript 以包含我的自定义调用(比如说javascript:scSave("myPublish:saveAndPublish")

我正在关注这篇文章以连接到管道并完成操作,但不确定这是否是正确的方法。

有什么建议吗?

4

1 回答 1

4

您需要做的是在 App_Config/Commands.config 中定义一个自定义命令:

<command name="myPublish:saveAndPublish" 
type="YourNamespace.YourCommand, YourAssembly" />

任何自定义命令都需要继承 Sitecore.Shell.Framework.Commands.Command 并覆盖方法public override void Execute(CommandContext context)

使用您的自定义命令调用 PublishItem 命令:

public override void Execute(CommandContext context)
{
    var publishCommand = new PublishItem();
    publishCommand.Execute(context);
}

有几件事要寻找:

  • 这在 Firefox 中对我有用,但在 Chrome 中对我有用,在 Chrome 中没有保存该项目。scSave使用了大量的前端 javascript,因此这似乎是 Sitecore 的 Chrome 支持的错误。
  • 奇怪的是,语法scSave("item:publish")不起作用,但从自定义命令间接调用 PublishComand 确实有效。如果有人弄清楚这是为什么,请发表评论!
  • scSave 仅在从WebEditButton (/sitecore/templates/System/WebEdit/WebEdit Button) 调用时有效,而不是功能区按钮 ('/sitecore/templates/System/Ribbon/Large Button') 或 ('/sitecore/templates/System /功能区/小按钮')。
  • WebEditButton 必须位于功能区层次结构的顶部('/sitecore/content/Applications/WebEdit/Ribbons/WebEdit/Buttons')。如果它被放置在其中一个块上(例如“新建”、“编辑”等),它将不会呈现。
  • 创建 WebEditButton 时,如果要控制页面编辑器上显示的图标,则需要通过 Raw Values 设置 Data/Icon。否则,该值将保存到 Appearance/Icon,它控制内容项的图标,而不是 PageEditor 按钮。这是由于内容编辑器的错误。
于 2012-02-04T17:13:47.670 回答