MOSS 2007パンくず問題
-
04-07-2019 - |
質問
私は奇妙な振る舞いをする発行サイトのページレイアウトを持っています。
次のページ(page1 [default]、page2、およびpage3)を持つサブサイト(subsite1)を持つ発行サイト(site)を想像してください
ページ2およびページ3の場合、パンくずリストは正しくレンダリングされます。
site > subsite1 > page2
site > subsite1 > page3
ただし、デフォルトページの場合、パンくずリストはとしてのみレンダリングされます
site > subsite1
デフォルトページのタイトルも表示するように強制する方法はありますか?
解決
何度も検索して繰り返し失敗した後、AJAXインクルードを使用することにしました。悪魔言語(VB.Net)を使用していると誰かが私を非難する前に、このコードを使用および保守している他の開発者がいたため、私はそれを使用しただけでした...
インクルードは次のことを行いました:
- 現在のURLを構成部分に分割します
- 各部分について、Sharepoint URLとSharepoint Webを取得します
- シェアポイントWebのタイトルを印刷する
- パーツがページの場合、ページタイトルを取得して印刷します
これは最終的なコードではありません(今夜リファクタリングします):
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 ></span> <span class='ms-sitemapdirectional'><a href='" & TravelUrl & "' title='Home'>Home</a> > </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> > </span>")
End if
Next i
所属していません StackOverflow