This is an old revision of the document!
Table of Contents
Struct Plugin: Aggregation
Aggregation of structured data is the main purpose of the plugin. Aggregation is done through a simple syntax which will result in a dynamic table listing all pages and associated data matching certain criteria.
The basic syntax looks like this:
---- struct table ---- schema: schema_name cols: %pageid%, other, cols ----
The aggregation-syntax is very similar to that of the data plugin. The main difference is that you have to specify a schema name (or more than one).
The keyword before the colon is a configuration option and the value after it is the actual setting. To make it more fault tolerant, multiple option names are frequently possible. Here is a list of all available options:
Option(s) | Required? | Description |
---|---|---|
schema from | yes | These are the schemas from which you want to display the data. |
cols select | yes | These are the attributes you want to display. These are the same names you used in the Data Entry part |
head header headers | no | If specified, these names will be used in the table headers instead of the column names |
max limit | no | How many rows should be displayed. If more rows are available the table will be made browsable. If not given all matching rows are shown |
sort order | no | By what column should the table be sorted initially? Prepend a ^ to reverse the sorting |
filter where filterand and | no | Filter by a column value. You may specify this more than once, multiple filters will be ANDed. (see also filters) |
filteror or | no | Like filter, but multiple instances will be ORed (see also filters) |
dynfilters | no | Set to 1 to enable a row of input fields for dynamically filtering the table |
summarize | no | Set to 1 to calculate sum of columns |
align | no | List of column alignments. The alignments can be left (l ), center (c ) or right (r ) |
rownumbers | no | Set to 1 to show row numbers |
width widths | no | Comma-separated list of column widths to use. CSS units and percentages can be given |
Please note that you join data from multiple page schemas (as long as they are assigned on the same pages), but can only run aggregations on a single lookup schema.
Aliases
When selecting data from multiple schemas which contain the same field names, you have to prefix them with the schema name:
---- struct table ---- schema: schema1, schema2 cols: %pageid%, schema1.name, schema2.name ----
You can use aliases to reference schemas to type less. Aliases are separated by a space from the schema name:
---- struct table ---- schema: schema1 A, schema2 B cols: %pageid%, A.name, B.name ----
Please see filters to learn more about filtering.
Special Columns
The following special column names can be used to access non-field columns:
Special Name | Description |
---|---|
%pageid% | The page name of the page holding the matching struct data |
%title% | The title (first heading) of the above page |
%lastupdate% | The date and time when the data was last updated |