Partager via


Procédure : personnaliser le composant WebPart Requête de contenu à l'aide des propriétés personnalisées

Vous pouvez utiliser le composant WebPart Requête de contenu pour créer des vues personnalisées des données qui sont recherchées dans plusieurs sources et présenter ces données au même endroit. Une fois que vous avez ajouté le composant WebPart Requête de contenu dans une page Web, vous pouvez personnaliser son comportement de recherche, les listes personnalisées et les types de contenu en définissant des propriétés personnalisées. Il existe 60 propriétés et méthodes disponibles pour la classe ContentByQueryWebPart, dont certaines peuvent être personnalisées. Cette rubrique présente quelques-unes de ces propriétés et inclut des exemples de syntaxe et d'utilisation au format CAML (Collaborative Application Markup Language) que vous pouvez ajouter à un fichier .webpart.

Certaines propriétés du composant WebPart Requête de contenu Microsoft Office SharePoint Server 2007 sont héritées de Windows SharePoint Services 3.0 et d'autres sont spécifiques à Office SharePoint Server 2007. Cette section est consacrée aux propriétés introduites dans Office SharePoint Server 2007. La section suivante présente les deux catégories de base des propriétés du composant WebPart Requête de contenu : Office SharePoint Server 2007

  • Propriétés qui définissent ou substituent un aspect du comportement sous-jacent du composant WebPart. Dans certains cas, ces propriétés affectent également l'interface utilisateur.

  • Propriétés qui modifient l'interface du composant WebPart sans définition ou substitution du comportement sous-jacent.

Propriétés qui modifient l'interface utilisateur et le comportement

Les propriétés du premier groupe, telles que les substitutions, sont généralement plus puissantes car vous pouvez les utiliser pour modifier le comportement du composant WebPart. Si un utilisateur tente de modifier l'interface utilisateur ou de définir une autre propriété qui peut affecter le comportement auquel s'applique cette propriété, cette propriété est prioritaire dans l'interface utilisateur ; elle remplace les autres paramètres et détermine la façon dont le composant WebPart Requête de contenu se comporte. Ces propriétés sont utiles lorsque vous souhaitez effectuer les opérations suivantes :

  • Ajouter des champs permanents et des options de champ.

  • Substituer le comportement par défaut de la requête de liste croisée afin que les modifications apportées au champ et aux options de champ dans l'interface utilisateur soient permanentes et ne puissent pas être remplacées ou modifiées par d'autres modifications.

  • Renommer les noms de colonne composés et longs et choisir des noms de variables de transformation XSLT plus courants et éviter de créer des transformations XSLT personnalisées pour chaque schéma.

Le tableau suivant décrit quelques-unes des propriétés qui modifient l'interface utilisateur et le comportement.

Propriété Description

CommonViewFields

Demande des champs supplémentaires, ce qui est nécessaire parce que le composant WebPart Requête de contenu ne retourne pas tous les champs de tous les éléments automatiquement. Vous devez demander les champs à rendre dans une transformation XSLT.

Cette propriété est additive, ce qui signifie que vous pouvez ajouter plusieurs CommonViewField à un composant WebPart Requête de contenu et étendre ses propriétés de base, telles que FieldDescription et FieldTitle.

QueryOverride

Ignore les limites du comportement de requête imposées par l'interface du composant WebPart Requête de contenu. Permet de spécifier la partie requête d'une requête de liste croisée dans CAML.

Lorsque la propriété QueryOverride est définie, l'interface utilisateur pour le filtrage, le tri et le regroupement apparaît en grisé dans le volet d'outils. Par exemple, le composant WebPart Requête de contenu permet par défaut l'utilisation de trois filtres. Vous pouvez en ajouter plus et vous assurer que les champs personnalisés et le comportement défini soient permanents dans l'interface utilisateur.

WebsOverride

Détermine si la requête de liste croisée doit traiter les sous-sites récursivement. Par défaut, Office SharePoint Server 2007 traite les sous-sites récursivement, ce qui signifie que le site parent et ses sites enfants sont affichés.

