0

在 Workbox 中,我们有“打开”和“预览”功能。是否可以修改“打开”功能以在新的浏览器选项卡中打开内容编辑器项,而不是在弹出窗口中显示“内容编辑器”?

4

2 回答 2

3

这是可能的:
首先,找出用于工作箱的代码。这可以通过打开 Workbox.xml(位于 webroot/sitecore/shell/Applications/Workbox)文件来完成。你会看到类似的东西

<CodeBeside Type="Sitecore.Shell.Applications.Workbox.WorkboxForm,Sitecore.Client"/>

通过在 WorkboxForm 类上使用 Reflector,我可以看到当您在工作框中单击“打开”时会发生以下情况:

webControl["Click"] = string.Concat(new object[] { "Open(\"", item.ID, "\", \"", item.Language, "\", \"", item.Version, "\")" });

因此,您需要创建自己的 WorkboxForm 版本,继承 Sitecore 的 WorkboxForm 类并覆盖 Open 方法,如下所示:

protected new void Open(string id, string language, string version)
{
// Your code goes here
}

在 Workbox.xml 中,将 CodeBeside 更改为指向您的新类。

有关 Workbox 中自定义功能的更多信息,我可以推荐阅读这篇文章,其中包含很多详细信息,以及 Workbox 中的其他方法。
StackOverflow上还有另一个有用的问题。对已接受答案的评论指出,您可以将 Workbox.xml 文件放入 /sitecore/shell/override。

请注意,这是基于 Sitecore 6.5 update 5,在其他版本中可能会有所不同。

于 2013-02-22T10:13:15.913 回答
0

在 Appconfig/Commands.config 中,您可以找到与其相关的命令和类。我已经反映了一些命令,例如预览、打开并了解内部发生的情况。

例如 name="item:open" type="Sitecore.Shell.Framework.Commands.ContentEditor.OpenItem,Sitecore.Kernel"

我已经覆盖了工作框中的“打开”mwthod,如下所示在新选项卡中打开内容编辑器项,

...
UrlString urlString = new UrlString("/sitecore/shell/Applications/Content%20Editor");

        urlString.Append("id", id);
        urlString.Append("vs", version);
        urlString.Append("ro", sectionId);
        urlString.Append("la", language);
        urlString.Append("fo", id);

        SheerResponse.Eval("window.open('" + (object)urlString + "', '_blank')");
...

有用!!!!!

于 2013-03-13T10:51:37.337 回答