ワークボックスには、「開く」および「プレビュー」機能があります。「開く」機能を変更して、「コンテンツ エディター」をポップアップで表示するのではなく、新しいブラウザー タブでコンテンツ エディター アイテムを開くことはできますか?
2 に答える
それは可能です:
まず、ワークボックスに使用されているコードを見つけます。これは、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, "\")" });
そのため、Sitecore の WorkboxForm クラスを継承して独自のバージョンの WorkboxForm を作成し、次のように Open メソッドをオーバーライドする必要があります。
protected new void Open(string id, string language, string version)
{
// Your code goes here
}
Workbox.xml で、新しいクラスを指すように CodeBeside を変更します。
ワークボックスのカスタム機能の詳細については、ワークボックスの他のメソッドについても詳しく説明しているこの記事を読むことをお勧めします。StackOverflow に関する
別の有用な質問も既にあります。受け入れられた回答のコメントは、Workbox.xml ファイルを /sitecore/shell/override に配置できることを指摘しています。
これは Sitecore 6.5 update 5 に基づいていることに注意してください。他のバージョンでは少し異なる場合があります。
Appconfig/Commands.config には、コマンドとそれに関連するクラスがあります。プレビュー、開くなどのいくつかのコマンドを反映し、内部で何が起こっているかを理解しました。
例 name="item:open" type="Sitecore.Shell.Framework.Commands.ContentEditor.OpenItem,Sitecore.Kernel"
そして、新しいタブでコンテンツ エディター アイテムを開くために、次のようにワークボックスの "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')");
...
できます!!!!!