SharePoint - Fonctionnalités et éléments

Dans ce chapitre, nous examinerons les fonctionnalités et les éléments. Les fonctionnalités sont à certains égards le modèle de composant dans SharePoint. Ils vous permettent de définir des unités logiques de fonctionnalité.

Par exemple, vous voudrez peut-être avoir la capacité dans un site -

  • Pour créer une liste avec un schéma spécifique,

  • Avoir une page qui affichera les données de cette liste, puis

  • Avoir un lien ou une option de menu quelque part dans le site pour accéder à cette page.

Vous pouvez créer une fonction, qui définit ce regroupement logique de fonctionnalités. Les différentes fonctionnalités sont définies par des éléments.

Il y aurait donc un élément qui -

  • Crée la liste et définit le schéma.

  • Provisionne la page dans votre site SharePoint, et

  • Crée l'option de menu ou le lien.

La fonction définit l'unité, puis les éléments définissent les éléments individuels de fonctionnalité à l'intérieur de cette unité. Nous avons discuté des trois types d'éléments -

  • Une instance de liste pour créer une liste.

  • Un module pour provisionner une page.

  • Une action personnalisée pour créer une option de menu ou un lien.

Cependant, il existe de nombreux autres types d'éléments qui peuvent être créés dans SharePoint. Un autre concept important à comprendre sur les fonctionnalités est celui de l'activation et de la désactivation.

Par exemple, si un utilisateur final souhaite que la fonctionnalité mentionnée ci-dessus soit ajoutée à son site, il activerait la fonctionnalité correspondante qui créerait la liste, ajouterait l'option de menu ou le lien et mettrait la page en service sur son site. Plus tard, il pourrait désactiver la fonctionnalité pour supprimer la fonctionnalité.

Il est important de noter que lors de la désactivation d'une fonctionnalité, certains éléments sont automatiquement supprimés. Par exemple, SharePoint supprimerait automatiquement l'option de menu ou le lien, qui est défini par une action personnalisée.

D'autres ne sont pas supprimés automatiquement. Par conséquent, dans notre cas, l'instance de liste et la page ne seraient pas supprimées automatiquement.

Par conséquent, en tant que développeur, vous devez comprendre quels éléments sont supprimés automatiquement et lesquels ne le sont pas. Si vous souhaitez supprimer ceux qui ne sont pas supprimés automatiquement, vous pouvez écrire du code dans unfeature receiver.

Examinons le fonctionnement des fonctionnalités et des éléments. Nous commencerons par la vue des utilisateurs finaux sur les fonctionnalités.

Step 1 - Ouvrez votre site SharePoint.

Step 2 - Pour accéder aux paramètres du site, vous disposez de deux liens qui vous permettent de gérer les fonctionnalités.

  • Le premier lien Manage Site features se trouve sous Actions du site, ce qui vous permet de gérer les fonctionnalités de l'étendue du site.

  • L'autre lien Site collection features sous Administration de la collection de sites, qui vous permet de gérer les fonctionnalités d'étendue de la collection de sites.

Step 3- Si vous cliquez sur l'un de ces liens, vous serez redirigé vers une page, qui montre les fonctionnalités actuellement actives et inactives. Pour chacune des fonctionnalités, vous avez la possibilité d'activer ou de désactiver la fonctionnalité.

Prenons un exemple simple en créant un nouveau projet vide de solutions SharePoint.

Step 1 - Appelons ça FeaturesAndElements et cliquez sur OK.

Step 2 - Spécifiez le site que vous souhaitez utiliser et sélectionnez le Deploy as a farm solution puis cliquez sur Terminer.

La première chose que nous voulons créer est la fonctionnalité. Dans l'Explorateur de solutions, vous pouvez voir un dossier Fonctionnalités, qui est actuellement vide.

Step 3 - Faites un clic droit sur le Features dossier et choisissez Add Feature. Il crée une fonctionnalité nomméeFeature1, et il ouvre le concepteur de fonctionnalités. Le titre par défaut est le titre du projet, plus le titre de la fonction.

Step 4 - Renommez la fonctionnalité de Feature1 à Sample.

Le titre et la description sont ce que l'utilisateur voit dans la page où il active et désactive les fonctionnalités.

Définissez le titre sur Sample Feature et la description de Adds the Contacts list and the page is used to view the list. L'autre chose que nous devons définir est la portée de la fonctionnalité, qui est la portée d'activation.

Il peut s'agir d'une batterie de serveurs, d'une application Web, d'une collection de sites ou d'un site. Dans ce cas, nous allons fournir une liste et une page. Depuis, les deux vivent dans un site SharePoint, nous allons donc choisir Web ici.

Step 5- Commençons par ajouter des fonctionnalités à nos éléments. Le premier élément sera la liste et nous créerons une liste de contacts. Faites un clic droit sur votre projet et choisissezAdd → New Item...

Step 6- Sélectionnez Liste dans le volet central et entrez Contacts dans le champ de nom. Cliquez sur Ajouter.

Step 7- Vous verrez l'assistant de création de liste. Créez une liste appelée Contacts basée sur la liste des contacts. Cliquez sur Terminer pour créer la liste ou au moins créer l'élément, qui finira par créer la liste.

