Présentation complète de mon système d'évaluation pour SharePoint

Le but de cet article est de présenter un système d'évaluation pour SharePoint que j'ai récemment largement amélioré et qui supporte désormais la langue française. Cet article n'a pas de but pédagogique particulier. C'est plutôt un appel à suggestions voire à candidats pour collaborer à l'outil :).

- Titre : Présentation complète de mon système d'évaluation pour SharePoint

- Parution : 1 février 2009

- Licence : Copyright ® 2009 Developpez. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- I-A. La version pour WSS 3

- I-B. La version pour MOSS 2007

- II. Installation de la solution

- III. Architecture de la solution

- III-A. Pourquoi des types de contenu?

- IV. Utilisation de la solution

- IV-A. Activer l'évaluation sur les documents, calendriers etc...

- IV-A-1. Comment évaluer des documents existants?

- IV-B. Evaluation des pages

- IV-C. Activer l'évaluation des forums de discussion

- IV-D. Evaluation des blogs

- IV-D-1. Alternative pour évaluer les messages de blog

- IV-E. Utiliser le module de modération

- IV-F. Utiliser le modèle de site dédié

- IV-G. Visualiser les différents rapports

- IV-H. Astuces

- IV-I. Etendre le système d'évaluation avec ses propres types de contenu

- V. Langues supportées

- VI. Les extras MOSS

- VI-A. Utiliser le modèle de page

- VI-B. Utiliser la stratégie de gestion des informations

- VII. Téléchargement du code source et de la solution

I - Introduction

I-A - La version pour WSS 3

J'avais, il y a quelques temps, déjà écrit un tutoriel (un vrai tuto cette fois) sur ce système d'évaluation. Le système permettait à l'époque d'évaluer uniquement des documents. Depuis, la solution a bien changé et permet d'évaluer les objets suivants :

- Les documents : via un type de contenu associé aux bibliothèques

- Les calendriers, les liens, les problèmes, les listes de données, les images : via des types de contenu spécifiques

- Les pages : via un webpart

- Les blogs : via une fonctionnalité de site uniquement activable pour les blogs

- Les forums de discussions : via une liste de type forum personnalisée

Comme vous pouvez le constater, la solution a en effet bien changé :). En plus de la possibilité d'évaluer tous ces objets, la solution propose plusieurs rapports :

- Un rapport pour chaque objet évalué qui affiche les votes et les commentaires des utilisateurs

- Un rapport affichant tous les votes d'une liste (doc lib, liste personnalisée etc..)

- Un rapport affichant tous les votes d'un site donné

- Un rapport affichant tous les votes effectués sur les pages d'un site

Tous ces rapports proposent une fonctionnalité d'export vers un fichier Excel, csv pour être plus précis.

Un module "léger" de modération est également mis à disposition. Il permet aux utilisateurs et groupes désignés comme modérateurs de supprimer des commentaires inconvenants.

Pour faciliter le déploiement, un modèle de site (custom site definition) est également mis à disposition, il configure automatiquement les listes par défaut

Enfin, la solution est disponible en trois langues : le Français, l'Anglais et le Néerlandais.

I-B - La version pour MOSS 2007

La version MOSS propose deux fonctionnalités en plus :

- Un modèle de page spécifique (page layout) : il nécessite d'activer la publication MOSS et permet de créer des pages qui englobent automatiquement un contrôle d'évaluation

- Une politique d'évaluation (information policy) : il est possible de l'associer à n'importe quelle bibliothèque de pages et/ou de documents afin d'y créer des pages qui englobent automatiquemnet le webpart d'évaluation de page.

II - Installation de la solution

La solution et le code source sont disponibles ici. Ils s'appellent respectivement SharePoint Document Rating Solution et SharePoint Document Rating Source

Après avoir téléchargé la solution, il suffit de la déployer avec l'outil en ligne de commande stsadm :