Lorsque la propriété WebsOverride est définie, le composant WebPart Requête de contenu n'effectue pas de traitement récursif et affiche les résultats uniquement à partir du site spécifié.

ListsOverride

Substitue le comportement de liste dans Office SharePoint Server 2007 et prend en charge plusieurs types de listes, telles que des bibliothèques de pages, les listes générales de base et les types spécifiques de listes. Vous pouvez utiliser cette propriété personnalisée pour définir n'importe quel type de liste, y compris ceux qui ne sont pas énumérés dans l'interface utilisateur, parce que le modèle n'est pas défini à la racine ou qu'il s'agit d'un type de base.

Les types de listes sont définis dans la rubrique de référence Élément de liste du kit de développement Windows SharePoint Services 3.0.

ViewFieldsOverride

Permet au composant WebPart Requête de contenu de demander un ensemble de champs à partir de la requête que vous spécifiez, au lieu d'effectuer la demande automatiquement dans Office SharePoint Server 2007 pour les champs de base.

DataColumnRenames

Permet au composant WebPart Requête de contenu de renommer des colonnes avant que les données ne soient passées à la transformation XSLT pour le rendu.

Propriétés qui modifient l'interface utilisateur sans changer le comportement

Vous pouvez également avoir besoin d'options plus légères pour personnaliser les champs, les options de champ, le regroupement et les options de filtre dans l'interface utilisateur. Ces personnalisations n'affectent pas le comportement sous-jacent et peuvent être remplacées par les propriétés du premier groupe qui modifient le comportement. Des personnalisations de ce type sont utiles si vous souhaitez effectuer les opérations suivantes :

  • Offrir davantage d'options via un composant WebPart Requête de contenu que celles initialement définies, lorsqu'une instance du composant WebPart est ajoutée à la page.

  • Affecter un seul composant WebPart qui ne sera probablement pas soumis à une substitution.

  • Mettre davantage d'options à la disposition de l'utilisateur.

Le tableau suivant décrit quelques-unes des propriétés de ce groupe.

Propriété Description

AdditionalFilterFields

AdditionalGroupAndSortFields

Comprend un ou plusieurs champs supplémentaires (propriété AdditionalFilterFields) ou des options de regroupement et de tri (propriété AdditionalGroupAndSortFields) qui n'apparaissent pas normalement dans l'interface utilisateur dans les listes déroulantes de filtre. Cela peut s'avérer utile si un champ n'est pas complété en tant que colonne de site mais s'il est présent dans certaines listes et doit être disponible dans l'interface utilisateur. Lorsque cette propriété est définie, l'interface utilisateur propose cette colonne pour le filtrage.

FilterField1

FilterType1

FilterValue1

FilterOperator1

Filter1ChainingOperator

Inclut une fonctionnalité pour filtrer les valeurs au-delà de celles prises en charge par l'interface utilisateur. Utilisez ces propriétés pour préremplir certaines valeurs de l'interface utilisateur par exemple, lorsque le composant WebPart est d'abord ajouté à la page. Par exemple, vous pouvez souhaiter spécifier les valeurs par défaut et appliquer un filtre sur la plage de dates par rapport à la date du jour.

Les différentes approches de personnalisation d'un composant WebPart Requête de contenu

Il existe plusieurs façons de définir ou de modifier les propriétés personnalisées dans un composant WebPart Requête de contenu ; la méthode que vous choisissez dépend de vos objectifs et du point où vous vous trouvez dans le processus de conception du site Web et du site. Par exemple, si vous personnalisez une mise en page existante, vous pouvez utiliser Microsoft Office SharePoint Designer 2007 et personnaliser le composant WebPart Requête de contenu pendant que vous personnalisez la mise en page. Si vous créez un composant WebPart Requête de contenu personnalisé pour une mise en page existante, vous pouvez utiliser Office SharePoint Designer 2007 pour ajouter ou modifier des propriétés personnalisées.

Pour modifier les propriétés personnalisées d'un composant WebPart Requête de contenu existant, vous pouvez exporter le fichier .webpart, en faire une copie et renommer l'original, modifier les propriétés personnalisées dans la copie du fichier .webpart, puis l'importer dans une zone du composant WebPart dans votre page. Le fait de renommer le fichier d'origine .webpart garantit qu'une copie du fichier d'origine .webpart existe pour les scénarios de mise à niveau futurs.