Ci-dessous, la capture d'écran du concepteur de liste.

Step 8- Ce concepteur n'est qu'un éditeur XML. Ouvrez le fichier Elements.xml sous Contacts et ajoutez les données suivantes.

<?xml version = "1.0" encoding = "utf-8"?>

<Elements xmlns = "http://schemas.microsoft.com/sharepoint/">
   <ListInstance Title = "Contacts" OnQuickLaunch = "TRUE" TemplateType = "105" 
      FeatureId = "00bfea71-7e6d-4186-9ba8-c047ac750105"
      Url = "Lists/Contacts" Description = "">
      <Data>
         <Rows>

            <Row>
               <Field Name = "ID">1</Field>
               <Field Name = "Last Name">Anders</Field>
               <Field Name = "First Name">Maria</Field>
               <Field Name = "Company">Alfreds Futerkiste</Field>
               <Field Name = "Business Phone">030-0074321</Field>
            </Row>

            <Row>
               <Field Name = "ID">2</Field>
               <Field Name = "Last Name">Hardy</Field>
               <Field Name = "First Name">Thomas</Field>
               <Field Name = "Company">Around the Horn</Field>
               <Field Name = "Business Phone">(171) 555-7788</Field>
            </Row>

            <Row>
               <Field Name = "ID">3</Field>
               <Field Name = "Last Name">Lebihan</Field>
               <Field Name = "First Name">Laurence</Field>
               <Field Name = "Company">Bon app'</Field>
               <Field Name = "Business Phone">91.24.45.40</Field>
            </Row>

            <Row>
               <Field Name = "ID">4</Field>
               <Field Name = "Last Name">Ashworth</Field>
               <Field Name = "First Name">Victoria</Field>
               <Field Name = "Company">B's Beverages</Field>
               <Field Name = "Business Phone">(171) 555-1212</Field>
            </Row>

            <Row>
               <Field Name = "ID">5</Field>
               <Field Name = "Last Name">Mendel</Field>
               <Field Name = "First Name">Roland</Field>
               <Field Name = "Company">Ernst Handel</Field>
               <Field Name = "Business Phone">7675-3425</Field>
            </Row>

         </Rows>
      </Data>
   </ListInstance>
</Elements>

Notez ce qui suit -

  • À l'intérieur de ListInstance élément, nous avons un élément appelé Data et il a quelques rangées à l'intérieur.

  • ListInstance aura des attributs Contacts, que nous montrions ou non dans le lancement rapide.

  • Nous voulons une liste basée sur un modèle de contact. Ici,TemplateType est réglé sur 105. Ce n'est pas un nombre aléatoire mais un nombre avec une signification.

  • Chacun des types de liste par défaut que vous pouvez avoir dans SharePoint, comme une liste d'annonces, une liste de tâches, une liste de contacts, etc., est associé à un numéro. Par conséquent, si vous remplacez 105 par 107, vous obtiendrez un type de liste différent.

  • FeatureId est le guide associé à la définition de la liste de contacts.

Step 9- Maintenant, nous voulons avoir une page, qui affiche les données de cette liste. Faites un clic droit sur votre projet et choisissezAdd → New Item... Choisissez Module dans le volet central, entrez SitePage dans le champ de nom, puis cliquez sur Add.

Vous verrez un nœud appelé SitePage, qui a deux fichiers, Elements.xml et Sample.txtfichier. Nous ne souhaitons pas provisionner ce fichier sample.txt, mais nous souhaitons provisionner un SitePage.

Step 10 - Renommez le fichier texte en Contacts.aspx et remplacez le code suivant -

<%@ Assembly Name = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" %>

<%@ Page MasterPageFile = "~masterurl/default.master"
   meta:progid = "SharePoint.WebPartPage.Document" %>

<%@ Register TagPrefix = "SharePoint"
   Namespace = "Microsoft.SharePoint.WebControls"
   Assembly = "Microsoft.SharePoint, Version = 14.0.0.0, Culture = neutral,
   PublicKeyToken = 71e9bce111e9429c" %>

<asp:Content ID = "Content2" runat = "server" ContentPlaceHolderID = "PlaceHolderMain">
   <SharePoint:SPDataSource runat = "server"
      ID = "ContactsDataSource" DataSourceMode = "List"
      UseInternalName = "false">
      <SelectParameters>
         <asp:Parameter Name = "ListName" DefaultValue = "Contacts" />
      </SelectParameters>
   </SharePoint:SPDataSource>
   
   <SharePoint:SPGridView runat = "server"
      ID = "ContactsGridView" DataSourceID = "ContactsDataSource"
      AutoGenerateColumns = "false" RowStyle-BackColor = "#DDDDDD"
      AlternatingRowStyle-BackColor = "#EEEEEE">
      <Columns>
         <asp:BoundField HeaderText = "Company"
            HeaderStyle-HorizontalAlign = "Left" DataField = "Company" />
         <asp:BoundField HeaderText = "First Name"
            HeaderStyle-HorizontalAlign = "Left" DataField = "First Name" />
         <asp:BoundField HeaderText = "Last Name"
            HeaderStyle-HorizontalAlign = "Left" DataField = "Last Name" />
         <asp:BoundField HeaderText = "Phone"
            HeaderStyle-HorizontalAlign = "Left" DataField = "Business Phone" />
      </Columns>
   </SharePoint:SPGridView>
