У меня есть пользовательское приложение Sitecore, которое в основном представляет собой экран поиска. Я хотел бы, чтобы пользователь мог щелкнуть ссылку в результатах поиска и открыть этот элемент контента в редакторе контента. Кто-нибудь знает как это сделать?
Как в Sitecore 6 открыть элемент контента в редакторе контента из пользовательского приложения Sitecore?
Ответы (3)
Что вам нужно сделать, так это использовать параметр 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());
Это описано в сообщении Запуск редактора контента из кода.
А вот еще одно решение Марка Урсино, которое делает то же самое, используя события javascript onclick: http://firebreaksice.com/link-directly-to-a-sitecore-item-in-a-custom-editor/
У Джона Уэста есть полезная информация здесь: 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} &вер={2}
Я создал простой метод расширения, который сейчас работает в 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);
}