Extension:Cargo/Display formats

From mediawiki.org

The "format=" parameter lets you set in which format to display the results.

If no format is specified, list is the default format if there is only a single field being displayed in the results, while table is the default format if there is more than one field.

The Cargo extension supports the following formats:

Lists[edit]

list[edit]

Displays results in a delimited list.

Parameters:

  • delimiter - sets the separator character (default is comma). "\n" placed within this value will get translated into a newline.

ul[edit]

Displays results in a bulleted list.

Parameters:

  • columns - sets the number of columns (default is 1)

Examples: Discourse DB latest items, Inventing Aviation patents listing

ol[edit]

Displays results in a numbered list.

Parameters:

  • columns - sets the number of columns (default is 1)

Example: DicoAdo List of all words

category[edit]

Displays results in the style of MediaWiki categories.

Parameters:

  • columns - sets the number of columns (default is 3)

Example: chileru.org Коммуны

More complex text displays[edit]

template[edit]

Displays results using a MediaWiki template that formats each row of results. By default, the template in question should use unnamed parameters, i.e. it should refer to its parameters as {{{1|}}}, {{{2|}}} etc.

Parameters:

  • template - specifies the name of the template to use (mandatory)
  • named args - if set to "yes", specifies that the template should instead have named parameters, where the parameter names are the names (or aliases, if they are set) of the query fields
  • delimiter - sets the separator string (default is no separator). "\n" placed within this value will get translated into a newline.

Examples: Discourse DB "position" page (queries here, template here), Another Eden Wiki > Chronos' Umbra (template here)

embedded[edit]

Shows the full text of each queried page (only the first field of the query is used). (No parameters.)

outline[edit]

Shows results in an outline format.

Parameters:

  • outline fields - holds a comma-separated list of the query's fields (without the table name part); these fields are used to define the outline, by which the results are grouped together (mandatory)

Example: chileru.org Статьи

tree[edit]

Shows results in a tree format, in which a single field defines all the relationships between "child" pages and "parent" pages.

Parameters:

  • parent field - holds the name of this connector field (mandatory)

table[edit]

Displays results in a table.

Parameters:

  • merge similar cells - if set to "yes", causes adjacent cells in the same column that hold the same value to be merged together, to make for easier reading.
  • edit link - if set to "yes", causes an "edit" link to show up next to every result in a column labeled _pageName, Page, or the localized name of Page.

Examples: SPCodex bootlegs list, AntWiki fossils known from Canada

dynamic table[edit]

Displays results in a "dynamic" table that includes sorting, pagination and searching, using the DataTables JavaScript library.

Parameters:

  • rows per page - sets the number of rows that are initially shown on every "page" of the table (default is 10)
  • searchable columns - if set to "yes", causes fields to have a special search input above their columns
  • details fields - specifies the fields should not have a column but rather should be included in a special "details section" under each row. (Note that each such field must be included in the fields parameter as well. Also, details fields are not searched.)
  • hidden fields - specifies the fields that should not be included in the table by default but can be added in by the user via a "Toggle columns" link. (Note that each such field must be listed in the fields parameter as well.)
  • column widths - holds a comma-separated list of widths for each column. Not every column width needs to be specified. Example: column widths=10px, 20px,,,14%
  • header tooltips - holds a comma-separated list of additional explanations for any column, which will be displayed as tooltips after the header for any column. The format matches that of column widths.

Examples: Traveller Wiki - list of sophonts, Funtoo Linux subarches, Maccabipedia (Hebrew soccer wiki) - headed goals

tag cloud[edit]

Shows results in a "tag cloud" format, where the number corresponding to each string value dictates the font size for that string. At least one of the queried fields must be an Integer value, used to determine the font size for that entry. "tag cloud" is commonly used with the "group by" parameter for queries, with the two displayed fields being the grouped-by parameter and "COUNT(*)".

Parameters:

  • min size - the percentage of normal font size that the smallest text displays will have (default is 80)
  • max size - the percentage of normal font size that the largest text displays will have (default is 200)
  • template - specifies the name of a template to use to display each result

Example: Sample query on Discourse DB


Image displays[edit]

gallery[edit]

Displays a gallery of images, in the style of the MediaWiki <gallery> tag. The images must be files that were uploaded to the wiki; they can either be the pages that are directly queried (if the image pages call a Cargo-based template), or fields, of type "File", of other pages.

