Кнопка редактора впечатлений от Sitecore, вызывающая всплывающую страницу.aspx
Можно ли сделать так, чтобы редактор ленты вызывал триггер? .aspx
страница во всплывающем окне? Это было возможно раньше speak-ui
был введен путем назначения команды для кнопки click
поле.
Существует множество руководств, описывающих, как использовать элементы управления XML (например, http://jockstothecore.com/sitecore-8-ribbon-button-transfiguration/), но я не могу найти информацию о запуске .aspx
стр.
Моя команда выглядит так:<command name="item:showDashboard" type="Sitecore.Starterkit.customcode.Reports, MyProject" />
1 ответ
В уроке, который вы разместили, я просто изменю фрагменты кода, чтобы они отражали то, что вам нужно сделать. (Учитывая, что вы сделали все остальное). В части Spell Two
В классе команд вы должны сделать что-то вроде этого (если вам нужно ждать обратной передачи):
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull((object) context, "context");
Context.ClientPage.Start((object) this, "Run", context.Parameters);
}
protected static void Run(ClientPipelineArgs args)
{
Assert.ArgumentNotNull((object) args, "args");
SheerResponse.ShowModalDialog(new UrlString("/YOURURL.aspx").ToString(), true);
args.WaitForPostBack();
}
Если вы просто хотите что-то показать:
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull((object)context, "context");
if (context.Items.Length != 1)
return;
Item obj = context.Items[0];
UrlString urlString = new UrlString("/YOURURL.aspx");
urlString["fo"] = obj.ID.ToString();
urlString["la"] = obj.Language.ToString();
urlString["vs"] = obj.Version.ToString();
string str = "location=0,menubar=0,status=0,toolbar=0,resizable=1,getBestDialogSize:true";
SheerResponse.Eval("scForm.showModalDialog('" + (object)urlString + "', 'SitecoreWebEditEditor', '" + str + "');");
}
Для JavaScript:
define(["sitecore"], function (Sitecore) {
Sitecore.Commands.ScoreLanguageTools = {
canExecute: function (context) {
return true; // we will get back to this one
},
execute: function (context) {
var id = context.currentContext.itemId;
var lang = context.currentContext.language;
var ver = context.currentContext.version;
var path = "/YOURURL.aspx?id=" + id + "&lang=" + lang + "&ver=" + ver;
var features = "dialogHeight: 600px;dialogWidth: 500px;";
Sitecore.ExperienceEditor.Dialogs.showModalDialog(
path, '', features, null,
function (result) {
if (result) {
window.top.location.reload();
}
}
);
}
};
});