Publié
lundi 20 juillet 2009 22:55
par
Arnault Nouvel
Récemment, un client m’a demandé de lui développer une web part qui afficherait une bibliothèque d’images sous forme de miniatures, permettant de les télécharger, et de les visualiser en taille réelle via un click de souris.
Ces spécifications m’ont rappelé une superbe démonstration d’Aurélien Verla sur jQuery lors de sa présentation Découverte des nouveautés d'ASP.NET 4.0 aux TechDays 2009.
J’ai donc souhaité intégrer cela dans MOSS 2007, en utilisant la puissance de la Content by Query Web Part (CQWP) afin de bénéficier de fonctionnalités de tri et de filtrage sur les images affichées. Le tout est bien sûr réalisable entièrement dans SharePoint Designer, mais l’envie m’a pris d’aller un peu plus loin que les spécifications initiales et, pourquoi pas, publier ce projet sur CodePlex.
Lien : MOSS 2007 jQuery picture viewer Web Part
Pour avoir la possibilité de télécharger les images, au lieu de les ouvrir simplement dans Internet Explorer, la web part réutilise la page /_layouts/download.aspx, qui existe nativement dans SharePoint. Elle permet de télécharger un fichier dont l’url est passé dans la query string.
Exemple : http://office12-server/sites/t1/_layouts/download.aspx?sourceUrl=http://office12-server/sites/t1/Picture%20Library/Tree.jpg
Cette url renvoie le fichier Tree.jpg de la bibliothèque d’image “Picture Library” située dans la collection de sites http://office12-server/Sites/t1
Comme dit plus haut, il est possible de faire la même chose sans déployer de package sur la ferme. Ce développement est ainsi packagé afin de rendre la taille des miniatures paramétrable, de laisser la possibilité de désactiver les animations jQuery, et de pouvoir utiliser 2 fois la web part sur une même page avec un paramétrage différent.
Un développeur MOSS pourrait donc télécharger les sources et utiliser les fichiers .xsl, .js et .css pour intégrer la web part avec SharePoint Designer. Cela ne nécessiterait ni le déploiement de package sur le serveur, ni l’accord de l’administrateur de la ferme :)
A peu de choses près, il suffirait de modifier le fichier JavaScript afin qu’il s’initialise automatiquement, sans appel généré par du code serveur.
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :