MOSS 2007 Problème miettes de pain
-
04-07-2019 - |
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?
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:
- scinder l'URL actuelle en ses éléments constitutifs
- Pour chaque partie, obtenez l'URL Sharepoint et le site Web Sharepoint
- Imprimer le titre du site Web du sharepoint
- 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 ></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