Pour exporter un fichier .webpart, définissez ses propriétés personnalisées, puis importez-les.

  1. Ouvrez une session sur votre site Web.

  2. Dans le menu Actions du site, cliquez sur Modifier la page.

  3. Recherchez le composant WebPart Requête de contenu dans la page, puis dans le menu Edition du composant WebPart, cliquez sur Exporter.

  4. Enregistrez le fichier .webpart.

  5. Renommez le fichier .webpart, puis utilisez un éditeur de texte ou Office SharePoint Designer 2007 pour ouvrir le fichier renommé.

    Notes

    Le fait de renommer le fichier d'origine .webpart garantit qu'une copie du fichier d'origine .webpart existe pour les scénarios de mise à niveau futurs.

  6. Ajoutez ou modifiez les propriétés et les valeurs des propriétés, puis enregistrez vos modifications.

  7. Dans le menu Page, pointez sur Ajouter des composants WebPart, puis cliquez sur Parcourir.

  8. Sélectionnez le composant WebPart à importer à partir de la Liste des composants Web Part, puis cliquez sur OK.

  9. Faites glisser le composant WebPart vers une zone de composants WebPart sur la page.

Exemple

Cette section décrit les propriétés personnalisées et présente des exemples de mise en forme et de code pour les instructions de propriétés personnalisées et les requêtes CAML dans un composant WebPart Requête de contenu. Tout d'abord, cette section présente la mise en forme, les informations de champ de base et des conseils pour utiliser la propriété CommonViewFields. Ensuite, elle présente une requête CAML complète et passe en revue les propriétés QueryOverride,ListsOverride,WebsOverride et ViewFieldsOverride que cette requête permet de définir. Vous pouvez ajouter chaque valeur de propriété présentée dans la requête CAML dans son instruction <property value> respective dans le fichier .webpart. Enfin, elle présente la propriété DataColumnRenames et les propriétés des options de filtre, de regroupement et de tri.

Propriété CommonViewFields

Vous pouvez utiliser deux formats lors de la personnalisation de la propriété CommonViewFields. Vous pouvez spécifier des champs par leur nom interne, ou une combinaison de nom interne et de nom de champ, comme suit :

  • Nom interne de champ

  • Nom interne de champ, Type de champ

La notation utilisée pour les caractères spéciaux distingue le nom interne du nom utilisé dans l'interface utilisateur. Par exemple, un espace entre les mots est représenté par _x0020_ dans le nom interne. Vous pouvez voir le nom interne en affichant le paramètre de chaîne de requête dans une page Colonne de site, ou en affichant le code du composant WebPart après avoir créé le champ. Vous pouvez afficher le code du composant WebPart en définissant le composant WebPart pour appliquer un filtre sur un champ, en exportant le composant WebPart, puis en affichant les propriétés de filtre.

Notes

Pour obtenir une liste complémentaire de field types que la propriété CommonViewField peut demander, voir l'énumération SPFieldType dans le kit de développement Windows SharePoint Services 3.0. Office SharePoint Server 2007 inclut quatre champs supplémentaires (HTML, Image, Link et SummaryLink) que vous pouvez demander. Les constantes que cette rubrique présente, identifient les types de données qu'une propriété CommonViewFields peut inclure.

Vous pouvez également combiner les définitions CommonViewFields en instructions composées, ce qui est utile pour définir plusieurs champs dans une instruction de propriété. Utilisez un point-virgule pour séparer les champs lors de la combinaison des définitions dans une instruction. Par exemple :

Nom interne de champ ;Nom interne de champ, Type de champ

CommonViewFields est une propriété additive, ce qui signifie que vous pouvez ajouter un champ d'affichage commun au-dessus des champs de base que le composant WebPart Requête de contenu demande toujours. Les champs de base demandent des colonnes par défaut par le GUID, et dans l'interface utilisateur ils s'affichent sous forme de noms de colonne de site. Le tableau suivant répertorie les noms des champs de base et les types.

