Question

J'ai une mise en page pour un site de publication avec un comportement étrange.

Imaginez un site de publication (site) avec un sous-site (sous-site1) comportant les pages suivantes (page1 [par défaut], page2 et page3)

pour les pages 2 et 3, le fil d'Ariane est rendu correctement:

site > subsite1 > page2 
site > subsite1 > page3

Cependant, pour la page par défaut, le fil d'Ariane est uniquement rendu comme

site > subsite1

Avez-vous une idée de la façon de forcer l'affichage du titre de la page par défaut?

Était-ce utile?

La solution

Après de nombreuses recherches et des échecs répétés, j’ai décidé d’utiliser un AJAX include. Avant que quiconque me marque pour utiliser le langage des diables (VB.Net), je ne l’utilisais que comme j'avais déjà eu d'autres développeurs qui utilisaient et maintenaient ce code, ils devaient donc pouvoir le lire ...

L'inclusion a eu les conséquences suivantes:

  1. scinder l'URL actuelle en ses éléments constitutifs
  2. Pour chaque partie, obtenez l'URL Sharepoint et le site Web Sharepoint
  3. Imprimer le titre du site Web du sharepoint
  4. Si la pièce est une page, obtenez le titre de la page et imprimez-le

Ce n'est pas le code final (je vais le refactoriser ce soir):

  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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top