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?

Foi útil?

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:

  1. dividir a URL atual em suas partes constituintes
  2. Para cada parte obter o Sharepoint URL e Sharepoint Web
  3. Imprima o Título do sharepoint web
  4. 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 &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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top