MOSS 2007 Хлебная крошка - PullRequest
       10

MOSS 2007 Хлебная крошка

0 голосов
/ 27 октября 2008

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

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

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

site > subsite1 > page2 
site > subsite1 > page3

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

site > subsite1

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

1 Ответ

0 голосов
/ 29 октября 2008

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

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

  1. разделить текущий URL на составные части
  2. Для каждой части получите URL-адрес Sharepoint и Sharepoint Web
  3. Распечатать название веб-сайта sharepoint
  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
...