SharePoint 2007 : Customization de la Content Query Web Part

Aujourd'hui, je vais profiter de vous donner quelques informations sur la customization de la content query web part pour vous conter une expérience que j'ai eu récemment chez un client que je pourrais résumer à "Rien ne sert de courir; il faut partir à point" ...

Pendant une mission, mon client me présente une page de web part avec la content query web part ci-dessous

1

Cette web part récupère toutes les tâches dans les listes de tâche du site et des sous-sites. Jusqu'ici rien de transcendant je vous l'accorde.

La demande en question était relativement simple : Afficher pour chaque tâche son site d'appartenance. (Quelque chose comme ca)

2

Ayant eu l'occasion de faire de la customization de content query, je me dis "Pas de problème, un peu de custo' XLST et XML fera l'affaire !!" ...

Bref ni une, ni deux, je récupère le petit script pour afficher tout les attributs passés en paramètre à la content query web part

<xsl:template name="myCustomStyle" match="Row[@Style='myCustomStyle']" mode="itemstyle">

  <xsl:for-each select="@*">

    <b>

      <xsl:value-of select="name()"/>

    </b> = <xsl:value-of select="."/><br/>

  </xsl:for-each>

</xsl:template>

J'édite le fichier ItemStyle.xsl dans la librairie de style, pour placer ce template à la fin du fichier avec SharePoint Designer

3

Je sauvegarde et rafraichis la page, histoire de mettre tout celà à jour et j'ai un nouveau style qui apparait dans ma liste de configuration de ma web part.

4

Je sélectionne le nouveau style que je viens de créer et ma webpart qui m'affichait

1

m'affiche ceci :

5

Le tout étant comme prévu sous la forme Nom de l'attribut = Valeur de l'attribut.

On retrouve ici, certaines valeurs utilisées pour la génération du lien "Hello World" notamment le Title et le LinkUrl mais aussi tout plein d'autre infos qui peuvent être intéressantes  comme la date de publication par exemple.

Sur le coup, si mon client avait voulu rajouter une des informations présentes dans la liste des attributs, il m'aurait suffit d'exporter la webpart, éditer le fichier .webpart ci-dessous.

6

Il me suffirait alors de rajouter les champs en question (comme PubDate) dans la propriété CommonViewFields en précisant leur type sous cette forme <property name="CommonViewFields" type="string">Field1,Text;Field2,Datetime;</property>"

Le premier élément correspond au nom du champs que vous voulez afficher, le deuxième à son type. Vous avez le choix entre :

  • Text
  • Note
  • Number
  • Currency
  • Integer
  • Boolean
  • DateTime
  • Threading
  • Lookup
  • Choice
  • URL
  • Counter
  • DisplayOnly
  • RichHTML
  • Image

    Pour savoir quel champs est associé à quel type, il y a deux façons simples :

    1. Choisir au hasard parmi la liste ci-dessus :)
    2. Faire comme Miss Solomon, récupérer directement les informations dans les fichiers XML (SCHEMA.XML) associés au champs
      7   

    Pour finir sur cet apparté, il est à noter qu'il est possible d'hériter de la content query webpart et donc de rajouter des fonctionnalités comme par exemple pouvoir modifier la réquête dynamiquement, de rajouter la gestion des langues ou du paging. En effet, pour rajouter de nouveaux paramètres à la web part, Il suffit d'overrider le comportement de la méthode ModifyXlstArgumentList et de rajouter des paramètres comme le LCID courant, , etc... (Exemple non fonctionnel ci-dessous)

    8

    Attention si vous rajoutez un paramètre, il faudra aussi penser à le rajouter dans le fichier ContentQueryMain.xsl pour pouvoir l'utiliser :

    9

    Bref, je pense que vous avez compris l'idée générale sur "Comment s'y prendre si on devait customizer la content query web part"...

    Mais le problème dans mon cas concernant la demande de mon client, c'est qu'au final la fonctionnalité demandée était présente en standard dans la content query web part !!

    Il me suffisait de spécifier un simple regroupement par site...

    10

    Pour obtenir ce rendu.

    2

    Il est alors possible de modifier le rendu de "Portail Intranet" avec les styles liés au groupe (pour l'avoir plus petit, centré, créer un style custom...)

    11

    A noter les différences dans les attributs affichés quand on fait un regroupement par titre

    12

    Bref, au final pas mal de possibilités sont fournies en standard dans la content query web part, alors ne faites pas la même erreur que moi et regardez à deux fois avant de vouloir tout customizer :)

    Pour finir, voilà quelques liens pour pousser plus loin la personnalisation de cette web part avec notamment la fameuse Enhanced Content Query Web Part qui rajoute entre autres choses, un menu contextuel à chaque élément ainsi que la barre d'outils.

    13

    <Philippe/>

  • Publié vendredi 12 octobre 2007 15:55 par phil
    Classé sous , , ,
    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 :

    Commentaires

    About phil

    Philippe Sentenac est Consultant SharePoint à Wygwam en région Parisienne. Il intervient essentiellement sur des missions liées à SharePoint (2007 et 2010 ) mais aussi autour du Web 2.0. Plus généralement, il s'intéresse à l'ASP.Net (MVC) , à Silverlight, et à tout ce qui est orienté Web en rapport avec les nouvelles technologies, qu'il pratique depuis 2006. Féru de développement, il est passionné par les problématiques de méthodologies et d'industrialisation du développement.

    Les 10 derniers blogs postés

    - Nouveau blog en anglais / New blog in english ! par Le blog de Patrick [MVP SharePoint] le il y a 14 heures et 53 minutes

    - [ #Yammer ] From Mailbox to Yammer and back / De votre messagerie vers Yammer et retour ! par Le blog de Patrick [MVP SharePoint] le 09-15-2014, 11:31

    - [ #Office 365 ] New service settings panel / Nouveau panneau de paramétrage des services par Le blog de Patrick [MVP SharePoint] le 09-11-2014, 08:50

    - Problème de déploiement pour une démo SharePoint/TFS? par Blog de Jérémy Jeanson le 09-10-2014, 21:52

    - [ #Office365 ] Delve first impressions / Premières impressions sur Delve par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 16:57

    - [ #Office365 ] How to change Administration console language ? / Comment changer la langue de la console d’administration ? par Le blog de Patrick [MVP SharePoint] le 09-09-2014, 08:25

    - [ #SharePoint 2013 ] Suppression de bases de données en état “Pas de Réponse” par Le blog de Patrick [MVP SharePoint] le 09-04-2014, 14:10

    - Changer l’adresse d’une ferme Office Web Apps associée à SharePoint par Blog de Jérémy Jeanson le 09-01-2014, 22:21

    - Une ferme #SharePoint 2013 dans @Azure en quelques clics (1ère partie) ! par Le blog de Patrick [MVP SharePoint] le 08-28-2014, 18:52

    - 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