Personnalisation par programme de la navigation sur site SharePoint 2010 (Wrox)

Résumé : Apprendre à personnaliser la navigation des utilisateurs jusqu’à votre site Microsoft SharePoint 2010. L’article inclut des exemples de code qui fournissent une illustration concrète de l’affichage et de la modification de la Barre de liens supérieure et de la Barre de lancement rapide.

Logo Wrox

Livres Wrox sur SharePoint

Dernière modification : lundi 9 mars 2015

S’applique à : Business Connectivity Services | Open XML | SharePoint Designer 2010 | SharePoint Foundation 2010 | SharePoint Online | SharePoint Server 2010 | Visual Studio

Dans cet article
Présentation de la navigation dans SharePoint
Affichage de la hiérarchie de navigation
Ajout de liens à la navigation du site
Suppression de liens de la navigation du site
Conclusion
À propos de l’auteur

Auteur : Bryan Phillips

Rédacteurs : Articles des rédacteurs techniques WROX pour SharePoint 2010

Contenu

  • Présentation de la navigation dans SharePoint

  • Affichage de la hiérarchie de navigation

  • Ajout de liens à la navigation du site

  • Suppression de liens de la navigation du site

  • Conclusion

  • À propos de l’auteur

Télécharger le code (éventuellement en anglais)

Présentation de la navigation dans SharePoint

L’une des personnalisations les plus couramment demandées par les utilisateurs consiste à pouvoir changer la structure de navigation de leurs sites SharePoint 2010. Même si les éléments de navigation d’un site SharePoint sont automatiquement mis à jour avec l’arrivée de nouvelles listes et bibliothèques, ou de nouveaux sites, les utilisateurs désirent souvent modifier ou supprimer des liens. Dans un site intranet ou extranet SharePoint, l’utilisateur ajoute les liens aux ressources internes et externes qui seraient ordinairement profondément intégrées dans le site. Par exemple, un site centré sur un département ou un rôle spécifique possède généralement des liens vers des ressources largement distribuées.

Les utilisateurs naviguent principalement vers un site SharePoint en utilisant la Barre de liens supérieure, située en haut de la page, et la Barre de lancement rapide, située à gauche de la page, comme illustré à la figure 1.

Figure 1. Barre de liens supérieure et Barre de lancement rapide

Barre de liens supérieure et volet Lancement rapide

L’ensemble d’onglets sous le titre du site constitue la Barre de liens supérieure. La liste de liens à plusieurs niveaux sur le côté gauche de la page est la Barre de lancement rapide. Cette section explique comment configurer les liens que les contrôles de navigation affichent, et comment ajouter des liens aux ressources externes.

Vous utilisez différentes pages pour modifier la navigation dans SharePoint Foundation 2010 que celles utilisées dans SharePoint Server 2010. Le tableau 1 affiche les pages à modifier et l’édition de SharePoint 2010 qui les utilise.

Tableau 1. Modification de la navigation par édition

Contrôle de navigation

SharePoint Foundation 2010

SharePoint Server 2010

Barre de lancement rapide

Page Lancement rapide

Page Paramètres de navigation

Barre de liens supérieure

Page Barre de liens supérieure

Page Paramètres de navigation

Modification de la navigation dans SharePoint Foundation 2010

Vous pouvez utiliser la page Paramètres du site dans SharePoint Foundation 2010 pour accéder à plusieurs autres pages et pour modifier la navigation sur votre site. Pour ouvrir la page Paramètres du site, cliquez sur Actions du site, puis sur Paramètres du site.

La première page est la page Lancement rapide. Cliquez sur le lien Lancement rapide dans la section Aspect de la page Paramètres de site pour accéder à la page Lancement rapide. Les titres et les liens sont affichés tels qu’ils apparaissent sur la Barre de lancement rapide. Vous pouvez modifier un titre ou un lien en cliquant sur l’icône de modification située à gauche de l’élément que vous voulez modifier. Cliquez sur le lien Nouveau titre pour ajouter un nouveau titre au niveau supérieur. Cliquez sur Nouveau lien de navigation pour ajouter un nouveau lien sous l’un des titres. Cliquez sur Modifier l’ordre pour réorganiser les titres et les liens.

