Module:CargoQuery/doc
This is the documentation page for Module:CargoQuery
This module lets you get around the |no html
bug that Cargo has by avoiding |format=template.
To use, preface query arguments with q?
. Even if you are only using one table, use |q?tables=
. You may additionally specify |template=
(required), |intro=
, |outro=
, |delimiter=
, and |default=
.
Use Lua names of all query parameters, so |q?join=
, |q?groupBy
, etc.
For simplicity of code, the named args parameter is required to be Yes, and you do not need to specify it.
Unlike |format=template
, this wrapper will NOT rename parameters with underscores in them to use spaces instead.
Parameters & Invocation
{{#invoke:CargoQuery|main |q?tables= corresponds to table / tables |q?join= corresponds to join on |q?fields= corresponds to fields |q?where= corresponds to where |q?groupBy= corresponds to group by |q?having= corresponds to having |q?orderBy= corresponds to order by |q?limit= corresponds to limit |template= |intro= |outro= |delimiter= |default= }}
vardefine trick
There exists a Template:vardefine such that if it is passed in as the template
parameter, the effect will be that every field's value is assigned to a variable named as the field name. Note: If multiple results are returned for a given query, due to the inherent behavior of #vardefine, the last result's values will override those of all the results that came before it.
When using this template, the default template output is empty, however output-affecting parameters such as |intro=
, |outro=
, and |delimiter=
will still be included in the return value. As usual, if no results are found, |default=
will also still be used as the output, and no variables will be assigned.