Вопрос

У меня есть макет страницы для сайта публикации со странным поведением.

Представьте себе сайт публикации (сайт) с дочерним сайтом (subsite1), который имеет следующие страницы (page1 [default], page2 и page3)

для страницы 2 и страницы три корректно отображается крошка:

site > subsite1 > page2 
site > subsite1 > page3

однако для страницы по умолчанию хлебная крошка отображается только как

site > subsite1

Есть идеи, как заставить его отображать заголовок страницы по умолчанию?

Это было полезно?

Решение

После долгих поисков и неудач я решил использовать AJAX include. До того, как кто-то помешал мне использовать язык дьяволов (VB.Net), я использовал его только так, как у меня были другие разработчики, которые использовали и поддерживали этот код, чтобы они могли его читать ...

Включение сделало следующее:

<Ол>
  • разделить текущий URL на составные части
  • Для каждой части получите URL-адрес Sharepoint и Sharepoint Web
  • Распечатайте заголовок веб-сайта sharepoint
  • Если часть является страницей, получите заголовок страницы и распечатайте его
  • Это не окончательный код (я собираюсь провести его рефакторинг сегодня вечером):

      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
    
    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top