</asp:Content>

<asp:Content ID = "PageTitle" ContentPlaceHolderID = "PlaceHolderPageTitle"
   runat = "server">
   Contacts
</asp:Content>

<asp:Content ID = "PageTitleInTitleArea"
   ContentPlaceHolderID = "PlaceHolderPageTitleInTitleArea" runat = "server" >
   Contacts
</asp:Content>

Le SitePage a un SP.DataSourcefichier, que nous utiliserons pour créer les données de la liste de contacts, quelque chose que nous pouvons lier dans notre page. leSP.GridView affichera les informations sur les contacts.

C'est notre SitePage et examinons maintenant la fonctionnalité.

Remarquez, dans Items in the Feature, L'instance de liste de contacts et la disposition du module sur notre SitePage ont été ajoutés en tant qu'éléments.

Visual Studio comprend que les éléments seuls ne peuvent rien faire. Les éléments doivent faire partie d'une fonctionnalité. Par conséquent, lorsque vous ajoutez un élément, vous devez l'ajouter dans la fonctionnalité.

Step 11 - Accédez à votre projet et faites un clic droit et choisissez Add → New Item...

Ici, nous voulons ajouter une CustomAction, alors sélectionnez Empty Element dans le volet central, appelez cette action, puis cliquez sur Ajouter.

Si vous revenez à votre fonctionnalité, vous pouvez voir que l'élément a maintenant été ajouté à la fonctionnalité, comme indiqué dans la capture d'écran ci-dessous.

Step 12 - Revenez à Elements.xml sous Action et remplacez le code suivant -

<?xml version = "1.0" encoding = "utf-8"?>

<Elements xmlns = "http://schemas.microsoft.com/sharepoint/">
   <CustomAction
      Id = "SiteActionsToolbar"
      GroupId = "SiteActions"
      Location = "Microsoft.SharePoint.StandardMenu"
      Sequence = "100"
      Title = "Contacts"
      Description = "A page showing some sample data">
      <UrlAction Url = "~site/SitePages/Contacts.aspx"/>
   </CustomAction>
</Elements>

Maintenant, si vous souhaitez ajouter un lien ou une option de menu, vous devez définir où vous allez l'ajouter et c'est une combinaison de Location et GroupId, qui les définissent. Cette combinaison de valeurs indique que l'option de menu doit être ajoutée au menu SiteActions.

Il existe de nombreuses autres combinaisons de valeurs, qui ajoutent le lien ou le menu à d'autres endroits de notre site SharePoint. C'est quelque chose que vous devrez rechercher pour savoir quelle est la bonne combinaison de valeurs dont vous avez besoin lorsque vous souhaitez ajouter une option de menu quelque part dans SharePoint.

Step 13 - Double-cliquez sur le Feature, vous verrez le concepteur de fonctionnalités. Le concepteur de fonctionnalités est un éditeur sophistiqué du manifeste de fonctionnalités, qui est un document XML.

Points importants -

  • La fonction définit le regroupement logique des éléments. Ici, notre Fonctionnalité fait référence à nos trois manifestes Elément que nous venons de créer.

  • Lorsque vous activez la fonctionnalité, SharePoint examine le manifeste d'élément individuel et ajoute la liste, la page et le lien dans notre site SharePoint.

  • Lorsque vous déployez à l'aide de Visual Studio, il active automatiquement toutes les fonctionnalités de votre projet. Puisque nous souhaitons passer par le processus d'activation de la fonctionnalité, nous allons dire à Visual Studio de ne pas le faire.

Step 14- Accédez aux propriétés du projet en allant dans l'onglet SharePoint. Remplacez la configuration de déploiement parNo Activation.

Testons cela.

Step 15 - Faites un clic droit sur votre projet dans l'Explorateur de solutions et choisissez Deploy. Il regroupera tous les éléments de votre projet et le déploiera sur votre ferme de développement SharePoint.

Une fois qu'il est déployé avec succès, vous le verrez dans la fenêtre Sortie.

Step 16- Accédez au site SharePoint et actualisez-le. Aller auSite Settings → Site Actions.

Step 17 - Sélectionnez les fonctionnalités de gestion du site car votre fonctionnalité personnalisée a une portée Web et vous verrez votre Sample Feature. Vous pouvez voir que cette fonctionnalité n'a pas été activée, alors allons-y et activez-la.

Vous verrez la liste des contacts dans le volet gauche.

Step 18 - Cliquez sur Contact et les données que nous avions dans la liste seront affichées.

Step 19- Allez dans le menu Actions du site. Il existe une option pour accéder à la page Contacts. C'est notre CustomAction.

Step 20 - Si vous cliquez sur Contacts, vous verrez votre SitePage, affichant les données de la liste Contacts.