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


  • Ancien MVP SharePoint 8 ans ...
    Des projets .Net, SharePoint 2013 ou Office 365 ??

    Contactez-nous :

Archives

Astuce MOSS : une CQWP déployable

Mes lecteurs assidus savent que je suis un grand prêcheur du déploiement logique sous SharePoint aka "Pas de Feature sans Solution"

Maintenant, il ne faut pas forcement croire que ce sont les seuls outils disponibles. Surtout dans certains scénarii d'utilisation de MOSS

J'ai trouvé cette astuce il y a peu et c'est vrai qu'elle peut bien vous aider dans votre packaging de site de publication

Oui, une petite astuce WCM pour changer :

sharepoint.H@ck : Add content query web part to page layout

Ce post met en exergue une problématique au sujet d'une des WPs les plus utiles du monde MOSS : la fameuse Content Query Web Part aka CQWP

La fameuse WebPart permettant de fédérer et présenter du contenu dans MOSS

  image

Le soucis est qu'il est difficile de la packager dans une page de modèle et donc de créer un template de publication réutilisable

Certes, vous pouvez au minimum, intégrer le style XSL spécifique via une Feature (N'est ce pas Philippe).

En pratique, la WebPart se comporte toujours selon l'adresse d' initialisation d'origine , soit :

  • la racine
  • tout les sous site
  • l'adresse en cours

Bon, ce n'est pas bien gênant si on travaille en racine du portail (genre "Mes documents") mais dans le cas d'un modèle de Layout pouvant être utilisé à plusieurs endroits de votre hiérarchie SharePoint, il faut prévenir le gestionnaire de contenu, qu'il doit reparamètrer la WP pour préciser le site en cours ...

Un peu dommage mais il y a une alternative, même plusieurs

  1. Utiliser les API de publication et le SPLimitedWebPartManager
    • via un Feature Receiver
    • via Powershell (dans le cas d'une utilisation unique sinon ...)
      >>> Bien sur, il faudra gérer la publication, le checkin/Release, la modification de la WebPart, ...
  2. Dériver la CQWP smile_regular
    • En modifiant dans le CreateChildControl l'utilisation unique de l'adresse courante de la WebPArt en fonction du contexte SharePoint, vous rendez votre WP autoconfigurable :)
    • Vous ne changer rien à vos processus de développement : vous pouvez toujours l'intégrer et la paramètrer directement dans SharePoint Designer lorsque vous concevez votre Layout de publication

Voici un exemple de base (à améliorer en fonction de votre besoin)

using Microsoft.SharePoint.Publishing.WebControls; //Need this reference for the ContentByQuery web part

namespace WhatWebCQWP
{
    [Guid("03b0b57c-6607-44f5-adfd-b361d6129687")]
    public class WhatWebCQWP : ContentByQueryWebPart
    {
        public WhatWebCQWP()
        {
            this.ExportMode = WebPartExportMode.All;
        }

        protected override void CreateChildControls()
        {
            Uri WebLocation = new Uri(SPContext.Current.Web.Url); //Replace the default web location property of CQWP with current URL
            this.WebUrl = WebLocation.AbsolutePath.Replace("%20", " "); //Get only the absolute path and replace encoded space with unencoded space
            base.CreateChildControls();
        }

        protected override void RenderWebPart(HtmlTextWriter output)
        {
            base.RenderWebPart(output);
        }
    }
}

Merci à Doug McCusker pour l'idée !

Renaud Comte aka TheMit (WCM à temps perdu)
Member of WygTeam
http://www.wygwam.com

Mots clés Technorati : ,,,
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: mardi 23 septembre 2008 11:57 par themit

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: La gestion des Attachments dans les listes riches de SharePoint Online par Blog Technique de Romelard Fabrice le 01-10-2017, 17:56

- [IIS] On désactive le recyclage des pools, ou on le contrôle ? par Blog de Jérémy Jeanson le 01-06-2017, 20:48

- Bon Visual Studio 2017 ! par Blog de Jérémy Jeanson le 01-06-2017, 12:53

- Office 365: Message d’erreur sur SharePoint Online “The file [file name] is checked out or locked for editing by [username]” par Blog Technique de Romelard Fabrice le 01-05-2017, 16:02

- Office 365 : Script PowerShell pour créer le mapping des utilisateurs dans ShareGate à partir de SharePoint 2007 par Blog Technique de Romelard Fabrice le 12-29-2016, 15:36

- Regroupez vos sections javascript ! par Blog de Jérémy Jeanson le 12-29-2016, 13:02

- Retour en arrière sur Windows Server Core 2016 par Blog de Jérémy Jeanson le 12-20-2016, 13:07

- SharePoint 2007: Script PowerShell pour nettoyer les listes vides avant migration vers Office 365 - Updated par Blog Technique de Romelard Fabrice le 12-14-2016, 16:34

- Server Essentials 2016 et site remote web access indisponible par Blog de Jérémy Jeanson le 12-09-2016, 13:10

- Office 365: Utiliser les alertes dans SharePoint Online par Blog Technique de Romelard Fabrice le 11-30-2016, 12:45