Procédure : Personnaliser le Ruban d’ensemble de documents
Dernière modification : mercredi 7 juillet 2010
S’applique à : SharePoint Server 2010
La fonctionnalité d’ensemble de documents inclut son propre onglet de Ruban. Cette rubrique explique comment ajouter un bouton au Ruban d’ensemble de documents. L’ajout d’un bouton au Ruban vous permet de mettre en œuvre un scénario dans lequel vous pouvez implémenter une fonctionnalité qui fait appel au Ruban pour effectuer des actions spécifiques.
Utilisez deux fichiers XML pour créer le bouton du Ruban. Placez ces fichiers dans le dossier Features (qui, par défaut, se trouve dans le dossier Program Files\common files\Microsoft shared\web server extensions\14\template\features), dans leur propre dossier. Nommez ce dossier addzipribbon. Les deux fichiers, Element.xml et Feature.xml, définissent respectivement les éléments de la personnalisation de Ruban et de l’enregistrement de fonctionnalité.
Les utilisateurs souhaiteront peut-être télécharger tout le contenu d’un ensemble de documents plutôt que de télécharger chaque fichier individuellement. Les ensembles de documents utilisent une infrastructure d’exportation pour envoyer des ensembles de documents à des organisateurs de contenu à l’aide de Send to, mais vous pouvez également utiliser l’infrastructure d’exportation pour exporter des fichiers .zip afin que les utilisateurs puissent les télécharger. Pour cela, vous devez créer un fichier .dll qui utilise le modèle objet d’ensemble de documents.
Créer et ajouter un bouton
Créez le fichier Element.xml.
Element.xml
<Elements xmlns="https://schemas.microsoft.com/sharepoint/"> <CustomAction Id="Ribbon.Documents.DocsetZip" Title="Download Document Set as ZIP" RegistrationType="ContentType" RegistrationId="0x0120D520" Location="CommandUI.Ribbon" > <CommandUIExtension> <CommandUIDefinitions> <CommandUIDefinition Location="Ribbon.ManageDocumentSet.MDS.Manage.Controls._children"> <Button Id="Ribbon.ManageDocumentSet.MDS.Manage.Controls.DownasZip" Sequence="20" Command="Ribbon.ManageDocumentSet.MDS.Manage.DownZip" Alt="Download as ZIP" Image16by16="/_layouts/images/zipfile16x.png" Image32by32="/_layouts/images/zipfile32x.png" LabelText="Download as ZIP file" ToolTipTitle="Download as ZIP file" ToolTipDescription="Compress the document set and download" TemplateAlias="o1" /> </CommandUIDefinition> </CommandUIDefinitions> <CommandUIHandlers> <CommandUIHandler Command="Ribbon.ManageDocumentSet.MDS.Manage.DownZip" CommandAction="javascript:__doPostBack('DownloadZipDelegateEvent', '')" /> </CommandUIHandlers> </CommandUIExtension> </CustomAction> </Elements>
RegistrationID doit être l’ID du type de contenu d’ensemble de documents sur lequel vous souhaitez que ce bouton du Ruban apparaisse. 0x0120D520 est l’ID de type de contenu d’ensemble de documents de base ; ce bouton du Ruban apparaîtra sur tous les types de contenu d’ensemble de documents.
Location spécifie l’onglet du Ruban de l’ensemble de documents.
Image16by16 et Image32by32 pointent vers des images situées dans le dossier /_layouts/images sur le serveur. Vous pouvez spécifier vos propres fichiers image.
LabelText, ToolTipTitle et ToolTipDescription sont des chaînes de texte utilisées pour le titre du Ruban et l’info-bulle.
CommandAction indique ce que fait le bouton du Ruban. Dans cet exemple, ECMAScript (JavaScript, JScript) utilise un événement de publication dans le DownloadZipDelegateEvent.
Feature.xml
<?xml version="1.0" encoding="utf-8"?> <!-- _lcid="1033" _version="14.0.3427" _dal="1" --> <!-- _LocalBinding --> <!-- Copyright (c) Microsoft Corporation. All rights reserved. --> <Feature xmlns="https://schemas.microsoft.com/sharepoint/" Id="{CC06B38F-B9AB-4227-841C-DC9F438345A7}" Title="Add new button" Description="Add new button to ribbon" Version="1.0.0.0" Scope="Web" Hidden="TRUE"> <ElementManifests> <ElementManifest Location="element.xml" /> </ElementManifests> </Feature>
Après avoir ajouté ces fichiers au dossier, activez la fonctionnalité en exécutant les commandes suivantes.
stsadm.exe –o installfeature –filename adddocsetribbon\feature.xml stsadm.exe –o activatefeature –filename adddocsetribbon\feature.xml –url "http://<server>"
Remplacez http://<server> par l’emplacement du site Web où vous souhaitez activer votre fonctionnalité. Une fois la fonctionnalité installée, naviguez jusqu’à un ensemble de documents et cliquez sur l’onglet du Ruban Ensemble de documents pour afficher votre bouton.
Télécharger l’ensemble de documents en tant que fichier .ZIP
Utilisez le modèle objet Microsoft.Office.DocumentManagement.DocumentSets pour créer un événement délégué qui obtient l’élément SPList actif et obtient l’ensemble de documents. Cet exemple utilise l’événement MyRibbonDelegate.
using System; using Microsoft.SharePoint; using Microsoft.Office.DocumentManagement.DocumentSets; using System.Web.UI.WebControls; namespace MyRibbonDelegate { public class MyRibbonDelegateClass : WebControl { protected override void OnLoad(EventArgs e) { this.EnsureChildControls(); base.OnLoad(e); if (this.Page.Request["__EVENTTARGET"] == "DownloadZipDelegateEvent") { SPListItem currentItem = SPContext.Current.ListItem; DocumentSet currentDocset = DocumentSet.GetDocumentSet(currentItem.Folder); this.Page.Response.ContentType = "application/zip"; currentDocset.Export(this.Page.Response.OutputStream, 1024); this.Page.Response.End(); } } } }
Lorsque la cible d’événement de demande de page est égale à l’événement délégué, le code s’exécute et obtient l’objet SPListItem actif et l’ensemble de documents. La méthode Export() pour l’ensemble de documents est appelée et spécifiée par le paramètre OutputSteam de la page, qui obtient le fichier dans l’ensemble de documents. Pour l’exportation, il existe un deuxième paramètre qui est un int dont la valeur est 1024. La définition du paramètre int par incréments de 1024 vous permet de spécifier en Mo la valeur qui peut être exportée. S’il y a plus de 1 Go de fichiers dans l’ensemble de documents, l’événement échoue.
Cliquez sur le bouton personnalisé créé lors de la première procédure pour appeler ce code. Une boîte de dialogue s’affiche et vous invite à ouvrir ou à enregistrer l’ensemble de documents en tant que package .zip.