Parameters:

  • mode - sets the display mode of the gallery; can be traditional (the default), nolines, packed, packed-overlay or packed-hover. See here for a demonstration of these options.
  • show bytes - if set to "0", hides the file size of each image (it is shown by default)
  • show dimensions - if set to "0", hides the dimensions of each image (they are shown by default)
  • show filename - if set to "0", hides the name of each image (it is shown by default)
  • per row - specifies the number of images displayed on each row
  • image width - specifies the width, in pixels, at which to display each image
  • image height - specifies the height, in pixels, at which to display each image
  • caption field - specifies the name of a query field whose value should be used for each image caption
  • alt field - specifies the name of a query field whose value should be used as the "alt text" for each image
  • link field - specifies the name of a query field whose value should be used as the name of the page that the image links to

Example: Absit Omen Lexicon user page generated by this template

slideshow[edit]

Displays a "slideshow" of images on the page.

Parameters:

  • slides per screen - sets the number of side-by-side images to show on the screen at once (default is 1)
  • autoplay speed - the number of seconds to wait before advancing to the next slide(s) (by default, the slideshow does not autoplay at all, and the user must advance it manually)
  • caption field - specifies the name of a query field whose value should be used for each image caption
  • link field - specifies the name of a query field whose value should be used as the name of the page that the image links to

Time-based displays[edit]

calendar[edit]

Displays results in a calendar, using the FullCalendar JavaScript library.

For this format to work, the query must contain at least one field of type Date or Datetime, as well as the _pageName field (with no alias), or another field with the "=name" alias.

Parameters:

  • width - sets the width of the calendar (default is 100%)
  • height - sets the height of the calendar (default is for the height to fit the content to be displayed)
  • start date - sets the date at which to display the calendar (default is the current date)
  • view - sets the starting display of the calendar - options are 'day', 'week', or 'month' (default is month)
  • color - sets the color for the bubble around names of events; useful within #compound_query (default is set by the FullCalendar library)
  • text color - sets the color of the text of event names (default is white)

Special aliases:

These are specific field aliases that can be set, so that that field's values become attributes of each corresponding event. For instance, having a component like "EventName=name" in the "fields" parameter in #cargo_query will let you use a field other than the page name to set the name of each event.
  • name - sets the name of the event
  • description - sets an event description, displayed when the event is hovered over
  • link - sets the page that will be linked to for each event
  • color - same behavior as the "color" parameter
  • text color - same behavior as the "text color" parameter
  • start - used for multi-day events; sets the start date
  • end - used for multi-day events; sets the end date

Example: Discourse DB opinion calendar, ICANNWiki IG Hub Calendar

timeline[edit]

Displays results in a timeline, using the SIMILE Timeline library.

Parameters:

  • height - sets the height of the timeline (default is 350px)
  • width - sets the width of the timeline (default is 100%)

Example: Discourse DB topic (see bottom of page)


Numerical displays[edit]

bar chart[edit]

Displays results in a bar chart (with horizontal bars), using the NVD3 JavaScript library.

Parameters:

  • height - sets the height of the bar chart (default is based on the number of bars)
  • width - sets the width of the bar chart (default is 100%)

Examples: Discourse DB most popular authors, HUES technology database contents analysis (see bottom of page)

pie chart[edit]

Displays results in a pie chart, using the NVD3 JavaScript library.

Parameters:

  • height - sets the height of the pie chart
  • width - sets the width of the pie chart (default is 100%)
  • colors - a comma-separated list of colors fort the pie chart "slices"
  • hide legend - if set to "yes", removes the chart legend that shows up

Example: GrandOrder Wiki Servant Heights

Maps[edit]

To display a map, one of the selected fields in a query must be of type Coordinates.

googlemaps[edit]

Displays results in a map, using the Google Maps service.

Parameters:

  • height - sets the height of the map (default is 400px)
  • width - sets the width of the map (default is 700px)
  • icon - sets a custom icon to be used to display points; value must be the name of a file that has been uploaded to the wiki. This is especially useful within #compound_query.
  • zoom - sets the zoom level, i.e. an integer value from around 0 to around 20, with higher numbers being more zoomed in (default is based on the area of the set of points being displayed).
  • cluster - if set to "yes", automatically applies marker clustering (see below) to the map, and if set to "no", turns off marker clustering. Otherwise, the use of clustering is based on the number of points on the map.
  • center - sets the center point of the map.

