Help:Format template

Le format de résultat template est utilisé pour mettre en forme les résultats au travers d'un modèle.

Utilisation des modèles pour une mise en forme personnalisée
Certains formats de résultats permettent l'utilisation de modèles wiki pour contrôler complètement l'affichage d'une requête intégrée. C'est vrai pour les formats template, list, ol (liste ordinaire) et ul (liste non ordonnée). Si un modèle est spécifié, chaque ligne de résultat est formatée en utilisant ce modèle. Le nom du modèle (en enlevant «Template:») est passé dans le paramètre template=, ainsi la requête s'écrit sous la forme générale:

Pour chaque résultat de requête intégrée, SMW appelle le modèle référencé dans lequel le résultat et les valeurs à afficher sont utilisés pour initialiser les paramètres numétotés du modèle. Ainsi une requête qui afficherait trois valeurs sous la forme d'un tableau, initialisera trois paramètres du modèle. Ces valeurs peuvent être utilisées dans le modèle sous la forme habituelle en écrivant , , etc. Chaque paramètre se réfère à un "champ" ou une colonne du résultat qui serait affiché par la requête intégrée pour chaque page sélectionnée. Normalement le premier champ qu'une requête affiche est le titre de la page (voir (see ici), et donc, le paramètre  est le titre de la page, et ,, ...</tt> sont les autres propriétés affichées par la requête. Plusieurs exemples sont donnés ci-après.

Les propriétés des modèles apportent une plus grande flexibilité dans l'affichage du résultat des requêtes en permettant:
 * la modification de l'ordre dans lequel les informations sont affichées, en omettant ou dupliquant des éléments;
 * l'affichage d'images qui dépendent des résultats de la requête;
 * la création de liens pour les valeurs des propriétés;
 * l'utilisation de feuilles de style CSS pour modifier la taille des caractères, l'alignement, la couleur d'arrière-plan, etc. et selon les colonnes à l'intérieur des tableaux.

Si vous utilisez réellement un modèle pour ajuster l'apparence des liens, vous devrez probablement initialiser le paramètre  | link=none | </tt> pour empêcher les résolutions automatiques de SMW vers le noms d'articles. On peut arriver à ce même résultat en choisissant le format brut (plain) pour toute ou partie des résultats, comme décrit dans Afficher des informations. Votre modèle devra ensuite ajouter  </tt> autour de tout ce que vous voudrez considérer comme étant un lien.

Pour comprendre la manière de créer un modèle pour mettre en forme des résultats de requête, il est utile d'abord de voir ce quue donne le format format=table</tt>. Par exemple, des requêtes relatives à une page unique (comme celles que l'on utiliserait avec #show</tt>) cachent le titre de page de la page résultat, de sorte que le paramètre </tt> se rapporte au premier élément affiché. En utilisant la forme ?</tt> ou en spécifiant n'importe quelle valeur pour  mainlabel</tt> vous modifier ce comportement.

Exemples
Les exemples qui suivent utilisent tous Template:Query output demo qui comporte essentiellement le text wiki suivant:

people squeeze into the of.

Les requêtes suivantes montrent les effets de ce modèle:

Résultat:

Dans l'exemple ci-dessus vous pouvez voir de quelle manière le modèle ignore n'importe quelle étiquette d'entête spécifiée dans la requête telle que «Size in km²». Cependant les valeurs affichées par le modèle utilisent les unités spécifiés dans ?Area#km²=Size in km²</tt>, et elles respecteront d'une manière équivalente tous les formats d'affichage supportés (voir Affichage de l'information).

Ci-dessous nous avons une requête similaire mais triée selon la population et qui utilise format=ol</tt> pour produire une liste numérotée.

Résultat:

Si nous spécifions directement une page unique, alors les résultats de la requête n'incluent normalement pas la page elle-même, donc pour réutiliser le même modèle dans la requête suivante, nous devons dire à la requête d'afficher le titre de la page dans la première colonne, en ajoutant |?</tt>

Résultat:

On peut obtenir la même chose en utilisant la fonction d'analyse #show bien que cela puisse ne pas être son utilisation principale:

Résultat:

Les modèles peuvent aussi inclure d'autres fonctions d'analyse comme des requêtes conditionnelles et non-triviales. Des exemples de formats de requête complexes sont données sur les pages suivantes (les liens externes peuvent changer):
 * Evènements à venir sur la page principale de semanticweb.org (en) : la section des évènements de cette page affiche uniquement certains événements majeurs. Chacun de ces événements est formaté avec un modèle qui utilise une autre requête intégrée et qui permet de retrouver les sous-événements (réunions de travail dans le même lieu, tutoriels, etc.) relatifs à cet événement particulier.
 * Les publications sur korrekt.org (en): toutes les listes de cette page sont créées avec des requêtes modélisées. Les conditions  (#if</tt> et #ifeq</tt>) sont utisées pour changer le format d'un résultat en fonction de son type de publication et des données fournies (les publications majeures ont des titres en gras).

Règle concernant (paramètres utilisateur)
Il est aussi possible d'ajouter un paramètre supplémentaire (unique) à la requête. Voir la page d'aide sur le paramètre   pour la réalisation.

Règles pour (arguments nommés)
Ce paramètre permet de spécifier que vous utilisez des arguments nommés, plutôt que des arguments indexés, dans le modèle de format.

Les exemples ci-dessus recherchent les valeurs du modèle en utilisant des notions comme  mais dans le cas où  named args est utilisé, les valeurs sont identifiées à la place, par des noms de variables comme   ou. Si vous spécifiez une étiquette alternative pour la propriété recherchée, vous pouvez également utiliser ce mécanisme. Remarquez bien que le point d'interrogation est nécessaire, même si vous fournissez un nom alternatif.

Pour accéder à ou à  en utilisant "named args=yes" vous devez nommer la sortie par défaut (page name aka ) avec:
 * Remarques

| ?#=un_nom_quelconque

ou

| ?=un_nom_quelconque

Si en cliquant sur "résultats suivants" vous ne ramenez rien parce que le paramètre named args</tt> n'est pas reproduit ici, vous devrez probablement supprimer le paramètre searchlabel</tt>.

Affichage du lien concernant les résultats supplémentaires
En utilisant le paramètre 'template', vous ne pourrez voir le lien 'résultats suivants...' si vous indiquez 'format=template' c'est à dire qu'il ne semble pas être opérationnel avec 'format=ol', par exemple.

Si vous créez une sortie tabulée avec un modèle vous pourriez avoir besoin d'utiliser les paramètres spéciaux introtemplate et outrotemplate pour vous assurer que 'résultats suivants...' marche correctement.

Limitations
Le modèle peut lui aussi exécuter une autre requête. Par défaut le nombre d'appels imbriqués ayant "format=template" est, néanmoins, limité à 2 (voir la page d'aide sur  concernant la définition de la configuration). Exemple: la page A contient une requête intégrée qui utilise le modèle B, qui lui-même contient une requête intégrée qui utilise le modèle C. Le modèle C peut lui aussi contenir une requête, mais pas une qui utiliserait le modèle de format c'est à dire "format=template".

Astuces associées

 * Utiliser la requête #ask avec le format template pour obtenir une sortie tabulée