problema MOSS 2007 Breadcrumb
-
04-07-2019 - |
Pergunta
Eu tenho um layout de página para um site de publicação com um comportamento estranho.
Imagine um site de publicação (local) com um subsite (subsite1), que tem as seguintes páginas (Page1 [default], page2 e Página3)
para a página 2 e página três a trilha torna corretamente:
site > subsite1 > page2
site > subsite1 > page3
No entanto, para a página padrão do breadcrumb única processa como
site > subsite1
Qualquer idéia de como para forçá-lo para exibir o título da página padrão também?
Solução
Depois de muito procurar e falhando repetidamente eu decidi usar um AJAX incluem. Antes que alguém marcas Me Down para usar a linguagem de demônios (VB.Net) Eu só usei como eu tive outros desenvolvedores que estavam usando e maintaing este código para que eles tinha que ser capaz de lê-lo ...
A incluem fez o seguinte:
- dividir a URL atual em suas partes constituintes
- Para cada parte obter o Sharepoint URL e Sharepoint Web
- Imprima o Título do sharepoint web
- Se a peça for uma página, obter o título da página e imprimi-lo
Isto não é o código final (eu estou indo para refatorar-lo hoje à noite):
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