Figure 2. Lancement rapide

Lancement rapide

La page suivante est la page Barre de liens supérieure, qui affiche les onglets de la Barre de liens supérieure du site. Pour accéder à la page, cliquez sur la Barre de liens supérieure dans la section Aspect de la page Paramètres du site. Vous pouvez modifier un onglet en cliquant sur l’icône de modification à gauche de l’onglet. Vous pouvez créer de nouveaux onglets en cliquant sur Nouvelle navigation. Vous pouvez réorganiser les onglets en cliquant sur Modifier l’ordre.

Notes

Les liens des pages Lancement rapide et Barre de liens supérieure s’affichent uniquement dans SharePoint Foundation 2010. SharePoint Server 2010 utilise la page Paramètres de navigation, décrite dans la section suivante.

Figure 3. Barre de liens supérieure

Barre de liens supérieure

Modification de la navigation dans SharePoint Server 2010

Dans SharePoint Server 2010, la page Paramètres de navigation associe les fonctionnalités des pages Lancement rapide et Barre de liens supérieure en une seule page. Pour accéder à la page Paramètres de navigation, cliquez sur Navigation sous la section Aspect de la page Paramètres du site. Utilisez la section Navigation globale pour configurer la façon dont la Barre de liens supérieure se met automatiquement à jour. La case d’option vous permet de configurer si le site hérite sa Barre de liens supérieure de son site parent ou s’il utilise sa propre Barre de liens supérieure. Activez les cases à cocher si vous souhaitez que SharePoint Server 2010 affiche automatiquement les nouveaux sous-sites et les nouvelles pages dans le site quand ils sont créés.

Figure 4. Paramètres de navigation

Paramètres de navigation

La section Navigation actuelle s’applique à la Barre de lancement rapide. La section Tri vous permet de définir si les éléments de la Barre de liens supérieure et de la Barre de lancement rapide sont triés automatiquement. Les sections Modification de la navigation et Tri permettent d’ajouter des liens à la Barre de liens supérieure (Navigation globale) et à la Barre de lancement rapide (Navigation actuelle). Si vous cliquez sur Trier manuellement dans la section Tri, vous pouvez utiliser l’arborescence et les boutons au-dessus pour monter ou descendre les titres et les liens. Les autres boutons vous permettent de modifier, supprimer et ajouter de nouveaux titres et liens. Utilisez Afficher et masquer le ruban pour afficher ou masquer les contrôles qui affichent ou masquent le ruban. Si vous utilisez SharePoint Foundation 2010, la page Paramètres de navigation n’est pas disponible. Cependant, vous pouvez construire une fonctionnalité similaire, comme illustré dans les sections suivantes.

Affichage de la hiérarchie de navigation

Pour afficher des titres et des liens à la navigation d’un site, utilisez la propriété Navigation sur l’objet SPWeb du site que vous voulez personnaliser. La propriété Navigation retourne un objet SPNavigation qui représente la Barre de liens supérieure et la Barre de lancement rapide du site. La classe SPNavigation inclut la propriété TopNavigation et la propriété QuickLaunch, qui permettent d’accéder, de modifier et de supprimer les éléments de la Barre de liens supérieure ou de la Barre de lancement rapide.

using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;

SPWeb site = SPContext.Current.Web;
SPNavigationNodeCollection topLinkBar = 
    site.Navigation.TopNavigationBar;
SPNavigationNodeCollection topLinkBar = 
    site.Navigation.QuickLaunch;

Dans l’exemple de code précédent, la propriété Current de la classe SPContext est utilisée pour obtenir une instance de la classe SPWeb qui représente le site courant. Ensuite, la propriété Navigation de la classe SPWeb est utilisée pour obtenir les objets SPNavigationNodeCollection contenant les liensBarre de liens supérieure et Barre de lancement rapide, chacun d’eux représenté par un objet SPNavigationNode. Chaque objet SPNavigationNode possède une propriété Children contenant zéro ou plusieurs objets SPNavigationNode formant une hiérarchie. L’affichage de la hiérarchie avec un contrôle ASP.Net TreeView, comme illustré à la figure 5. Vous pouvez simplement ajouter le contrôle TreeView à une Page de site ou une à une Page d’application, mais vous ne pouvez pas utiliser le concepteur visuel de Visual Studio, car ces pages référencent les pages maîtres du site.

