Sitecore Workbox-修改“文件”;开放式;在新浏览器选项卡中打开“内容编辑器”项的步骤

Sitecore Workbox-修改“文件”;开放式;在新浏览器选项卡中打开“内容编辑器”项的步骤,sitecore,Sitecore,在Workbox中,我们有“打开”和“预览”功能。 是否可以修改“打开”功能以在新浏览器选项卡中打开内容编辑器项,而不是在弹出窗口中显示“内容编辑器”?这是可能的: 首先,找出用于workbox的代码。这可以通过打开Workbox.xml(位于webroot/sitecore/shell/Applications/Workbox)文件来完成。 你会看到类似的东西 <CodeBeside Type="Sitecore.Shell.Applications.Workbox.WorkboxFor

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

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

<CodeBeside Type="Sitecore.Shell.Applications.Workbox.WorkboxForm,Sitecore.Client"/>
因此,您需要创建自己版本的WorkboxForm,继承Sitecore的WorkboxForm类并重写Open方法,如下所示:

protected new void Open(string id, string language, string version)
{
// Your code goes here
}
在Workbox.xml中,将旁边的代码更改为指向新类

有关Workbox中自定义功能的更多信息,我建议您通读这篇文章,其中有很多详细信息,还可以了解Workbox中的其他方法。
在StackOverflow上还有另一个有用的方法。对接受答案的评论指出,您可以将Workbox.xml文件放入/sitecore/shell/override

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

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

<CodeBeside Type="Sitecore.Shell.Applications.Workbox.WorkboxForm,Sitecore.Client"/>
因此,您需要创建自己版本的WorkboxForm,继承Sitecore的WorkboxForm类并重写Open方法,如下所示:

protected new void Open(string id, string language, string version)
{
// Your code goes here
}
在Workbox.xml中,将旁边的代码更改为指向新类

有关Workbox中自定义功能的更多信息,我建议您通读这篇文章,其中有很多详细信息,还可以了解Workbox中的其他方法。
在StackOverflow上还有另一个有用的方法。对接受答案的评论指出,您可以将Workbox.xml文件放入/sitecore/shell/override


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

在Appconfig/Commands.config中,您可以找到与其相关的命令和类。 我已经反映了一些命令,比如preview、open,并理解了内部发生的事情

e、 g.name=“item:open”type=“Sitecore.Shell.Framework.Commands.ContentEditor.OpenItem,Sitecore.Kernel”

我已经覆盖了workbox中的“Open”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')");
...

它是有效的

在Appconfig/Commands.config中,您可以找到与其相关的命令和类。 我已经反映了一些命令,比如preview、open,并理解了内部发生的事情

e、 g.name=“item:open”type=“Sitecore.Shell.Framework.Commands.ContentEditor.OpenItem,Sitecore.Kernel”

我已经覆盖了workbox中的“Open”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')");
...

它是有效的

嗨,谢谢,崔耶克。我已经有了一个自定义的workbox模块。你能帮我在Open方法内部实现吗?我不知道如何在新选项卡中打开内容编辑器。请通读以下内容:显然,您需要选择第一个选项,因为第二个选项将打开一个新的Sitecore应用程序(现在也是这样)我认为您不需要sc_内容和la参数-我认为如果您不提供它们,它将使用您当前使用的DB和语言(当然您需要确认)。嗨,谢谢Trayek。我已经有了一个自定义的workbox模块。你能帮我在Open方法内部实现吗?我不知道如何在新选项卡中打开内容编辑器。请通读以下内容:显然,您需要选择第一个选项,因为第二个选项将打开一个新的Sitecore应用程序(现在也是这样)我认为您不需要sc_内容和la参数-我认为如果您不提供它们,它将使用您当前使用的DB和语言(当然,您需要确认)。