Gérer l’affichage du ruban SharePoint 2010

Dans le cadre d’un projet de site de publication (Internet voir Intranet/Extranet), une demande revient invariablement : gérer l’affichage du ruban Office.

En effet, et ce malgré des droits gérés au plus juste, vous aurez quoi qu’il arrive un minimum d’informations affichées dans la zone du ruban Office. En l’occurence :

  • Bien évidemment, le ruban Office (incluant ses différents onglets)
  • Le bouton « Actions du site »
  • Le fil d’Ariane (Breadcrumb)
  • Le bouton de paramètres utilisateurs/déconnexion
  • Des choses plus « exotiques » comme le bouton du développeur dashboard ou le bouton de modification de pages

Ribbon

Partons du principe que tous les éléments cités n’ont pas à être affichés sur notre site de publication pour les non-administrateurs (on pourrait aussi exclure les personnes non-authentifiés dans le cas d’un site Web exposé en anonyme).

Pour nous permettre de masquer les éléments suivants les droits des utilisateurs, nous allons donc utiliser la propriété PermissionsString via un contrôle  SPSecurityTrimmedControl (l’article énumère les types de permissions possible). Pour l’exercice, nous allons englober le contrôle SPRibbon comme suit (n’oubliez pas la balise fermante après </SharePoint:SPRibbon) :

<SharePoint:SPSecurityTrimmedControl runat="server" PermissionsString="ManageWeb">

Dans le cas présent, nous pouvons constater que seul le bloc lié au ruban est encore visible.

SPTrimmed

Supprimez ce que nous venons de faire, essayons-donc de passer un niveau en dessous. Le PermissionsString pouvant être appliqué directement au contrôle SPRibbon, il nous suffit de modifier la page maître de notre site de publication comme suit :

<SharePoint:SPRibbon runat="server" PlaceholderElementId="RibbonContainer" CssFile="" PermissionsString="ManageWeb">

Dans ce cas, l’ajout de cette propriété permet effectivement de ne pas charger le bandeau.

SPRibbon

Essayons maintenant de faire disparaître ce bandeau supérieur. Pour se faire utilisons un SPSecurityTrimmedControl sur le div englobant le ruban. A savoir, <div id= »s4-ribbonrow »>.

NoRibbon

Vous devriez vite constater que les barre défilement de votre site réagissent bizarrement, empêchant par la même vos utilisateurs de faire défiler vos pages Web. Cela est dû au fait que la balise <DIV> s4-ribbonrow ne soit plus chargée. Sans rentrer dans les différents détails de chargement inhérent aux classes CSS appliquées, nous allons essayer de feinter en utilisant un hack CSS.

Supprimez ce que nous venons de faire, et ajouter le bout de code suivant après le </DIV> de s4-ribbonrow :

<style type="text/css">
div#s4-ribbonrow {
display:none;
}
</style>

On retrouve le même rendu fonctionnel qu’auparavant, sauf que cette fois ci, les barres de défilement fonctionnent parfaitement. Seul soucis, vous aurez le même rendu en vous connectant avec un utilisateur ayant des droits. Pour palier à ce soucis, ajoutez après le code précédent, les lignes suivantes :

<SharePoint:SPSecurityTrimmedControl runat="server" PermissionsString="ManageWeb">
<style type="text/css">
div#s4-ribbonrow {
display:block;
}
</style>
</SharePoint:SPSecurityTrimmedControl>

Si on résume la manipulation, pour nous permettre de ne pas casser la logique de navigation de SharePoint, nous cachons seulement le ruban, que nous ré-affichons ensuite aux administrateurs.

Vous pouvez également, histoire de donner quelques autres pistes, utiliser un contrôle LoginView. Il s’agit d’une méthode qui peut paraître plus simple d’utilisation que le SPSecurityTrimmedControl, car celui-ci introduit une notion de template d’utilisateurs (LoggedInTemplate, etc.).

Dernière petite astuce. Pour en revenir aux barres défilement, si vous souhaitez vous libérer de l’ancrage du ruban en haut de page, procédez à la manipulation suivante :

  • ajouter le hack CSS suivant (il faut qu’il puisse écraser la référence du CSS corev4) : body.v4master { overflow:auto; }
  • supprimez la référence scroll= »no » de la balise <BODY>
  • puis supprimez la référence ID= »s4-workspace” de sa balise <DIV>

Voilà, maintenant vous devriez avoir quelques bases nécessaires sur la gestion de l’affichage du ruban. Cet article est loin de faire le tour du sujet, mais permet de prendre conscience de différentes techniques et méthodes utilisées pour gérer le ruban Office … et indirectement, personnaliser vos interfaces SharePoint.

Message d’erreur « Les alertes ont été désactivées pour ce serveur virtuel »

Le message est assez explicite, n’essayez pas de comprendre la notion « virtuel », ça ne fait référence qu’à votre Web Application (WA).

Donc pour résumer les alertes sont justes désactivées sur votre WA. Pour les réactiver, deux solutions :

  • Via l’interface graphique de la centrale d’administration
    • « Gestion des applications » > « Gérer les applications Web »
    • « Paramètres généraux » > « Paramètres généraux » de votre WA
    • « Alertes » > « Activer »
  • Via stsadm
    • stsadm -o setproperty -propertyname alerts-enabled -propertyvalue true -url <URL de votre WA>

Si vous avez toujours des problèmes d’envois des alertes, jetez un coup d’oeil du côté du Timer Job d’envoi immédiat des alertes (job-immediate-alerts).