= [[fr:plugin:struct|Extension Struct]]
====== Extension Struct: Agrégation ======
===== Tableau =====
L'agrégation de données structurées est le propos principale de cette extension. L'agrégation se fait à l'aide d'une syntaxe simple qui aboutira à un tableau dynamique répertoriant toutes les données associées correspondant à certains critères. La syntaxe de base ressemble à ceci:
---- struct table ----
schema: schema_name
cols: %pageid%, other, cols
----
La syntaxe d'agrégation est réellement semblable à celle de l'extension [[plugin:data#data_table_output|data plugin]]. La principale différence est que vous avez à spécifier un nom de schéma (ou plus d'un). :!:
Le mot clé avant les deux points est une option de configuration et la valeur suivante est le paramètre réel. Pour le rendre plus tolérant aux pannes, plusieurs noms d'options sont souvent possibles. Voici une liste de toutes les options disponibles:
^ Option(s) ^ Requis ^ Description ^
| schema\\ from | oui | Ce sont les schémas à partir desquels vous souhaitez afficher les données |
| cols\\ select | oui | Ce sont les attributs que vous voulez afficher. Ce sont les mêmes // noms // que vous avez utilisés dans la partie Entrées de données. Vous pouvez utiliser ''*'' pour sélectionner toutes les colonnes. Cela peut être combiné avec les noms de [[#colonnes_speciales|colonnes spéciales]], par exemple ''%pageid%, *'' |
| head\\ header\\ headers | non | Si spécifiés, ces noms seront utilisés dans les en-têtes de tableau au lieu des noms de colonne |
| max\\ limit | non | Combien de lignes doivent être affichées. Si plus de lignes sont disponibles, le tableau sera rendu navigable. Non renseigné, toutes les lignes correspondantes sont affichées |
| sort\\ order | non | Par quelle colonne le tableau doit-il être trié au départ? Préparer un '%% ^ %%' pour inverser le tri |
| filter\\ where\\ filterand\\ and | non | Filtrer par une valeur de colonne. Vous pouvez le spécifier plus d'une fois, plusieurs filtres peuvent s'ajouter selon (AND). (voir aussi [[fr:plugin:struct:filters|filtres]]) |
| filteror\\ or | non | Comme filter, mais les multiples instances s'ajoutent selon (OR) , (voir aussi [[fr:plugin:struct:filters|filtres]]) |
| dynfilters | non | Réglez sur '' 1 '' pour activer une ligne de champs d'entrée pour filtrer dynamiquement le tableau |
| summarize | non | Réglez sur ''1'' pour calculer la somme des colonnes |
| align | non | Liste des alignements des colonnes. Les alignements peuvent être '' gauche '' ( '' l ''), '' centre '' ( '' c '') ou '' droit '' ( '' r '') |
| rownumbers | non | Réglez sur '' 1 '' pour afficher les numéros de ligne |
| width\\ widths | non | Liste séparée par des virgules des largeurs de colonnes à utiliser. Les unités CSS et les pourcentages peuvent être utilisés |
| csv | non | Réglez sur ''0'' pour désactiver [[plugin:struct:csvexport|l'export CSV]] pour cette agrégation |
Notez que vous pouvez joindre des données à partir de plusieurs schémas (à condition qu'ils référencent les mêmes pages). Ceci n'est pas possible avec l'agrégation de données globales.
==== Alias ====
Lorsque vous sélectionnez des données de plusieurs schémas qui contiennent les mêmes noms de champ, vous devez les préfixer avec le nom du schéma:
---- struct table ----
schema: schema1, schema2
cols: %pageid%, schema1.name, schema2.name
----
Vous pouvez utiliser des alias pour référencer sobrement des schémas. Les alias sont séparés par un espace à partir du nom du schéma:
---- struct table ----
schema: schema1 A, schema2 B
cols: %pageid%, A.name, B.name
----
Veuillez voir [[fr:plugin:struct:filters|filtres]] pour en apprendre plus sur les filtres.
==== Colonnes spéciales ====
Les noms spéciaux de colonne suivants peuvent être utilisés pour accéder aux colonnes qui ne sont pas des champs:
^ Nom spécial ^ Description ^
| ''%pageid%'' | Le nom de page de la page contenant les données de structure correspondantes, si il y en a |
| ''%title%'' | Le titre (premier titre) de la page ci-dessus |
| ''%rowid%'' | le numéro de la ligne en base de données (ce qui n'a de sens que pour les données globales et en série |
| ''%lastupdate%'' | Date et heure de la dernière mise à jour des données ou de la page |
| ''%lasteditor%'' | L'utilisateur qui a modifié la page en dernier lieu |
| ''%lastsummary%''| Le dernier résumé de version de la page |
===== Liste =====
Comme alternative au tableau, vous pouvez aussi agréger des données sous la forme de liste. Ceci est en grande partie analogue aux [[plugin:data#data_list_output|Listes de données de l'extension data]].
La syntaxe de base pour les agrégations de listes est très similaire aux agrégations de tableau et ressemble à ceci:
---- struct list ----
schema: schema_name
cols: %pageid%, other, cols
----
Les listes prennent en charge une nouvelle option: ''sepbyheaders''. Si vous réglez cette option sur ''1'' et définissez des en-têtes pour les colonnes, chaque colonne sera préfacée par son en-tête.
Plusieurs options disponibles pour l'agrégation en tableau ne sont pas supportés dans l'agrégation en liste:
^ Option ^ prise en charge pour les listes ^
| schema\\ from | oui |
| cols\\ select | oui |
| head\\ header\\ headers | avec l'option ''sepbyheaders'' |
| max\\ limit | oui |
| sort\\ order | oui |
| filter\\ where\\ filterand\\ and | oui |
| filteror\\ or | oui |
| dynfilters | non |
| summarize | non |
| align | non |
| rownumbers | non |
| width\\ widths | non |
| csv | non |