1

SharePoint ブレッドクラムを複数のサイト コレクションに拡張する方法を探していましたが、方法が見つかりませんでした。親サイト コレクションにリンクするように、サイト コレクションのポータル サイト接続設定を設定できます。ただし、1 つの親サイト コレクションのみが表示されるわけではありません。これは、私が作成しようとしているセットアップのタイプの例です。

ルート サイトであるイントラネットには、サイトと呼ばれる管理パスがあります。サイトの下には、 /sites/hr/にあるHRというサイト コレクションがあります。HR の下には、アウトリーチと呼ばれる別の管理パスが設定されています。アウトリーチには、 /sites/hr/outreach/recruiting/にあるRecruitingというサイト コレクションがあります。したがって、ユーザーが求人サイトにアクセスしているときに、パンくずリストとして[イントラネット] > [HR] > [採用]を表示するようにします。

サイトマップとしての例:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
    <siteMapNode title="Intranet" url="http://intranet/Pages/Default.aspx">
    <siteMapNode title="HR" url="http://intranet/sites/hr/default.aspx">
            <siteMapNode title="Recruiting" url="http://inranet/hr/outreach/recruiting/default.aspx"/>
        </siteMapNode>
    </siteMapNode>
</siteMap>

人材募集のポータルサイト接続設定 人材募集中は人事 > 採用を取得できます 人事サイトのポータルサイト接続設定は人事サイトでイントラネット > 人事を取得できます。できないけど。

SPXmlContentMapProviderを使用してサイトマップ ファイルを読み取ろうとしましたが、default.masterの GlobalNavigationSiteMap の SiteMapPath のSiteMapProviderとして設定すると、まったく表示されませんでした。( GlobalNavigationSiteMapは、サイトの上部にパンくずリストを作成する SiteMapPath です)。ただし、同じアーキテクチャは一般的な .NET アプリケーションではうまく機能しますが、SharePoint では機能しないようです。また、サイトマップをdefaultProviderとして適切に登録し、それを使用してTopNavigationMenu を置き換えることができました。(トップナビゲーションメニューは、デフォルトの SharePoint レイアウトの上部にあるグローバル ナビゲーション メニュー/ボタンのバーです)。

この機能を実際に SharePoint に組み込む方法はありますか?

4

2 に答える 2

0

I've thought a lot about why you can't use SPXmlContentMapProvider and I think it comes down to how SharePoint renders and uses managed paths. My theory is this:

All of the site collection locations in SharePoint are managed paths. Since the content is really stored in the database, and while IIS presents the information like it's in a folder, the pages aren't located in folders. Instead the location is somewhere in the "ether" of SharePoint and whatever location SPXmlContentMapProvider see's itself being in, it's somewhere else then the entries in the xml file. Now the Request.Url does know where you are, but that information does not appear to being presented to the SPXmlContentMapProvider.

I have also come up with a work around for the problem. You could manually edit the master page for each site collection to stick the breadcrumb trail for that site collection in front of the GlobalNavigationSiteMap. Thus, each site collection with this navigational requirement would then need to have it's own custom master page. It's an ugly, brute force way of doing things that I have no intention of implementing. It would work, but would be a maintenance nightmare.

于 2009-07-21T15:00:06.983 に答える