Figure 5. La Barre de liens supérieure et la Barre de lancement rapide affichées dans un contrôle TreeView

Barre de liens supérieure et volet Lancement rapide affichés...

Me code suivant permet de compléter le contrôle TreeView de la figure 5.

topNavTreeView.Nodes.Add(new TreeNode("Top Link Bar Links"));
quickLaunchTreeView.Nodes.Add(new TreeNode("Quick Launch Links"));
                
RecurseNodes(site.Navigation.TopNavigationBar, 
    topNavTreeView.Nodes[0].ChildNodes);
RecurseNodes(site.Navigation.QuickLaunch, 
    quickLaunchTreeView.Nodes[0].ChildNodes);

topNavTreeView.ExpandAll();
quickLaunchTreeView.ExpandAll();

Les deux contrôles TreeView sont initialement complétés avec un nœud racine, qui est le parent des nœuds de la Barre de liens supérieure et de la Barre de lancement rapide. Ensuite, un objet SPWeb du site en cours obtient une référence aux objets SPNavigationNodeCollection qui représentent la Barre de liens supérieure et la Barre de lancement rapide. L’objet SPNavigationNodeCollection et la propriété ChildNodes du nœud racine du contrôle TreeView associé sont transmis à la fonction RecurseNodes pour compléter le contrôle TreeView. La fonction RecurseNodes remplit le contrôle TreeView tel qu’il suit la hiérarchie de la Barre de liens supérieure et de la Barre de lancement rapide.

private void RecurseNodes(SPNavigationNodeCollection nodes, 
    TreeNodeCollection treeNodes) {

    foreach (SPNavigationNode node in nodes) {
        TreeNode treeNode = new TreeNode();
        treeNode.Text = node.Title;
        treeNode.ToolTip = node.Url;
        treeNode.ShowCheckBox = true;
        treeNode.Checked = node.IsExternal;
        treeNode.Value = node.Id.ToString();

        treeNodes.Add(treeNode);
        RecurseNodes(node.Children, treeNode.ChildNodes);
    }
}

Dans la fonction RecurseNodes, un nouvel objet TreeNode est créé pour chaque nœud de la Barre de liens supérieure et de la Barre de lancement rapide et ajouté au parent approprié dans le contrôle TreeView. L’objet TreeNode est configuré en utilisant les différentes propriétés de la classe SPNavigationNode, décrites dans le tableau 2. Enfin, la fonction RecurseNodes s’appelle à nouveau pour remplir les descendants du nœud courant.

Tableau 2. Propriétés de SPNavigationNode

Nom de la propriété

Description

Id

Identificateur unique de l’objet SPNavigationNode.

Title

Texte affiché du lien résultant.

Url

URL du lien résultant.

IsExternal

Indique si la valeur de Url pointe vers une ressource extérieure à SharePoint.

Notes

Dans la Barre de liens supérieure et la Barre de lancement rapide, seuls les deux premiers niveaux de la hiérarchie sont utilisés. Le premier niveau est affiché comme onglets de la Barre de liens supérieure. Le second niveau est affiché dans les menus déroulants sous les onglets si l’onglet comporte des enfants. Dans la Barre de lancement rapide, le premier niveau est affiché comme titre et le second niveau est affiché sous le lien de premier niveau approprié.

Ajout de liens à la navigation du site

Utilisez le code suivant pour ajouter un lien à la Barre de liens supérieure ou à la Barre de lancement rapide.

using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;

SPWeb site = SPContext.Current.Web;

SPNavigationNode node = new SPNavigationNode(
    topNavTitleTextBox.Text, topNavUrlTextBox.Text, 
    topNavIsExternalCheckBox.Checked);

