Кнопка редактора впечатлений от 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();
                    }
                }
            );
        }
    };
});
Другие вопросы по тегам