Nom Type

Title

Texte

FileRef

Recherche

ID

Compteur

Modified

DateTime

Author

« Utilisateur »

Editor

Utilisateur

Created

DateTime

PublishingRollupImage

Image

Level

« Numéro »

Note

« Remarque »

Dans l'exemple suivant, la propriété CommonViewFields définit le GUID, que Office SharePoint Server 2007 utilise en interne pour référencer le nom interne du champ, le type de champ, le nom interne de CommonViewField et son type de base, suivi par le GUID du type de base.

<property name="CommonViewFields" type="string">_Level,Number;PublishingRollupImage;</property>

Propriétés QueryOverride, ListsOverride, WebsOverride et ViewFieldsOverride

Chaque propriété de substitution (QueryOverride,ListsOverride,WebsOverride et ViewFieldsOverride) substitue un comportement de composant WebPart Requête de contenu par défaut. Pour substituer un comportement, créez une requête CAML qui définit les conditions que vous souhaitez définir.

Notes

Pour en savoir plus sur la syntaxe CAML et les commandes, voir Schémas principaux du langage CAML (Collaborative Application Markup Language) dans le kit de développement Windows SharePoint Services 3.0.

L'exemple suivant montre comment définir des propriétés personnalisées pour le composant WebPart Requête de contenu à l'aide d'une requête CAML. La requête CAML effectue les opérations suivantes :

  1. Récupère un champ Created.

  2. Définit la requête pour récupérer des éléments mis à jour au cours des sept derniers jours et les trie par ordre décroissant.

  3. Spécifie le type de liste à partir duquel effectuer les recherches.

  4. Récupère des données de manière récursive à partir du site Web spécifié et ses enfants.

  5. Récupère les valeurs d'un champ spécifique à afficher pour chaque élément.

La requête entière est affichée, et elle est décrite en détail dans les sections suivantes.

 1 <ViewFields>
 2   <FieldRef Name="Title" Nullable="True" Type="Text"/>
 3   <FieldRef Name="Comments" Nullable="True" Type="Note"/>
 4 </ViewFields>
 5 <Lists ServerTemplate="850"></Lists>
 6 <Webs Recursive="True" />
 7 <RowLimit>15</RowLimit>
 8 <![CDATA[
 9    <Where>
10     <Gt>
11       <FieldRef Name="Created" Nullable="True" Type="DateTime"/>
12       <Value Type="DateTime"><Today OffsetDays="-7"/></Value>
13     </Gt>
14   </Where>
15   <OrderBy>
16       <FieldRef Name="Created" Nullable="True" Type="DateTime"
17       Ascending="FALSE"/>
18   </OrderBy>]]> 

Propriété QueryOverride

Les lignes 8-19 définissent la propriété QueryOverride.

 8 <![CDATA[
 9    <Where>
10     <Gt>
11       <FieldRef Name="Created" Nullable="True" Type="DateTime"/>
12       <Value Type="DateTime"><Today OffsetDays="-7"/></Value>
13     </Gt>
14   </Where>
15 <OrderBy>
16    <FieldRef Name="Created" Nullable="True" Type="DateTime"
17    Ascending="FALSE"/>
18 </OrderBy>
19 </Query>]]>

Dans l'exemple précédent :

  • Les lignes 8 à 10 définissent la requête et ouvre la clause <where>.

  • La ligne 11 fait référence à un champ de type de base avec le nom « Created » et du type de champ DateTime.

  • La ligne 12 affecte à ce champ la valeur DateTime et définit un décalage égal à -7, ce qui signifie que la valeur 7 est soustraite de la date sur laquelle la requête applique un filtre.

  • Les lignes 13 et 14 ferment la clause <where>.

  • La ligne 15 ouvre la clause <OrderBy>, ce qui détermine l'ordre de tri pour les champs spécifiés.

  • Les lignes 16 et 17 définissent l'ordre de tri pour le champ « Created ». Le composant WebPart affiche ces données par ordre décroissant.

Propriété ListsOverride

Vous pouvez également utiliser une requête CAML pour récupérer des éléments des listes Windows SharePoint Services 3.0 et Office SharePoint Server 2007. Le tableau suivant montre trois exemples d'instructions CAML qui permettent de récupérer des éléments de types de listes distincts.

