Partager via


Procédure : personnaliser l’affichage d’une barre de liens supérieure

Dernière modification : lundi 1 novembre 2010

S’applique à : SharePoint Foundation 2010

La barre de liens supérieure qui apparaît sur la plupart des pages de contenu dans Microsoft SharePoint Foundation 2010 est une bande horizontale avec onglets qui se situe sous le titre et la description du site Web. Le premier onglet, la position « Accueil », comporte généralement un lien vers la page d’accueil du site Web. La barre comprend souvent d’autres liens qui pointent vers des sites Web de niveau inférieur dans la hiérarchie du site.

La barre de liens supérieure est affichée par un contrôle AspMenu défini dans la page maître qui crée la disposition des pages dans le site Web. Dans SharePoint Foundation 2010, la page maître principale pour les pages de contenu et les pages d’application est v4.master. Vous pouvez modifier l’aspect de la barre de liens supérieure en modifiant le balisage dans v4.master.

Personnalisation de la barre de liens supérieure

Vous pouvez modifier l’aspect de la barre de liens supérieure en définissant les propriétés du contrôle AspMenu qui affiche les nœuds de navigation pour la barre. Pour une présentation détaillée du balisage du contrôle et de sa source de données, voir Contrôles de navigation.

Par exemple, vous pouvez définir des propriétés qui ajoutent des menus volants afin d’afficher des éléments subordonnés sous les liens de la barre. Ceci peut s’avérer utile pour simplifier une barre de liens supérieure encombrée. Ainsi, vous pouvez utiliser les liens dans le menu statique comme catégories et déplacer les liens secondaires dans des menus volants sous les catégories.

Pour ajouter des menus volants à la barre de liens supérieure

  1. Dans SharePoint Designer 2010, ouvrez le site Web que vous voulez personnaliser.

  2. Dans le volet Navigation, sélectionnez Pages maîtres.

  3. Cliquez avec le bouton droit sur v4.master, puis cliquez sur Copier.

  4. Cliquez avec le bouton droit sur une zone vide du volet Pages maîtres, puis cliquez sur Coller.

    Le fichier v4_copy(1).master est créé.

  5. Cliquez avec le bouton droit sur v4_copy(1).master, cliquez sur Renommer, puis tapez un nouveau nom, tel que my.master.

  6. Ouvrez le nouveau fichier afin de le modifier.

  7. Recherchez le contrôle de menu de la barre de liens supérieure. Vous pouvez le trouver en mode Code en lançant une recherche sur la chaîne suivante :

    ID="TopNavigationMenuV4"

  8. Affectez à l’attribut StaticDisplayLevels et à l’attribut MaximumDynamicDisplayLevels la valeur 1, comme suit.

    <SharePoint:AspMenu
      ID="TopNavigationMenuV4"
      Runat="server"
      EnableViewState="false"
      DataSourceID="topSiteMap"
      AccessKey="<%$Resources:wss,navigation_accesskey%>"
      UseSimpleRendering="true"
      UseSeparateCss="false"
      Orientation="Horizontal"
      StaticDisplayLevels="1"MaximumDynamicDisplayLevels="1"
      SkipLinkText=""
      CssClass="s4-tn"/> 
    
  9. Dans le menu Fichier, cliquez sur Enregistrer.

    Notes

    Il est possible que vous ne soyez pas autorisé à enregistrer les modifications dans la page maître par défaut du site si une page mappée au site est ouverte dans le navigateur. Dans ce cas, fermez le navigateur, puis réessayez.

  10. Dans le volet Navigation, sélectionnez Pages maîtres.

  11. Cliquez avec le bouton droit sur le nom de votre page maître, puis cliquez sur Définir comme page maître par défaut.

    Notes

    Vous pouvez également définir une page maître personnalisée comme page maître par défaut en écrivant du code qui définit la valeur de la propriété SPWeb.MasterUrl.

Un menu volant n’apparaît que lorsque l’un des nœuds de la barre de liens supérieure contient des nœuds enfants. L’application de console suivante crée un nœud avec le texte d’affichage « Resources » et ajoute un nœud enfant avec le texte d’affichage « SharePoint Developer Center ».

