dimanche 1 novembre 2009

Premiers pas en Sharepoint (étape 4)

Activation de la feature

Pour activer une feature, il faut aller dans les actions du site.
Si la feature a Scope="Site", il faudra aller dans le "Site collection features" ("fonctionnalité de la collection de site").
Si la feature a Scope="Web", il faudra aller dans le "Site features" ("fonctionnalité du site").

Vous verrez votre feature dans la liste, cliquez sur Activate.





Maintenant cliquez sur la site action bar, et vous verrez en bas de ce menu, le titre de votre element defini dans Premiers pas en Sharepoint (étape 2)




















Vous aurez cette page qui s'affiche après avoir cliquer sur votre feature :











Voilà, Félicitation, vous avez créer votre première feature, mainteannt il ne vous reste qu'a développer tous ce que vous savez pour faire tous ce que vous voulez.

N'hésitez pas à commenter.

Premiers pas en Sharepoint (étape 3)

Suite de Premiers pas en Sharepoint (étape 2)


Pour la création de la page, nous aurons besoin de l'ID de l'assembly, pour ce faire nous aurons besoin de reflector à télécharger ici.
Pour connaitre cet ID, il vous faut compiler le projet, verifiez bien que le GAC accepte bien l'assembly.
Une fois le projet compiler, lancer Reflector, puis File->Open-> allez dans le dossier de comilation du projet, puis ouvrez le fichier FirstFeature.dll.

En bas de la fenetre vous verrez :







Name : c'est cette ligne qu'il faudra copier pour la page.

Passons à la création de la page aspx.


Pour commencer, où allons-nous mettre cette page???
Nous allons la mettre dans le dossier LAYOUTS/FirstFeature.
Click droit -> add new Item, selectionnez Web Form, nommez ce fichier FirstFeaturePage.aspx.
Dans le context de sharepoint, nous pouvons utiliser les placeholder de la master page.
Donc, à cette étape supprimez le contenu de cette page et coller ce code:

<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Assembly Name="FirstFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b6897623fa5e9b8b" %>
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master" Inherits="FirstFeature.ApplicationPage"
EnableViewState="false" EnableViewStateMac="false" %>

<%@ Import Namespace="Microsoft.SharePoint" %>

<asp:Content ID="Main" runat="server" contentplaceholderid="PlaceHolderMain" %>
<table border="1" cellpadding="4" cellspacing="0" style="font-size:12">
<tr>
<td>Site Title:</td>
<td> <asp:Label ID="lblSiteTitle" runat="server" /></td>
</tr>
<tr>
<td>Site ID:</td>
<td> <asp:Label ID="lblSiteID" runat="server" /></td>
</tr>
<table>
</asp:Content>

<asp:Content ID="PageTitle" runat="server" contentplaceholderid="PlaceHolderPageTitle" >
Hello World
</asp:Content>

<asp:Content ID="PageTitleInTitleArea" runat="server" contentplaceholderid="PlaceHolderPageTitleInTitleArea" >
The Application Page of My First Feature
</asp:Content>

A la deuxième déclaration d'Assembly, il faut mettre ce qui est écrit dans reflector.

la partie <% @Page donne le langage, le fichier master page, et la classe de reference du code behind.

La première partie Content, va utiliser 2 labels qui vont accueillir l'ID et le titre du site.

La deuxième partie va change le titre de la page.

La troisième partie va inscrire le titre de la section principal.

Passons à la création du code behind

Pour créer le code behind, utilisons la classe qui est déjà créé, renommez la ApplicationPage.

Copiez ce code :


using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;

namespace FirstFeature
{
public class ApplicationPage : LayoutsPageBase
{
//add control fields to match controls tags on .aspx page
protected Label lblSiteTitle;
protected Label lblSiteID;

protected override void OnLoad(EventArgs e)
{
//get current Site and Web
SPSite siteCollection = this.Site;
SPWeb site = this.Web;

//program against controls on .aspx page

lblSiteTitle.Text = site.Title;
lblSiteID.Text = site.ID.ToString().ToUpper();
}
}
}

En surchargeant la méthode OnLoad, on va éxécuter du code au chargement de la page.
Ce bout de code, va écrire dans les labels, l'ID et le titre du site.

Compilez votre projet, puis lisez le prochain article.

Premiers pas en Sharepoint (étape 2)

Pour réaliser ce tutoriel allez voir Premiers pas en Sharepoint (étape 1).

Creation d'un nouveau projet de feature sharepoint

Pour créer votre premier projet sharepoint, lancez VS2008, créez un nouveau projet, et selectionnez FeatureTemplate:






La première chose à faire, est de renommer les dossiers qui s'appelle "FeatureTemplate" en "FirstFeature".

Ensuite, il faut signer l'assembly, pour faire ça allez dans les propriétés du projets, puis dans "signing", cochez la case "sign the assembly", puis selectionnez new, entrez le nom que vous voulez :











Ajout du schema wss.xsd

Pour vous facilitez le codage des fichiers indispensable a la feature (feature.xml et elements.xml) il faut ajouter le schema wss.xsd, pour ce faire, click droit -> propriété sur les fichiers, puis sur schema, cliquez sur les ... et selectionnez wss.xsd.

Passons à la feature

Principe de cette feature:

Le principe de cette feature est de lancer une page, qui va afficher le titre et l'ID du site.

Commençons par le commencement : description du fichier feature.xml.

Ce fichier permet de décrire le scope, le titre, la description de la feature, et associe les fichiers elements.

voici le code de la feature :

<?xml version="1.0" encoding="utf-8"?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
Id="A4067C54-B303-4b0e-AF9F-1CF51207D735"
Title="First Feature"
Description="This Is My First Feature"
Scope="Web"
Hidden="FALSE">
<Elementmanifests>
<Elementmanifest location="elements.xml"></elementmanifest>
</Elementmanifests>
</Feature>

Explication des différents champs:

Id : GUID créer grâce à l'outil disponible dans VS2008 (Tools -> Create GUID, puis copy )
Title : Titre de la feature
Description : Decription de la feature
Scope : ciblage de la feature :
  • Site : Site Collection
  • Web : Site
  • WebApplication : Web Application
  • Farm : Ferme de serveur
Hidden : indiquer si la feature doit être cachée ou non.

<Elementmanifests> : liste les fichiers elements
<Elementmanifest> : un fichier element.

voyons maintenant : elements.xml.

voici le code de ce fichier:


<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="FirstFeature"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="2000"
Title="First Feature Element"
Description="Display Site Title and ID"
RequireSiteAdministrator="True"
ImageUrl="/_layouts/images/DECISION.GIF">
<UrlAction Url="~site/_layouts/FirstFeature/FirstFeaturePage.aspx"/>
</CustomAction>
</Elements>


<CustomAction> : indique une zone d'action, pour ouvrir une page différentes il nous faut utiliser cette action
Id : identifiant
GroupId : ou afficher le bouton d'accès à l'element
Location : classe d'affichage du bouton
Sequence : la sequence sert a determiner la priorité, plus ce chiffre est bas, plus l'element sera prioritaire.
Title : titre à afficher dans le menu.
Description : Description à afficher dans le menu.
RequireSiteAdministrator : défini si l'utilisateur doit être administrateur pour afficher le bouton de cet element.
<UrlAction> : zone qui défini l'url de la page à afficher.

Les fichiers de base pour la création de feature sont faits, il ne reste plus qu'a créer la page et le code behind de cette page.

suite de l'article