Type de liste Instruction Property

Bibliothèques de pages

<![CDATA[
   <Lists ServerTemplate="850">
   </Lists>
]]>

Type de base Liste générale

<![CDATA[
         <Lists BaseType="0">
         </Lists>
]]>

Un type spécifique de liste

<![CDATA[
   <Lists>
     <List ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"/>
   </Lists>
]]>

Dans l'exemple, la ligne 5 définit la propriété ListsOverride.

5 <Lists ServerTemplate="850"></Lists>

Dans ce cas, la requête utilise ServerTemplate="850" pour substituer la liste active en cours d'utilisation. Une énumération des types de listes disponibles se trouve dans la propriété Lists, dans le kit de développement Windows SharePoint Services 3.0.

Propriété WebsOverride

Vous pouvez utiliser la requête CAML pour définir la propriété WebsOverride afin de récupérer des éléments de manière récursive, comme indiqué dans l'exemple de code suivant.

<![CDATA[
   <Webs Recursive="True"/>
]]>

Ou récupérer des éléments uniquement dans les sites spécifiés.

<![CDATA[
   <Webs/>
]]>

Dans la ligne 6 de l'exemple, la propriété est définie pour récupérer des éléments de manière récursive.

6 <Webs Recursive="True"/>

Propriété ViewFieldsOverride

Pour afficher des valeurs pour n'importe quel élément dans le composant WebPart, définissez la propriété ViewFieldsOverride pour qu'elle récupère des données d'un type spécifique à partir d'un champ spécifié, comme indiqué dans l'exemple de code suivant.

<![CDATA[
   <FieldRef Name="Comments" Nullable="True" Type="Note"/>
   <FieldRef Name="Created" Nullable="False" Type="User"/>
]]>

La définition Nullable="True" renvoie les éléments qui n'ont pas cette colonne.

Dans l'exemple de code, les lignes 1 à 4 définissent la propriété ViewFieldsOverride :

1 <ViewFields>
2   <FieldRef Name="Title" Nullable="True" Type="Text"/>
3   <FieldRef Name="Comments" Nullable="True" Type="Note"/>
4 </ViewFields>
  • La ligne 1 ouvre la clause < ViewFields >, qui définit la propriété ViewFieldsOverride.

  • Les lignes 2 et 3 font référence au champ Title (un champ de texte) et au champ Comments (un champ de remarques).

  • La ligne 4 ferme la section < ViewFields >.

Propriété DataColumnRename

Utilisez la propriété DataColumnRename pour renommer des colonnes par programme. Cette propriété peut aider à limiter la personnalisation de la transformation XSLT et du schéma, ou à effectuer des opérations en bloc ou personnalisées pour renommer une colonne. Par exemple, vous pouvez renommer un nom de colonne composé tel que KBArticleTitle pour choisir un nom de variable de transformation XSLT commun, tel que Title. Vous évitez ainsi de créer une transformation XSLT personnalisée pour chaque schéma personnalisé.

Séparez les valeurs de changement de nom de colonne par des points-virgules et respectez le format originalName,newName.

<![CDATA[<property name="DataColumnRenames" type="string">KBArticleTitle,Title</property>]]

Notes

Si vous renommez une colonne avec un nom qui existe déjà, l'opération de changement de nom échoue.

Options de champs supplémentaires, de filtre, de regroupement et de tri

Définissez les propriétés dans ce groupe pour ajouter des champs, des regroupements, des options de regroupement et de tri, des filtres et des options de filtre. Vous pouvez spécifier les champs en indiquant leur nom interne, leur GUID, une combinaison de nom interne et de nom complet ou un GUID et un nom complet.

Définissez les propriétés AdditionalFilterFields et AdditionalGroupAndSortFields à l'aide de l'un des formats suivants :

  • internalName

  • internalName,DisplayName

  • GUID

  • GUID,DisplayName