using System;
using System.Linq;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.OpenWeb("parent"))
                {
                    if (!web.Navigation.UseShared)
                    {
                        string resTitle = "Resources";
                        string resUrl = web.Navigation.Home.Url;
                        string spdevTitle = "SharePoint Developer Center";
                        string spdevUrl = "https://msdn.microsoft.com/sharepoint";

                        // Get the top link bar.
                        SPNavigationNodeCollection topnav = web.Navigation.TopNavigationBar;

                        // If a Resources link exists, get it.
                        SPNavigationNode resLink = topnav
                            .Cast<SPNavigationNode>()
                            .FirstOrDefault(n => n.Title == resTitle);

                        // If the Resources link does not exist, create it.
                        if (resLink == null)
                        {
                            resLink = new SPNavigationNode(resTitle, resUrl);
                            resLink = topnav.AddAsLast(resLink);
                        }

                        // If the Resources node has a SharePoint Dev Center child, get it.
                        SPNavigationNode spdevLink = resLink
                            .Children
                            .Cast<SPNavigationNode>()
                            .FirstOrDefault(n => n.Url == spdevUrl);

                        // If the item does not exist, create it.
                        if (spdevLink == null)
                        {
                            spdevLink = new SPNavigationNode(spdevTitle, spdevUrl, true);
                            spdevLink = resLink.Children.AddAsLast(spdevLink);
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue....");
            Console.ReadLine();
        }
    }
}
Imports System
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Navigation

Module ConsoleApp

    Sub Main()

        Using site As New SPSite("https://localhost")
            Using web As SPWeb = site.OpenWeb()

                If Not web.Navigation.UseShared Then

                    Dim resTitle As String = "Resources"
                    Dim resUrl As String = web.Navigation.Home.Url
                    Dim spdevTitle As String = "SharePoint Developer Center"
                    Dim spdevUrl As String = "https://msdn.microsoft.com/sharepoint"

                    ' Get the top link bar.
                    Dim topnav As SPNavigationNodeCollection = web.Navigation.TopNavigationBar

                    ' If a Resources link exists, get it.
                    Dim resLink As SPNavigationNode = topnav.Cast(Of SPNavigationNode)().FirstOrDefault( _
                        Function(n) n.Title = resTitle)

                    ' If the Resources link does not exist, create it.
                    If resLink Is Nothing Then
                        resLink = New SPNavigationNode(resTitle, resUrl)
                        resLink = topnav.AddAsLast(resLink)
                    End If

                    ' If the Resources node has a SharePoint Dev Center child, get it.
                    Dim spdevLink As SPNavigationNode = resLink.Children.Cast(Of SPNavigationNode)().FirstOrDefault( _
                        Function(n) n.Url = spdevUrl)

                    ' If the item does not exist, create it.
                    If spdevLink Is Nothing Then
                        spdevLink = New SPNavigationNode(spdevTitle, spdevUrl, True)
                        spdevLink = resLink.Children.AddAsLast(spdevLink)
                    End If
                End If

            End Using
        End Using

        Console.Write(vbCrLf & "Press ENTER to continue....")
        Console.Read()
    End Sub

End Module

Héritage de la barre de liens supérieure

Au lieu de définir son propre jeu de liens, la barre de liens supérieure d’un sous-site peut hériter des liens de navigation figurant sur la barre de liens supérieure du site parent. Une barre de liens supérieure configurée de la sorte peut offrir aux utilisateurs qui se déplacent entre le site parent et le sous-site une expérience cohérente. Pour plus d’informations, voir Procédure : partager la barre de liens supérieure entre les sites.

Si vous configurez la barre de liens supérieure d’un sous-site de manière à Utiliser les liens du site parent, le sous-site utilise la carte de site derrière la barre de liens supérieure du parent. Le contenu de la barre de liens supérieure est hérité. Sa présentation est toujours déterminée par le balisage dans la propre page maître par défaut du sous-site et dans ses propres pages de contenu. Bien que ce concept semble évident, il peut facilement être négligé.

Pour rendre la présentation cohérente à travers tous les sous-sites, une solution consiste à définir la propriété MasterUrl pour les sous-sites de sorte qu’elle pointe vers la page maître du site parent. Toutefois, cette approche pouvant annuler d’autres personnalisations locales, elle n’est pas souhaitable. Une meilleure approche consiste à dupliquer les modifications dans le balisage pour la barre de liens supérieure en apportant des modifications identiques à la page maître par défaut de chaque site Web.

Voir aussi

Tâches

Procédure : ajouter un sous-site à la barre de liens supérieure ou au menu Lancement rapide

Concepts

Contrôles de navigation

Procédure : partager la barre de liens supérieure entre les sites

Ajout de liens à la barre de liens supérieure