stsadm -o addsolution -filename "cheminfichier\highlight.wsp"
stsadm -o deploysolution -name highlight.wsp -url urlapplication -now -allowgacdeployment

Ensuite, il vous suffit d'activer la fonctionnalité de collection de sites Système d'évaluation :

III - Architecture de la solution

III-A - Pourquoi des types de contenu?

Les types de contenu embarquent les colonnes personnelles (custom fields) dont l'une sert à afficher le nombre d'étoiles correspondant à l'évaluation des utilisateurs, une autre à stocker l'historique des votes et enfin la dernière sert à afficher un lien vers les commentaires correspondant à l'objet évalué. Ces trois colonnes sont toutes associées aux différents types de contenu déployés par la solution.

Le fait de déployer des types de contenu permet notamment une plus grande flexibilité et permet également de ne pas centraliser tous les votes dans une même liste/espace de stockage. En effet, chaque objet évalué contient son propre historique. Ceci a pour avantage de répartir équitablement la charge.

L'autre avantage des types de contenu est que l'on peut décider de les associer ou non aux listes. Comme ils sont déployés par une fonctionnalité, on peut également décider que certains espaces ne puissent pas bénéficier de la solution de vote. Si j'avais uniquement proposé des colonnes personnelles, l'usage aurait été automatiquement possible dans toute la ferme car une colonne personnelle n'est pas encapsulable dans une fonctionnalité sauf si on la rattache à un type de contenu ou une liste déployée par la fonctionnalité.

Enfin les types de contenu ont l'avantage d'être très proches du standard. En effet, j'aurais pu déployer autant de définition de liste qu'il n'y a de listes à évaluer mais cela aurait personnalisé inutilement la plate-forme. Seule, la liste de discussion a été personnalisée car il n'était pas possible de délivrer un type de contenu spécifique.

IV - Utilisation de la solution

IV-A - Activer l'évaluation sur les documents, calendriers etc...

Après avoir activé la fonctionnalité Système d'évaluation (voir section installation), le système propose les nouveaux types de contenu suivants :

que vous pouvez utiliser pour évaluer les objets correspondants. Voici comment activer l'évaluation sur une bibliothèque de documents :

- Allez dans les paramètres avancés d'une bibliothèque de documents :

- Autorisez l'utilisation de types de contenu :

- Ajoutez le type de contenu Evaluation de document

- Créez un document de type Evaluation de document :

Notez que vous pouvez bien sûr renommer ce type de contenu. Vous pouvez également décider de supprimer le type de contenu Document associé par défaut à la bibliothèque afin de s'assurer que tout document chargé dans la bibliothèque est évaluable et ce, quelle que soit la méthode utilisée pour le charger (vue explorateur, upload multiple...).

Vous ne pourrez bien sûr supprimer le type de contenu Document que si la bibliothèque ne contient aucun document qui lui sont associé. La manipulation pour associer les types de contenu aux autres types de listes (calendrier, problèmes etc..) pris en charge par la solution est exactement identique.

A présent que vous avez ajouté le type de contenu Evaluation de document à la bibliothèque, vous avez deux scénarios possibles :

- Vous n'avez pas supprimé le type de contenu standard de la bibliothèque

- Vous avez supprimé le type de contenu standard de la bibliothèque

Dans le premier cas, vous devrez spécifier le type de contenu du document explicitement lorsque vous en chargez un :

Si vous chargez le document via la vue explorateur ou l'option Téléchargement Multiple, celui-ci sera automatiquement associé au type de contenu Document et ne sera donc pas évaluable. Si par contre, vous avez supprimé le type de contenu standard de la bibliothèque, les documents seront directement évaluables, quelle que soit la méthode de chargement utilisée.

Lorsque vous avez chargé un document et spécifié son type de contenu, après avoir ajouté les colonnes Résultats des votes et Voir Commentaires à la vue par défaut, vous pourrez évaluer le document :

