SharePoint 2010: укажите PortalSiteMapProvider на определенное семейство сайтов - PullRequest
0 голосов
/ 03 марта 2011

Можно ли получить OOTB PortalSiteMapProvider для предоставления иерархии сайтов из указанного семейства сайтов или URL-адреса (т. Е. не текущего семейства сайтов ) в SharePoint 2010? В MOSS это было возможно только путем создания пользовательского SiteMapProvider, обхода семейств сайтов и создания дерева навигации вручную.

NB. Я не готов написать пользовательский SiteMapProvider, который читает из файл статического XML (.sitemap), так как обычные участники сайта могут не иметь доступа к файлам в файловой системе.

Немного предыстории ... У меня есть одно веб-приложение с двумя семействами сайтов:

  • 1 для моего интранет-портала в http://intranet/ (публикация включена)
  • 1 для личных сайтов на http://intranet/my (публикация не включена)

У нас нет планов по поддержке нескольких порталов, поэтому я хотел бы, чтобы в обоих семействах сайтов была единая глобальная панель навигации. В идеале я хотел бы, чтобы на Моих сайтах отображалась иерархия сайта с основного сайта портала. Поэтому можно установить для свойства PortalSiteMapProvider.CurrentSite значение "http://intranet/" вместо " http://intranet/my"?

1 Ответ

0 голосов
/ 06 июня 2011

Чтобы добиться такого поведения, я написал свой собственный веб-сервис, который отключается и пересекает иерархию другого семейства сайтов (используя собственный PortalSiteMapProvider) и возвращает эту структуру в виде XML-документа.Тогда я, очевидно, связал свое глобальное навигационное навигационное меню с этим.

Я получил понятие отсюда: PortalSiteMapProvider

Здесь описан похожий подход, в котором вместо этого используется HttpHandlers:http://blog.symprogress.com/2011/03/sharepoint2010-custom-navigation-provider-cross-sitecollection/

...