2009-06-19 51 views
1

我一直在試圖找到一種方法來跨多個網站集擴展SharePoint麪包屑,並且我一直無法找到一種方法。我可以將網站集上的門戶網站連接設置爲鏈接到其父網站集。但是,這不會僅顯示一個父網站集。以下是我正在創建的設置類型的示例。跨多個網站集擴展SharePoint麪包屑

根站點Intranet具有一個稱爲站點的託管路徑。在網站下有網站集HR位於/sites/hr/。在人力資源管理下,還有另一條管理路徑被稱爲外聯。在外展活動中,有一個網站集叫招聘位於/sites/hr/outreach/recruiting/。因此,當用戶在招聘網站時,我希望他們看到Intranet> 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> 

設置在招聘門戶網站的連接,我可以得到HR>招聘當你在招聘和設置在人力資源門戶網站的連接,我可以得到聯網> HR當您在人力資源網站。我不能。

我使用SPXmlContentMapProvider讀取sitemap文件試過,但我一直無法得到那個時候我設置顯示在所有的SiteMapProvider的的SiteMapPath GlobalNavigationSiteMapdefault.master。 (GlobalNavigationSiteMap是在站點頂部創建麪包屑的SiteMapPath)。但是,對於通用的.NET應用程序,相同的體系結構運行良好,但在SharePoint中似乎不起作用。我也正確地將網站地圖註冊爲defaultProvider並且能夠使用它來代替TopNavigationMenu。 (TopNavigationMenu是默認SharePoint佈局頂部的全局導航菜單/按鈕欄)。

有沒有一種方法可以將此功能真正構建到SharePoint中?

+0

爲什麼你爲每個子網站使用單獨的網站集? – 2009-06-19 18:03:07

回答

2

由於您正在實現自定義母版頁(或自定義默認頁面),爲什麼不用您自己的代替麪包屑控件呢?或者,如果您需要將站點地圖與Sharepoint生成的地圖結合使用,則可以創建自定義站點地圖提供程序。

+0

我還沒有試過建立一個自定義的SiteMapProvider。這將是一個相當密集的過程,我會想象,但如果你把它做對了,會工作。有關如何採取這種方法的任何建議? – ICodeForCoffee 2009-07-21 14:35:36

0

我想了很多關於你爲什麼不能使用SPXmlContentMapProvider,我認爲這涉及到SharePoint呈現和使用管理路徑的方式。我的理論是這樣的:

SharePoint中的所有網站集位置都是管理路徑。由於內容確實存儲在數據庫中,並且IIS在文件夾中顯示信息時,頁面不在文件夾中。相反,該位置在SharePoint的「以太網」中的任何位置,無論位於何處,它都位於xx文件中的其他位置。現在請求。網址確實知道您的位置,但該信息似乎未呈現給SPXmlContentMapProvider的

我也想出瞭解決問題的方法。您可以手動編輯每個網站集的母版頁,以便在GlobalNavigationSiteMap前面爲該網站集粘貼麪包屑路徑。因此,具有此導航要求的每個網站集都需要擁有自己的自定義母版頁。這是一種醜陋,蠻橫的做事方式,我無意實施。它會工作,但會是一個維護噩夢。