25 août 2009

SHAREPOINT : Edit Control Block

On quitte rapidement le monde InfoPath pour parler de son cousin SharePoint et plus particulièrement du menu d'édition communément appelé ECB.
L'Edit Control Block (ECB) de SharePoint est concu à partir du fameux "core.js" de SharePoint.
Il est possible de customiser ce menu d'édition notamment en rajoutant des features qui permettent d'obtenir de nouvelles fonctionnalités lors du clic droit sur un item.

Le premier soucis est que la nouvelle fonctionnalité ne peut pas être positionnée exactement ou vous le voulez dans le menu édition.
De même il n'est pas possible de cacher certains éléments par cette technique...

Une solution est d'utiliser une nouvelle masterpage qui sera basé sur notre core.js modifié (copie du core.js original).

La démarche à suivre est la suivante:
• Se placer dans le répertoire \Fichiers communs\Microsoft shared\web server extensions\12\Template\layouts\1036,
• Faire une copie du "core.js" et le copier en le renommant "ECBcore.js" dans le même répertoire,
• Réaliser les changements nécessaires dans le fichier "ECBcore.js" afin de modifier le menu d'édition SharePoint,
• Se placer dans le répertoire \Fichiers communs\Microsoft shared\web server extensions\12\TEMPLATE\GLOBAL,
• Créer une nouvelle masterpage SharePoint à partir de la "default.master" existante et la renommer en "custom.master",
• Dans cette "custom.master", il faut aller rajouter une nouvelle balise SharePoint:ScriptLink en dessous de celle existance du "core.js". Sur cette nouvelle ligne, modifier l'attribut name en "ECBcore.js".
• Enregistrer la page et appliquer la masterpage en tant que masterpage du site par défaut.

Le tour est joué, vous travaillez à présent avec votre menu personnalisé.
2 remarques importantes tout de même:
• Ne pas oublier de faire référence au core.js dans la masterpage customisée sinon cela ne fonctionne pas.
• Attention lors du passage des Service Pack, le "core.js" peut-être modifié et il faudra donc reprendre votre "ECBcore.js" pour le modifier en conséquence.

Aucun commentaire:

Enregistrer un commentaire