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

- Etes-vous yOS compatible ? (2/3) : la nouvelle plateforme Yammer–Office 365–SharePoint par Le blog de Patrick [MVP SharePoint] le 04-22-2014, 09:27

- [ #Yammer ] [ #Office365 ] Quelques précisions sur l’activation de Yammer Entreprise par Le blog de Patrick [MVP SharePoint] le 04-22-2014, 09:03

- Après Montréal, ce sera Barcelone, rendez-vous à la European SharePoint Conference 2014 ! par Le blog de Patrick [MVP SharePoint] le 04-19-2014, 09:21

- Emportez votre sélection de la MSDN dans la poche ? par Blog de Jérémy Jeanson le 04-17-2014, 22:24

- [ #Office365 ] Pb de connexion du flux Yammer ajouté à un site SharePoint par Le blog de Patrick [MVP SharePoint] le 04-17-2014, 17:03

- NFluent & Data Annotations : coder ses propres assertions par Fathi Bellahcene le 04-17-2014, 16:54

- Installer un site ASP.net 32bits sur un serveur exécutant SharePoint 2013 par Blog de Jérémy Jeanson le 04-17-2014, 06:34

- [ SharePoint Summit Montréal 2014 ] Tests de montée en charge SharePoint par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 20:44

- [ SharePoint Summit Montréal 2014 ] Bâtir un site web public avec Office 365 par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 18:30

- Kinect + Speech Recognition + Eedomus = Dommy par Aurélien GALTIER le 04-16-2014, 17:17