Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

The Mit's Blog

En plus d'intégrer et skier, il sait même écrire !
(Blog de Renaud Comte)

Actualités

le delegate control “AdditionalPageHead” : l’intégration à posteriori (comme Jquery par exemple)

Je poste ce truc bien utile car souvent méconnu et pourtant si pratique dans certains montage SharePoint un peu “exotique”.

Mais avant, un peu de théorie :)

Un des points fondamentaux de la technologie SharePoint et de sa gouvernance et la gestion fine des déploiements. Tout bon IT SP qu’ils travaillent en Suisse ou en Belgique (coucou) se refuse bien souvent à intervenir ou pire laisser intervenir des externes en direct sur les machines SP de production pour “déployer ce qu’il faut”.

Sous entendu, merci d’utiliser les solutions

Corollaire important : merci de ne pas toucher

  • aux fichiers du 12 sans raisons
  • à nos divers fichiers/features provenant d’autre projet

En effet, on a tendance à l’oublier mais les fermes SharePoint sont avant tout des usines à sites, il est donc rare qu’elle n’héberge qu’un seul site portail ou un espace collaboratif. Ces fermes sont mutualisés !

Elles possèdent donc avec le temps des livrables diverses et variés, pas forcement pensé les un pour les autres.

On ne peut donc forcement partir de l’apriori qu’il faut absolument retoucher les Master Pages pour intégrer son petit script “qui vas bien”…
>>> A noter que c’est similaire si vous dépendez de la default.master comme par exemple pour les My Site

Autre soucis, tout n’est pas possible via de Feature Receivers, même si beaucoup jurent sur la tête d’Erol Giraudy le contraire.

Non pas que le code est restrictif, mais c’est plutôt le cycle de vie propre des Features. il y a des cas ou leur activation est trop tôt. Comme pour le cas de la génération de site Web. Les Receivers vont s’activer avant même que les listes ou les document soient provisionnées… Donc erreur d’activation ….

C’est la qu’intervient ce cher Delegate Control présent par défaut dans le Master Pages SharePoint : “AdditionalPageHead”

Je ne vous rappelle pas les principes d’injection de control, cet article le fait très bien : http://www.asp-php.net/tutorial/asp.net/sharepoint-delegate-controls.php

Ce Delegate est un peu particulier car il est configuré par défaut en mode multi control (AllowMultipleControls=true )
>>> vous pouvez donc activer plusieurs controls dans ce même delegate : il vas les additionner et non les remplacer les uns par les autres.

Une sorte de “include” dynamique (pour ceux qui ont connus ASP …)

L’idée générale ?

Simple : Comme vous pouvez déployez de multiples control ou ascx dans le delegate AdditionalPageHead et individuellement, vous pouvez gérer le déploiement de composants commun à vos sites ou de composant spécifique voir dépendant à vos projets (et vice et versa).

Une activation niveau Web App, et vous êtes garantit que l’intégration couvre toutes vos collection en ligne, sans rien casser, ni perturber en mutualiser !

Et aussi les désactiver au besoin.

Avec un peu de recul, le principe du multi control du AdditionalPageHead permet de gérer ce genre de scenarii bien pratique

  • Intégration de JS / CSS externe sur plateforme existante
    • donc par extension, le déploiement de Jquery
  • Activation de code métier post génération de site (pour le soucis de Feature Receiver à la création de site)
  • Ajouter un tracker pour loger les visites ou toute autres comportement par défaut
  • Gérer l’ajout, le retrait, la modification de WebPart dans les My sites sans les itérer en batch
  • Personnaliser un team site sans site définition
    • créer des sous site
    • modifier la master
    • insérer des documents
    • paramétrer les sous site selon la configuration du père

Bref, je vous laisse imaginer la suite

Si vous êtes intéressé par un petit exemple, je ne peux que vous conseiller le post original de Jan Tielen pur ce qui concerne le déploiement de Jquery :

http://weblogs.asp.net/jan/archive/2008/11/20/sharepoint-2007-and-jquery-1.aspx

Astucieux mais si efficace

Renaud Comte aka TheMit (SPGyver for ever)
Member of WygTeam
http://www.wygwam.com

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 :
Posted: mercredi 22 juillet 2009 11:25 par themit

Commentaires

Arnault Nouvel a dit :

"Une activation niveau Web App, et vous êtes garantit que l’intégration couvre toutes vos collection en ligne, sans rien casser, ni perturber en mutualiser !"

C'est ce que je pensais aussi lors de mon développement récent avec jQuery (http://jquerypictureviewer.codeplex.com), cependant ce delegatecontrol AdditionalPageHead n'est pas présent dans les masterpages des sites de publication de MOSS.

Pour contourner cela il faut donc l'ajouter avec SharePoint Designer, c'est quand même bien dommage surtout qu'il n'y a pas d'autre delegatecontrol équivalent.

# juillet 22, 2009 17:50
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- SharePoint 2013: Préparation de la migration - Création des site Templates dans 2010 et 2013 par Blog Technique de Romelard Fabrice le 08-20-2014, 16:31

- [ #Yammer ] How to change interface language ? Comment changer la langue de l’interface ? par Le blog de Patrick [MVP SharePoint] le 08-20-2014, 14:21

- Onedrive Sync Engine Host : CPU à 100% par Le petit blog de Pierre / Pierre's little blog le 08-06-2014, 22:22

- SharePoint : Bug sur la gestion des permissions et la synchronisation Office par Blog Technique de Romelard Fabrice le 07-10-2014, 11:35

- SharePoint 2007 : La gestion des permissions pour les Workflows par Blog Technique de Romelard Fabrice le 07-08-2014, 11:27

- TypeMock: mock everything! par Fathi Bellahcene le 07-07-2014, 17:06

- Coding is like Read par Aurélien GALTIER le 07-01-2014, 15:30

- Mes vidéos autour des nouveautés VS 2013 par Fathi Bellahcene le 06-30-2014, 20:52

- Recherche un passionné .NET par Tkfé le 06-16-2014, 12:22

- [CodePlex] Projet KISS Workflow Foundation lancé par Blog de Jérémy Jeanson le 06-08-2014, 22:25