if (topNavTreeView.SelectedNode == topNavTreeView.Nodes[0]) {
    site.Navigation.TopNavigationBar.AddAsLast(node);
} else {
    int parentId = int.Parse(topNavTreeView.SelectedNode.Value);
    site.Navigation.GetNodeById(parentId).Children.AddAsLast(node);
}

if (topNavOpenInNewWindowCheckBox.Checked) {
    node.Properties["Target"] = "_blank";
    node.Update();
}

Dans l’exemple de code précédent, transmettez le texte affiché et l’URL du lien, et indiquez si le lien pointe vers une ressource interne ou externe à SharePoint au constructeur de la classe SPNavigationNode.

Notes

Si vous passez False au paramètre isExternal du constructeur SPNavigationNode et que l’URL ne pointe pas vers une ressource interne à SharePoint, SharePoint lève une exception.

Si vous voulez ajouter le lien comme nœud de premier niveau afin qu’il apparaisse comme onglet, appelez la méthode site.Navigation.TopNavigationBar.AddAsLast et transmettez le nouvel objet SPNavigationNode. Sinon, utilisez la méthode GetNodeById de la classe SPNavigation pour obtenir une référence au nœud parent de la Barre de liens supérieure et utilisez à sa place la propriété Children. Dans ce cas, le lien apparaît dans le menu déroulant sous l’onglet parent.

À ce point, l’objet SPNavigationNode est ajouté à la Barre de liens supérieure et apparaît quand la page est à nouveau chargée. Cependant, si vous voulez que le lien s’ouvre dans une nouvelle fenêtre, vous devez utiliser la propriété Properties de la classe SPNavigationNode pour stocker une valeur pour l’attribut Target du lien. Utilisez _blank si vous voulez que le lien s’ouvre dans une nouvelle fenêtre du navigateur lorsque l’utilisateur clique sur le lien. Enfin, appelez la méthode Update sur SPNavigationNode pour enregistrer votre modification.

Notes

L’exemple de code précédent s’applique à la Barre de liens supérieure. Utilisez le même code pour la Barre de lancement rapide après avoir substitué les contrôles correspondants appropriés.

Suppression de liens de la navigation du site

Utilisez le code suivant pour supprimer un lien de la Barre de liens supérieure ou de la Barre de lancement rapide.

using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;

SPWeb site = SPContext.Current.Web;
int id = int.Parse(topNavTreeView.SelectedNode.Value);
SPNavigationNode node = site.Navigation.GetNodeById(id);
node.Delete();

SPNavigation

Remarque de mise en gardeAttention

Quand vous supprimez un objet SPNavigationNode, ses enfants sont aussi supprimés.

Conclusion

Il existe de nombreuses différences entre la modification de la navigation pour un site SharePoint Foundation 2010 et pour un site SharePoint Server 2010. Les pages Barre de lancement rapide et Barre de liens supérieure fournissent la modification de base de la navigation de votre site ; la page Paramètres de navigation regroupent les deux en une seule page. La page Paramètres de navigation offre aussi un meilleur contrôle quand les liens sont automatiquement ajoutés à la navigation du site. En utilisant le code du présent article, vous pouvez proposer un confort de modification de SharePoint Foundation 2010 similaire à celui de SharePoint Server 2010, ou intégrer des systèmes métier en créant automatiquement les liens à ces systèmes dans la navigation de votre site.

Pour télécharger le code qui accompagne cet article, voir Personnalisation par programme de la navigation du site (éventuellement en anglais).

À propos de l’auteur

Bryan Phillips est partenaire senior sur le site Composable Systems, LLC et MVP (Microsoft Most Valuable Professional) SharePoint Server. Il est le coauteur des ouvrages « Professional Microsoft Office SharePoint Designer 2007 » et « Beginning SharePoint Designer 2010 », et tient un blog sur SharePoint. Bryan utilise les technologies Microsoft depuis 1997 et est titulaire des certifications MCT (Microsoft Certified Trainer), MCSD (Microsoft Certified Solution Developer), MCDBA (Microsoft Certified Database Administrator) et MSCE (Microsoft Certified Systems Engineer).

