Si vous avez déjà tenté d'utiliser les flux RSS générés par SharePoint pour les listes et bibliothèques de documents au sein même de SharePoint afin d'afficher/agréger du contenu situé sur d'autres sites/collections de site, vous avez peut-être buté sur un fait établi : ces flux RSS sont authentifiés (sauf cas de mode anonyme), vous assurant ainsi que les seuls éléments sur lesquels les personnes ont une permission en lecture pourront les voir.
Or, pour qu'un composant (une webpart) puisse correctement afficher des flux authentifiés, il faudra donc qu'il passe les informations sur le compte utilisateurs (les "credentials"). Et ceci, en mode "NTLM", ce n'est tout simplement pas possible ! Il faut pour cela appeler le mode Kerberos à la rescoussse (ici un petit article pour configurer le mode Kerberos + un autre pour l'utilisation des flux authentifiés).
Cependant, il existe une autre alternative, avec son lot d'avantages et d'inconvénients : donner le travail à faire au navigateur (côté client donc).
En effet, le fait d'appeler le flux RSS depuis le client fait qu'il sera appelé avec le compte de l'utilisateur courant. Comment s'y prendre ? Et bien en utilisant ce qui a fait le succès du Web 2.0 : l'AJAX. Je vous conseille de lire ces 3 articles :
Alors bien sûr, le fait de se placer côté client pose des contraintes :
- compatibilité du code javascript sur les différents navigateurs
- javascript activé
- problèmes possibles avec des urls de flux sur d'autres domaines que celui du site
- ...
Mais on arrive ainsi facilement à une solution viable !
Enfin, afin de vous faciliter le travail, je vous fourni 2 petits fichiers qui vous permettront de joindre la théorie à la pratique dans le fichier "RSS.zip", le fichier rss.js et le fichier rss.xsl. Vous pouvez déposer les 2 dans un sous-répertoire du répertoire "LAYOUTS" sur votre serveur (désolé, le packaging sera à faire !), et les utiliser directement dans une webpart Edition de contenu. Vous pourrez vous servir de ces fichiers pour réaliser une webpart avec sélection du flux, de sa mise en forme, etc... mais voici comment utiliser tel quel les 2 fichiers (on supposera que les fichiers soient dispos sous l'URL /_layouts/RSS/):
- déposer une webpart d'édition de contenu et en éditer le code source
- ajouter le code suivant :
<script language="javascript" src="/_layouts/RSS/rss.js"></script>
<script language="javascript">
var jsurl = "<votre url de flux RSS SharePoint>";
displayXSLTransform(jsurl, "/_layouts/RSS/RSS.xsl", "rssReader", "/_layouts/images/GEARS_AN.GIF");
</script>
A vous de jouer maintenant
Gat, quand le javascript vient à la rescousse !