Special aliases:

  • lat - sets the latitude of each point, as a number
  • lon - sets the longitude of each point, as a number
  • URL - sets the URL of each point

You may need to get an API key for Google Maps to work - once you get an API key, you should set it in LocalSettings.php via the "$wgCargoGoogleMapsKey" variable.

If the number of points being displayed is greater than the variable of the global setting $wgCargoMapClusteringMinimum, the map displays the locations in "clusters" instead of individual points, which makes maps a little more readable. You can change this variable to any value in LocalSettings.php; you can set it to a very high number if you do not want clustering at all.

Examples: Funtoo UserMap, Discourse DB map test

leaflet[edit]

Displays results in a map, using the Leaflet JS library.

Parameters: same as for googlemaps, plus one additional parameter:

  • image - sets an image to be the background for the map display, instead of a standard geographical map; specified image must be an image that has been uploaded to the wiki.

Special aliases: same as for googlemaps.

openlayers[edit]

Displays results in a map, using the OpenLayers service.

Parameters: same as for googlemaps.

Special aliases: same as for googlemaps.

Example: ArchivesWiki items map

map[edit]

Displays result in a map, using the default map service (It can be set by adding $wgCargoDefaultMapService setting to LocalSettings.php. It sets the default map service to Google Maps, if set to 'googlemaps', to Leaflet if set to 'leaflet', and to OpenLayers if set to 'openlayers' (default is 'openlayers'))

Parameters: same as for googlemaps.

Special aliases: same as for googlemaps.


More complex displays[edit]

bpmn[edit]

Displays results as a BPMN chart, using the bpmn-js JavaScript library.

Parameters:

  • height - sets the height of the chart (default is 350px)
  • width - sets the width of the chart (default is 100%)

Special aliases:

  • name - sets the name of the BPMN element (if not set, the first queried field is used)
  • label - sets the label for the element, if any
  • type - sets the type of the element; should be one of "startEvent", "endEvent", "sequenceFlow", "task" or "exclusiveGateway"
  • target - sets the name of the element that this element links to, if any

gantt[edit]

Displays results as a Gantt chart.

Parameters:

  • height - sets the height of the chart (default is 350px)
  • width - sets the width of the chart (default is 100%)
  • columns - theoretically can set the names of which columns to display in the chart, but at the moment can only handle a blank value (which removes all columns other than the main one)

Fields:

  • Data must contain one field of type Start Date and another field of type End Date. The names of these fields don't matter.
  • By default, the query will use the first field to provide the name of each row. You can set a different field to provide the name by aliasing it to name in the query.

Example query:

{{#cargo_query:table=hotelBookings
|format=gantt
|fields=reservationId=name, checkinDate, checkoutDate <!-- checkinDate has type Start Date, checkoutDate has type End Date -->
|where=eventType IN ("conferences", "conventions")
|order by=checkinDate ASC
|width=1600
}}

exhibit[edit]

Displays results in a browsable interface, using the SIMILE Exhibit library/service.

Parameters:

  • view - sets the view(s) that will be displayed, separated by comma if more than one. Valid values are map, tabular and timeline. If not set, the view(s) will be set based on the types of the fields in the query.
  • facets - sets the fields to be used for the facets/filters, separated by comma if more than one. A maximum of three are allowed. If not set, the first three fields of the result are used.
  • datalabel - sets the label that refers to the data. Default is "Item".`
for the "timeline" view:
  • end - sets the name of the field holding the end time for each event (if any)
  • color - sets the name of the field used to color-code the markers (if any)
  • topunit - sets the unit for the top band: millisecond, second, minute, hour, day, week, month, year, decade, century, millennium
  • toppx - sets the width, in pixels, for each interval in the top band
  • bottompx - sets the width, in pixels, for each interval in the bottom band

Export[edit]

Six export-based display formats are defined: bibtex, csv, excel, feed, icalendar, json and zip. See Exporting data for documentation on these. In addition, the "exhibit" format displays an orange toolbox that lets you download the current data in various export formats: BibTex, RDF/XML, JSON, Semantic Wikitext and TSV.