Lorsque la colonne Résultats des votes affiche Voter, cela signifie qu'il n'y a pas encore eu d'évaluation effectuée pour le document. En cliquant dessus, les utilisateurs sont redirigés vers une page applicative permettant d'évaluer le document :

Lorsqu'au moins une évaluation a été effectuée, les étoiles représentant la moyenne sont affichées comme suit :

Les étoiles sont cliquables et redirigent les utilisateurs vers la page d'évaluation afin qu'ils puissent également évaluer le document.

IV-A-1 - Comment évaluer des documents existants?

Si vous avez des documents existants dans des bibliothèques SharePoint, ils ne seront pas évaluables directement puisqu'ils seront associés au type de contenu Document ou à un type de contenu métier. Dans ce cas, vous devrez basculer leur type de contenu vers Evaluation de document. Deux méthodes sont alors possibles :

- Changer les documents un par un en modifiant les propriétés

- Utiliser le mode feuille de données pour effectuer des changements en masse comme illustré ci-dessous

en attribuant le bon type de contenu au premier document et ensuite en sélectionnant la première cellule pour tirer ensuite jusqu'à la dernière comme dans Excel.

IV-B - Evaluation des pages

L'évaluation des pages est plus complexe que pour les documents/calendriers etc...et ne passe pas par des types de contenu. L'une des raisons est que le résultat des votes doit être affiché au sein de la page elle-même. C'est donc un webpart qui est utilisé pour permettre l'évaluation des pages.

Pour pouvoir évaluer une page, vous devez donc ajouter le webpart en son sein en éditant la page et en cliquant sur une zone Ajoutez un composant webpart :

Après l'avoir ajouté, vous obtenez un webpart permettant l'évaluation de la page :

Le webpart propose les propriétés suivantes (en anglais...):

- Show user ratings count : affiche le nombre d'évaluations effectuées

- Allow users to comment pages : affiche la zone de texte permettant à l'utilisateur d'insérer un commentaire

- Consider URL Variation : tient compte des paramètres passés dans l'URL si vous cochez cette option. Si vous ne la cochez pas, l'URL absolue est utilisée. Les 3/4 du temps il ne faut pas cocher l'option. Vous verrez un cas de figure où cette option est utilisée un peu plus loin dans l'article

- Stars Size : affiche des petites ou grandes étoiles

En fonction des différentes options, vous pourrez obtenir ces types d'affichage :

Ce WebPart utilise de l'AJAX pour éviter un rechargement de la page lorsqu'un visiteur l'évalue. Il stocke l'historique des votes de toutes les pages d'un même site dans une liste cachée. Chaque site a donc sa propre liste.

IV-C - Activer l'évaluation des forums de discussion

Là encore, les types de contenu ne pouvaient pas être utilisés. Dès lors, une liste personnalisée de Forum de discussion est délivrée par la solution. Vous ne pourrez donc pas évaluer des discussions existantes.

Par contre, pour toute nouvelle mise en place d'un forum, vous pourrez créer un forum de type Forum de discussion avec évaluation. En créant un nouvel objet, vous retrouverez ce lien :

Ceci a pour effet de créer une liste de type forum. Vous pouvez ajouter (ou non) les colonnes Evaluations et Voir Commentaires à la vue Objet :

Les vues Plat et Thématique ont été personnalisées afin d'afficher les évaluations :

IV-D - Evaluation des blogs

Vous pouvez permettre l'évaluation des blogs en activant la fonctionnalité de site Evaluation de blog activable uniquement pour les sites de type Blog.

Note: Vous devez bien sûr avoir d'abord activé la fonctionnalité Système d'évaluation au niveau de la collection.

Après avoir activé la fonctionnalité au niveau du blog, vos messages ressembleront à ceci :

Vous pouvez également utiliser le mode liste comme avec n'importe quelle autre liste prise en charge par la solution :

