Добавление кнопки «Сохранить и опубликовать» в редакторе страниц - PullRequest
6 голосов
/ 28 февраля 2011

Я хотел бы предоставить еще одну кнопку рядом с кнопкой «Сохранить и закрыть» в редакторе страниц сайта, которая при нажатии запускает действие сохранения и публикации.Я подошел к ядру и сделал копию кнопки «Сохранить и закрыть», которую планирую изменить.

enter image description here

Я бы назвал эту кнопку «Сохранить и опубликовать», нотеперь мне любопытно, если мне нужно изменить javascript, чтобы включить мой пользовательский вызов (скажем, javascript:scSave("myPublish:saveAndPublish"))

Я следую этой статье, чтобы подключиться к конвейеру и завершить действиено не уверен, что это правильно.

Любой совет?

1 Ответ

4 голосов
/ 04 февраля 2012

Что вам нужно сделать, это определить пользовательскую команду в 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. Это связано с ошибкой в ​​редакторе контента.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...