Vous pouvez également combiner les définitions AdditionalFilterFields et AdditionalGroupAndSortFields en instructions composées, ce qui est utile pour définir plusieurs champs dans une instruction de propriété. Utilisez des points-virgules pour séparer les champs lors de la combinaison des définitions dans une instruction, comme indiqué ci-après :

internalName;GUID; internalName,DisplayName;GUID,DisplayName

La définition de la propriété AdditionalFilterFields permet d'ajouter un champ de filtre Created dans l'interface utilisateur, comme indiqué dans l'exemple de code suivant.

<![CDATA[<property name="AdditionalFilterFields" type="string">Created</property>]]

La définition de la propriété AdditionalGroupAndSortFields permet d'ajouter une option Created aux listes de regroupement et de tri dans l'interface utilisateur.

<!CDATA[<property name="AdditionalGroupAndSortFields" type="string">Created</property>]]

Propriétés de filtre

Vous pouvez utiliser les propriétés personnalisées pour étendre des valeurs de filtre au-delà de ce que l'interface utilisateur prend en charge. La définition ou la modification d'un champ de filtre, d'un type de filtre, d'une valeur de filtre ou des propriétés des opérateurs de chaînage de filtre permet d'ajouter un comportement de filtres ou de le modifier dans l'interface utilisateur.

Notes

Les propriétés de filtre ne remplacent pas l'interface utilisateur ; elles la préremplissent avec les valeurs par défaut.

Les propriétés des champs de filtres, des types de filtres et des valeurs de filtres sont toujours du type string :

  • <property name="FilterField1" type="string" />

  • <property name="FilterType1" type="string" />

  • <property name="FilterValue1" type="string" />

  • <property name="FilterOperator1" type="Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart+FilterFieldQueryOperator, Microsoft.SharePoint.Publishing, Version=12.0.0, Culture=neutral" PublicKeyToken=71e9bce111e9429c"/>

Le code exemple de filtre suivant affiche un filtre du type Created au format DateTime et affiche les éléments qui ont été créés après le 25 octobre 2006 :

  • <property name="FilterField1" type="string">Created</property>

  • <property name="FilterType1" type="string">DateTime</property>

  • <property name="FilterValue1" type="string">Today-7</property>

  • <property name="FilterOperator1" type="Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart+FilterFieldQueryOperator, Microsoft.SharePoint.Publishing, Version=12.0.0, Culture=neutral" PublicKeyToken=71e9bce111e9429c"/>

Utilisez le format suivant pour définir le paramètre type Dans l'opérateur de filtre et les instructions des propriétés des opérateurs de chaînage : PropertyName, namespace, Version, Culture, PublicKeyToken.

  • <property name="FilterOperator1" type="Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart+FilterFieldQueryOperator, Microsoft.SharePoint.Publishing, Version=12.0.0, Culture=neutral" PublicKeyToken=71e9bce111e9429c"/>

  • <property name="Filter1ChainingOperator" type="Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart+FilterField, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">Eq</property>

Les valeurs valides pour l'opérateur de filtre et les propriétés des opérateurs de chaînage diffèrent, comme suit :

  • Les propriétés des opérateurs de filtre montrent les boutons And et Or dans l'interface utilisateur.

  • Les propriétés des opérateurs de chaînage de filtre remplissent le deuxième champ dans les listes Afficher les éléments quand dans la section Filtres supplémentaires de l'interface utilisateur.

Le tableau suivant fournit des valeurs valides pour les propriétés des opérateurs de filtre.

Valeur Valeur d'affichage

And

And

Or

Or

Le tableau suivant fournit des valeurs valides pour les propriétés des opérateurs de chaînage de filtre.

Valeur Valeur d'affichage

Eq

est égal à

Neq

n'est pas égal à

Gt

est supérieur à

Geq

est supérieur ou égal à

Lt

est inférieur à

Leq

est inférieur ou égal à

BeginsWith

commence par

Contains

contient

Voir aussi

Référence

SPSiteDataQuery
ContentQueryWebPart

Autres ressources

Procédure : personnaliser XSL pour le composant WebPart Requête de contenu
Procédure : afficher des champs personnalisés dans un composant WebPart Requête de contenu
Procédure : personnaliser le format RSS pour le composant WebPart Requête de contenu