添加页面编辑器“保存并发布”按钮

时间:2011-02-28 20:47:13

标签: .net sitecore customization sitecore6 page-editor

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

enter image description here

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

我正在关注this文章以挂钩管道并完成操作,但不确定这是否正确。

有什么建议吗?

1 个答案:

答案 0 :(得分: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。 scSave 使用了大量的前端JavaScript,因此这似乎是Sitecore Chrome支持的一个错误。
  • 奇怪的是,语法scSave("item:publish")不起作用,但从自定义命令间接调用PublishComand确实有效。如果有人弄清楚这是为什么,请发表评论!
  • scSave仅在从 WebEditButton (/ sitecore / templates / System / WebEdit / WebEdit按钮)调用时才有效,而不是功能区按钮('/ sitecore / templates / System / Ribbon / Large Button') )或('/ sitecore / templates / System / Ribbon / Small Button')。
  • WebEditButton必须位于功能区层次结构的顶部('/ sitecore / content / Applications / WebEdit / Ribbons / WebEdit / Buttons')。如果它被放置在其中一个块上(例如“新建”,“编辑”等),它将无法渲染。
  • 创建WebEditButton时,如果要控制页面编辑器上显示的图标,则需要通过原始值设置数据/图标。否则,该值将保存到Appearance / Icon,它控制内容项的图标,而不是PageEditor按钮。这是由于内容编辑器的错误。