Les rédacteurs techniques des articles sur Microsoft SharePoint 2010de Wrox sont les suivants :

  • Matt Ranlett est MVP SQL Server. Il a été l’un des piliers de la communauté de développeurs .NET d’Atlanta pendant de nombreuses années. Membre fondateur de Atlanta Dot Net Regular Guys, Matt a créé et gère des groupes d’utilisateurs de plusieurs régions. Bien qu’il consacre des dizaines d’heures aux activités de la communauté locale et nationale en dehors de son travail, telle que SharePoint 1, 2, 3! series, qu’il organise trois Code Camps à Atlanta, qu’il officie en tant que vice-président des technologies au conseil d’administration d’INETA et qu’il apparaisse dans plusieurs podcasts comme .Net Rocks et ASP.NET Podcast, Matt a récemment trouvé le temps de se marier à une femme formidable du nom de Kim, à qui il prête mains fortes pour élever trois énormes chiens. Matt travaille actuellement en tant que consultant senior avec Intellinet et fait partie de l’équipe en charge d’aider les gens à trouver des solutions innovantes qui permettent d’apporter une valeur ajoutée à leur activité.

  • Jake Dan Attis est expert en modèles, pratiques et gouvernance relatifs au développement de SharePoint, alors ne cherchez pas plus loin, vous avez trouvé l’homme qu’il vous faut. Originaire de Moncton au Canada et installé dans la région d’Atlanta, Dan est titulaire d’un diplôme de mathématiques appliquées, mais est un pur développeur SharePoint. Dan est à la fois participant, intervenant et organisateur d’événements dans la région d’Atlanta (code camps, SharePoint Saturdays et groupe d’utilisateurs SharePoint d’Atlanta). Lorsqu’il ne travaille pas dans Visual Studio, Dan aime passer du temps avec sa fille Lily, regarder des matchs de hockey et de football américain, et tester les bières du monde entier.

  • Kevin Dostalek a plus de 15 ans d’expérience dans le secteur informatique et plus de 10 ans dans la gestion de grands projets informatiques et du personnel informatique. Il a mené à bien des projets pour des entreprises de toutes tailles et a endossé plusieurs rôles, notamment développeur, architecte, analyste commercial, responsable technique, responsable du développement, chef de projet, responsable de programme et mentor/coach. Kevin a, par ailleurs, géré un service de remise de solutions en tant que vice-président pour une entreprise MS Gold Partner de taille moyenne de 2005 à 2008. Par la suite, il est devenu vice-président de l’innovation et de l’éducation. Début 2010, Kevin a créé Kick Studios, une société de services de consulting, développement et formation dans les domaines spécialisés de SharePoint et du Social Computing. Depuis, il participe activement à de nombreux groupes d’utilisateurs, sommets et conférences dans tout le pays. Pour en savoir plus sur Kevin, accédez à son blog, The Kickboard.

  • Larry Riemann a plus de 17 ans d’expérience dans l’élaboration et la création d’applications métiers pour le compte des plus grandes entreprises du monde. Larry est consultant indépendant et propriétaire d’Indigo Integrations. Il fait du consulting SharePoint exclusivement via SharePoint911. Il écrit des articles qui sont publiés et intervient parfois à des conférences. Au cours de ces dernières années, il s’est concentré sur SharePoint et a créé et étendu des fonctionnalités là où SharePoint ne proposait rien. En plus d’utiliser SharePoint, Larry est un architecte .Net accompli et a acquis une large expertise en intégration de systèmes, architecture d’entreprise et solutions de haute disponibilité. Retrouvez-le sur son blog.

  • Sundararajan Narasiman est architecte technique dans le groupe Portails et gestion de contenu de Cognizant Technology Solutions, Chennai. Il a plus de 10 ans d’expérience dans le secteur. Sundararajan est avant tout consultant en architecture et en technologie pour SharePoint 2010 Server et les développements .NET 3.5. La programmation est sa passion. Il s’intéresse également à la méthode Extreme Programming & TDD.