基本的に検索画面である Sitecore カスタム アプリがあります。ユーザーが検索結果のリンクをクリックして、そのコンテンツ アイテムをコンテンツ エディターで開くことができるようにしたいと考えています。誰もこれを行う方法を知っていますか?
3 に答える
John West はここにいくつかの良い情報を持っています: http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2011/08/Load-or-Reload-an-Item- in-the-Sitecore-ASPNET-CMS.aspx
次の形式の URL を使用して、新しいコンテンツ エディター ウィンドウを開くことができます: /sitecore/shell/sitecore/content/Applications/Content Editor.aspx?id={0}&fo={0}&la={1} &ver={2}
必要なことは、コンテンツ エディター パスの末尾にあるパラメーターの値としてアイテムの id を指定したfoパラメーターを使用することです。たとえば、次のようになります。
http://localhost/sitecore/shell/Applications/Content%20Editor.aspx?fo={4142d44b-2237-4795-b219-85e70420fced}
コメントの後の編集: Sitecore 内のコンテンツ エディターで新しいアプリケーションを開始する場合は、次の方法を使用できます。
Sitecore.Text.UrlString parameters = new Sitecore.Text.UrlString();
parameters.Add("id", item.ID.ToString());
parameters.Add("fo", item.ID.ToString());
Sitecore.Shell.Framework.Windows.RunApplication("Content Editor", parameters.ToString());
これについては、コードからコンテンツ エディターを起動するという記事で説明されています。
そして、これは Mark Ursino による別のソリューションで、JavaScript の onclick イベントを使用して同じことを行います: http://firebreaksice.com/link-directly-to-a-sitecore-item-in-a-custom-editor/
現在 Sitecore 6.5 で動作している単純な拡張メソッドを作成しました。他のバージョンの Sitecore ではテストしていません。
public static string ContentEditorUrl(this Item item)
{
return string.Format("{0}/sitecore/shell/Applications/Content%20Editor.aspx?fo={1}",
HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority), item.ID);
}