Comme vous pouvez le constater, vous pouvez visualiser et évaluer à votre tour chaque message.

IV-D-1 - Alternative pour évaluer les messages de blog

Si vous ne souhaitez pas activer la fonctionnalité de blog, vous pouvez utiliser le webpart Evaluation de page en ajoutant celui-ci sur la page Posts.aspx qui est utilisée par SharePoint pour afficher le détail de chaque message. En éditant cette page et en ajoutant le webpart, vous obtiendrez ceci :

C'est à dire la capacité d'évaluer chaque message individuellement. Note: pour que le système fonctionne bien, vous devez absolument cocher la propriété Consider URL Variation du webpart. La raison est simple : quel que soit le message que l'utilisateur visualise, c'est toujours la page posts.aspx qui est utilisée, seul le paramètre ID varie en fonction du message visualisé. Pour cette raison, en cochant l'option au niveau du webpart, l'URL entière est prise en compte et du coup, chaque message a bien sa propre URL puisque chaque message a son propre ID.

IV-E - Utiliser le module de modération

Le module de modération est très léger. Il permet simplement de désigner des utilisateurs et/ou des groupes d'utilisateurs comme modérateurs. Chaque modérateur a la possibilité de supprimer des commentaires indésirables.

Pour bénéficier du système de modération, vous devez activer la fonctionnalité Evaluation - Gestion des modérateurs

Note: Vous devez bien sûr avoir d'abord activé la fonctionnalité Système d'évaluation au niveau de la collection.

Lorsque la fonctionnalité est activée, vous retrouvez un nouveau lien dans les paramètres d'administration du site :

En cliquant sur ce lien, vous pouvez définir les modérateurs (utilisateurs et/ou groupes) du site courant

Il n'est pas nécessaire de définir les propriétaires car ils ont automatiquement le droit de modération. Chaque modérateur qui consultera les commentaires d'évaluation émis pour un objet évalué verra ceci :

Un utilisateur normal ne verra pas le lien Supprimer

IV-F - Utiliser le modèle de site dédié

Un modèle de site (site definition) est également délivré avec la solution. Il préconfigure les bibliothèques et listes du site pour être immédiatement évaluables. Dans la page de création de site, vous pourrez le retrouver :

IV-G - Visualiser les différents rapports

Quatre rapports sont fournis par la solution :

- Un rapport affichant les évaluations d'un seul élément (document, évènement...)

- Un rapport affichant les évaluations d'une liste entière

- Un rapport affichant les évaluations des pages d'un site

- Un rapport affichant toutes les évaluations toutes listes confondues d'un site

Ils ont tous la forme suivante :

Ce sont des rapports paginés pouvant être exportés vers EXCEL.

IV-H - Astuces

Le système d'évaluation se basant sur des types de contenu et donc sur des métadonnées, vous pouvez bien sûr utiliser la puissance des vues de SharePoint pour vous amuser un peu. Il est donc tout à fait possible de créer des vues sur des bibliothèques, listes de blogs etc...de type les documents les mieux évalués, les documents les moins appréciés etc...simplement en appliquant des tris et/ou filtres sur la colonne Résultats des votes.

Imaginons que vous souhaitez créer une vue affichant uniquement les documents dont l'évaluation correspond à Excellent. Créez simplement une vue en définissant le critère de filtre suivant :

Vous l'aurez compris, chaque niveau peut ainsi être traité (1), (2) etc... correspondant au nombre d'étoiles.

En survolant les étoiles pour un document donné, le système affiche le nombre d'évaluation effectuées et la moyenne obtenue. Si vous souhaitez effectuer des calculs prenant en compte le nombre d'évaluations par document, vous pouvez procéder comme suit :

- Créez une colonne calculée numérique avec cette formule :

=IF([Résultats des votes]<>"";TRIM(MID([Résultats des votes];5;(FIND("vote(s)";[Résultats des votes])-5)));0)

