2008-10-27 105 views
0

我有一個奇怪的行爲的發佈網站的頁面佈局。MOSS 2007麪包屑問題

想象一下,一個發佈網站(網站)與子網站(subsite1的),它具有以下幾頁(第1頁[默認],第2頁和第3頁)

2頁和第三頁面包屑正確呈現:

site > subsite1 > page2 
site > subsite1 > page3 

但是默認頁面的麪包屑只呈現爲

site > subsite1 

不知道如何迫使它顯示的默認頁面的標題呢?

回答

0

經過多次搜索和重複失敗後,我決定使用AJAX包括。在使用魔鬼語言(VB.Net)之前,我只使用它,因爲我有其他開發人員正在使用和維護此代碼,所以他們必須能夠讀取它...

包括確實以下內容:

  1. 分割當前鏈接到它的組成部分
  2. 對於每個部分獲得的Sharepoint URL和Sharepoint網站
  3. 打印的SharePoint Web
  4. 如果部件是一個網頁的標題,獲得頁面標題並打印

這個心不是最終的代碼(我要去重構它今晚):

Dim lsPage = Request.Item("CurrentPage") 
    Dim TravelURL as string = "http://site/" 
    Dim aryURLSections() = lsPage.Replace(TravelUrl, "").Split("/") 
    Dim i as integer 

    Response.Write("<span class='breadcrumbCurrent'>You are in &gt;</span> <span class='ms-sitemapdirectional'><a href='" & TravelUrl & "' title='Home'>Home</a> &gt; </span>") 

    for i = 0 to (aryURLSections.Length -1) 
    Dim PositionString as string = aryURLSections(i) 
    if PositionString.Contains(".aspx") then 
     'Render page 
     Dim psite as SPSite = new SPSite(TravelUrl) 
     Dim pobjSite As SPWeb = psite.OpenWeb() 
     Dim lList as SPList 
     Dim lPage As SPListItem 
     lList = pobjSite.Lists("Pages") 
      If Not lList Is Nothing Then 
       For Each lPage In lList.Items 
       IF lsPage.ToUpper.Contains(lPage.Url.ToUpper) Then 
       Response.Write("<span class='breadcrumbCurrent' >" & lPage.Title & "</span>") 
       Else 
       'Response.Write("<br>" & lPage.Url & " " & lsPage) 
       End If 
      Next 
     End if 
    Else if PositionString.Equals("Pages") 
     ' do nothing 
    else 
     'render site 
     TravelUrl = TravelUrl & PositionString & "/" 
     'Response.Write(TravelUrl & " > ") 
     Dim site as SPSite = new SPSite(TravelUrl) 

     Dim objSite As SPWeb = site.OpenWeb() 
     Dim PubWeb = PublishingWeb.GetPublishingWeb(objSite) 

     Response.Write("<span class='ms-sitemapdirectional'><a href='" & TravelUrl & "' title='" & PubWeb.Title & "'>" & PubWeb.Title & "</a> &gt; </span>") 
    End if 

    Next i