L'utilisation du JavaScript est un moyen efficace et peut coûteux en développement pour cacher les différentes actions qui peuvent apparaître sur une page SharePoint.
Il est en effet possible grâce à une simple fonction Javascript insérable dans la masterpage, de cacher les différentes actions :
- Mes paramètres
- Se connecter en tant qu'utilisateur différent
- Demander l'accès
- Se déconnecter
- Personnaliser cette page
- Créer
- Modifier la page
- Paramètres du site
- Nouvel élément
- M'avertir
- Créer une colonne
- Créer un affichage
- Paramètres - Liste
- Tous les éléments
- Modifier cet affichage
- Créer un affichage
- Télécharger un document
- Télécharger plusieurs documents
- Modifier dans la feuille de données
- Ouvrir avec l'Explorateur Windows
- Exporter vers une feuille de calcul
- Afficher le flux RSS
La fonction javascript est la suivante :
<script type="text/javascript" language="javascript">
function cacherActionPortail()
{
var menuItem;
var menuItemName;
var menuItemIndex=-1;
var menuItemNames=new Array("Mes paramètres",
"Se connecter en tant qu'utilisateur différent",
"Demander l'accès",'se déconnecter','Personnaliser cette page','Créer'
,"Modifier la page","Paramètres du site","Nouvel élément",
"M'avertir","Créer une colonne","Créer un affichage",
"Paramètres - Liste","Tous les éléments",
"Modifier cet affichage","Créer un affichage",
"Télécharger un document","Télécharger plusieurs documents","Modifier dans la feuille de données",
"Ouvrir avec l'Explorateur Windows","undefined","Exporter vers une feuille de calcul","Afficher le flux RSS");
var menuItems = new Array("PersonalInformation",
"LoginAsDifferentUser","RequestAccess",
"Logout","PersonalizePage",
"MenuItem_Create","MenuItem_EditPage",
"MenuItem_Settings","New0","SubsribeButton",
"AddColumn","AddView",
"ListSettings","DefaultView","ModifyView",
"CreateView","Upload",
"MultipleUpload","EditInGridButton","OpenInExplorer","OfflineButton",
"ExportToSpreadsheet","ViewRSS");
var allMenuItems = document.getElementsByTagName('ie:menuitem');
for(var i = 0; i < cacherActionPortail .arguments.length; i++ )
{
menuItemName= cacherActionPortail .arguments[i].toLowerCase();
for (j=0; j < menuItemNames.length; j++)
{
if(menuItemNames[j].toLowerCase()==menuItemName)
{
menuItemIndex = j;
break;
}
}
menuItem=menuItems[menuItemIndex];
for (var l = 0; l < allMenuItems.length; l++)
{
if(menuItemName.indexOf(":")!=-1)
{
menuItemName = menuItemName.split(":")[1];
}
if (allMenuItems[l].id.indexOf(menuItem)!=-1
&& allMenuItems[l].text.toLowerCase() == menuItemName)
{
// For FireFox Compatibility
var parentNodeOfMenuItem = allMenuItems[l].parentNode;
parentNodeOfMenuItem.removeChild(allMenuItems[l]);
break;
}
}
}
}
</script>
Ainsi que l'appel de la fonction depuis le 'Page_Load' de la master page :
protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "click","cacherActionPortail (\"Afficher le flux RSS\",\"Modifier dans la feuille de données\",\"Exporter vers une feuille de calcul\");", true);
}