Note:Si vous êtes sur un système anglais, remplaçez les points virgule par des virgules. Vous pouvez donc obtenir ce type de résultat :

Vous pouvez désormais appliquer un filtre, un tri etc.. sur la colonne calculée Nb Eval.

IV-I - Etendre le système d'évaluation avec ses propres types de contenu

Si vous utilisez des types de contenu métier, ils peuvent également bénéficier de la fonctionnalité d'évaluation si vous faites dériver ceux-ci d'un des types de contenu délivrés par la solution. Prenons par exemple, un type de contenu "fun" se rapportant à des documents qui doivent stocker des paroles de chanson...Le type de contenu devra contenir les métadonnées Chanteur et Chanson.

Voyons comment vous pouvez créer un tel type de contenu tout en bénéficiant de la fonctionnalité d'évaluation. Créez un type de contenu que vous nommez Paroles :

Ajoutez ensuite les colonnes Chanteur et Chanson :

afin d'obtenir ceci :

Associez à présent votre type de contenu à une bibliothèque et créez un nouveau document :

Word s'ouvre et vous permet d'encoder vos métadonnées :

Les métadonnées du système d'évaluation sont grisées car ce sont des custom fields. Vous pouvez vous en débarrasser en créant un DIP personnalisé. Ensuite, vous pouvez évaluer le document :

Alors que le type de contenu est Paroles mais comme celui-ci dérive de Evaluation de document, ça fonctionne :).

V - Langues supportées

Actuellement la solution est délivrée en trois langues : le Français, l'Anglais et le Néerlandais.

VI - Les extras MOSS

VI-A - Utiliser le modèle de page

Après avoir activé la fonctionnalité de publication au niveau d'une collection de sites, vous pouvez créer des pages basées sur le modèle suivant :

Ceci a pour effet de créer une page qui englobe automatiquement un contrôle similaire au webpart d'évaluation de page. Contrairement à un webpart, il n'est pas enlevable.

Un seul modèle est délivré mais vous pourriez le décliner en plusieurs modèles en plaçant le contrôle à gauche ou au milieu, en haut, en dessous etc...Il suffirait de dupliquer le modèle fourni dans le code source et de recompiler le tout.

VI-B - Utiliser la stratégie de gestion des informations

La stratégie de gestion des informations doit être activée au niveau de la centrale d'administration dans les fonctionnalités de la ferme :

Lorsque ceci est fait, vous pouvez définir une nouvelle politique au niveau d'une collection de site ou directement au niveau d'une bibliothèque de pages. C'est cette dernière manipulation que nous allons effectuer :

Ciblez une bibliothèque de pages et allez dans les paramètres avancés pour ensuite cliquer sur le lien

Ce qui vous mène à :

Notez que la liste représentée par l'image peut varier en fonction du nombre de types de contenu associés à la bibliothèque.

Cliquez ensuite sur définir une stratégie :

Il vous reste ensuite simplement à paramétrer le webpart d'évaluation tel qu'il doit apparaître dans les pages :

Ensuite, à chaque fois qu'un contributeur créera une page basée sur le type de contenu sélectionné, le webpart sera automatiquement ajouté à la page.

Note: si, pour une page particulière, vous ne souhaitez pas afficher le webpart, vous devrez le fermer plutôt que le supprimer. Sinon, le webpart sera systématiquement ajouté.

VII - Téléchargement du code source et de la solution

Si vous êtes intéressé par cette solution et si vous souhaitez collaborer sur le projet, n'hésitez pas à me contacter (stephaneey@hotmail.com). La solution est téléchargeable ici http://www.codeplex.com/sptoolbasket/Release/ProjectReleases.aspx?ReleaseId=21960 et s'appelle SharePoint Document Rating

A ce même emplacement vous trouverez SharePoint Tool Basket (pour wss et une pour moss) qui contient d'autres fonctionnalités que la solution d'évaluation.